private boolean executeDrop( ScreenDockStationExtension.DropArguments args ){ DockUtilities.checkLayoutLocked(); DockUtilities.ensureTreeValidity( this, args.getDockable() ); DockAcceptance acceptance = controller == null ? null : controller.getAcceptance(); ScreenDockWindow best = args.getWindow(); Dockable dockable = args.getDockable(); ScreenDockProperty property = args.getProperty(); boolean accept = accept( dockable ) && dockable.accept( this ) && (acceptance == null || acceptance.accept( this, dockable )); if( accept ){ addDockable( dockable, new Rectangle( property.getX(), property.getY(), property.getWidth(), property.getHeight() ), property.getPlaceholder(), args.isBoundsIncludeWindow() ); done = true;
double bestRatio = 0.0; ScreenDockProperty property = args.getProperty(); args.setProperty( replacement ); args.setBoundsIncludeWindow( true ); args.setWindow( best );
ScreenDockStationExtension.DropArguments args = new ScreenDockStationExtension.DropArguments(); args.setDockable( dockable ); args.setProperty( property ); args.setBoundsIncludeWindow( boundsIncludeWindow );
@Override public void drop( ScreenDockStation station, DropArguments arguments ){ if( arguments.getWindow() == null ){ ToolbarStrategy strategy = controller.getProperties().get( ToolbarStrategy.STRATEGY ); Dockable dockable = arguments.getDockable(); if( strategy.isToolbarPart( dockable ) ){ Dockable replacement = strategy.ensureToolbarLayer( station, dockable ); if( replacement != dockable ){ pending = dockable; } else{ pending = null; } arguments.setDockable( replacement ); } } else{ pending = null; } }
private DockablePlaceholderList<ScreenDockWindowHandle>.Item getItem( ScreenDockProperty property ){ Path oldPlaceholder = property.getPlaceholder(); if( oldPlaceholder != null ){ DockablePlaceholderList<ScreenDockWindowHandle>.Item item = dockables.getItem( oldPlaceholder ); if( item != null ){ return item; } } ScreenDockStationExtension.DropArguments args = new ScreenDockStationExtension.DropArguments(); args.setProperty( property ); args.setBoundsIncludeWindow( true ); windowAt( args ); ScreenDockWindow window = args.getWindow(); if( window != null ){ return dockables.getItem( window.getDockable() ); } return null; }
@Override public void dropped( ScreenDockStation station, DropArguments arguments, boolean successfull ){ if( pending != null && successfull ){ DockStation child = arguments.getDockable().asDockStation(); DockableProperty successor = arguments.getProperty().getSuccessor(); if( successor == null || !child.drop( pending, successor )){ child.drop( pending ); } } pending = null; } }