/** * Creates a leaf for <code>dockable</code>. This method only * creates the leaf, but does not connect leaf and <code>dockable</code>. * @param dockable the element to put into a leaf * @param id the unique identifier of the new leaf, can be -1 * @return the new leaf or <code>null</code> if the leaf would not be valid */ protected Leaf create( Dockable dockable, long id ){ SplitDockStation split = access.getOwner(); DockController controller = split.getController(); DockAcceptance acceptance = controller == null ? null : controller.getAcceptance(); if( !dockable.accept( split ) || !split.accept( dockable )) return null; if( acceptance != null ){ if( !acceptance.accept( split, dockable )) return null; } Leaf leaf = createLeaf( id ); return leaf; }
public PutInfo validatePutInfo( SplitDockStation station, PutInfo putInfo ){ if( putInfo != null ){ if( !station.accept( putInfo.getDockable() )) return null; if( putInfo.getNode() != null && (putInfo.getPut() == PutInfo.Put.CENTER || putInfo.getPut() == PutInfo.Put.TITLE )){ if( !putInfo.getDockable().accept( station, ((Leaf)putInfo.getNode()).getDockable() ) || !((Leaf)putInfo.getNode()).getDockable().accept( station, putInfo.getDockable() ) || !station.getController().getAcceptance().accept( station, ((Leaf)putInfo.getNode()).getDockable(), putInfo.getDockable() )){ return null; } } else{ if( !putInfo.getDockable().accept( station ) || !station.getController().getAcceptance().accept( station, putInfo.getDockable() )){ return null; } } } return putInfo; }
public PutInfo validatePutInfo( SplitDockStation station, PutInfo putInfo ){ if( putInfo != null ){ if( !station.accept( putInfo.getDockable() )) return null; if( putInfo.getNode() != null && (putInfo.getPut() == PutInfo.Put.CENTER || putInfo.getPut() == PutInfo.Put.TITLE )){ if( !putInfo.getDockable().accept( station, ((Leaf)putInfo.getNode()).getDockable() ) || !((Leaf)putInfo.getNode()).getDockable().accept( station, putInfo.getDockable() ) || !station.getController().getAcceptance().accept( station, ((Leaf)putInfo.getNode()).getDockable(), putInfo.getDockable() )){ return null; } } else{ if( !putInfo.getDockable().accept( station ) || !station.getController().getAcceptance().accept( station, putInfo.getDockable() )){ return null; } } } return putInfo; }
if( checkValidity ){ if( !dockables[0].accept( split ) || !split.accept( dockables[0] )) throw new SplitDropTreeException( split, "No acceptance for " + dockables[0] );