public DockableProperty copy() { SplitDockPathProperty copy = new SplitDockPathProperty(); for( Node node : nodes ){ copy.add( node.getLocation(), node.getSize(), node.getId() ); } copy.setLeafId( getLeafId() ); copy( copy ); return copy; }
private long getSplitId( SplitDockPathProperty property, int depth ){ SplitDockPathProperty.Node node = property.getNode( depth ); SplitDockPathProperty.Node lastNode = null; if( property.getLeafId() == -1 ){ lastNode = property.getLastNode(); } if( lastNode != node ){ if( depth > 0 ){ return property.getNode( depth-1 ).getId(); } else{ return node.getId(); } } return -1; }
public SplitDockPathProperty horizontal( SplitDockPathProperty left, SplitDockPathProperty right, double divider, long id, Path[] placeholders, PlaceholderMap placeholderMap, boolean visible ){ if( left != null ) { if( visible ) { left.insert(SplitDockPathProperty.Location.LEFT, divider, 0, id); } return left; } if( right != null ) { if( visible ) { right.insert(SplitDockPathProperty.Location.RIGHT, 1 - divider, 0, id); } return right; } return null; }
public SplitDockPathProperty leaf( Dockable check, long id, Path[] placeholders, PlaceholderMap placeholderMap ){ if( check == dockable ){ SplitDockPathProperty path = new SplitDockPathProperty(); path.setLeafId( id ); return path; } return null; } });
@Override public SplitDockPathProperty findProperty( DockableProperty successor ){ SplitDockPathProperty property = findParentProperty(); property.setSuccessor( successor ); switch( side ){ case NORTH: property.add( SplitDockPathProperty.Location.TOP, size, nodeId ); break; case SOUTH: property.add( SplitDockPathProperty.Location.BOTTOM, size, nodeId ); break; case EAST: property.add( SplitDockPathProperty.Location.RIGHT, size, nodeId ); break; case WEST: property.add( SplitDockPathProperty.Location.LEFT, size, nodeId ); break; } return property; }
@Override public SplitDockPathProperty findProperty( DockableProperty successor ){ SplitDockPathProperty property = findParentProperty(); property.setSuccessor( successor ); property.setLeafId( leafId ); return property; }
int index = 0; long leafId = property.getLeafId(); if( leafId != -1 ) { start = getNode(leafId); if( start != null ) { index = property.size(); for( index = property.size() - 1; index >= 0; index-- ) { SplitDockPathProperty.Node node = property.getNode(index); long id = node.getId(); if( id != -1 ) {
if( child == childA ){ if( orientation == Orientation.HORIZONTAL ){ property.add( Location.LEFT, divider, child.getNodeId() ); property.add( Location.TOP, divider, child.getNodeId() ); property.add( Location.RIGHT, 1-divider, child.getNodeId() ); property.add( Location.BOTTOM, 1-divider, child.getNodeId() ); return new SplitDockPathProperty();
SplitDockPathProperty path = new SplitDockPathProperty(); path.setLeafId( leaf.getNodeId() ); path.insert( location, size, 0, parent.getNodeId() );
@Override public boolean insert( SplitDockPathProperty property, int depth, Dockable dockable ){ if( property.getLeafId() == getId() ){ return replace( null, dockable ); } else if( depth < property.size() ){ Leaf leaf = create( dockable, property.getLeafId() ); if( leaf == null ){ return false; } split( property, depth, leaf ); leaf.setDockable( dockable, null ); return true; } else{ return false; } }
@Override public boolean insert( SplitDockPathProperty property, int depth, Dockable dockable ) { if( depth < property.size() ){ Leaf leaf = create( dockable, property.getLeafId() ); if( leaf == null ){ return false; DockableProperty stationLocation = property.getSuccessor(); if( station != null && stationLocation != null ){ if( dockable.accept( station ) && station.accept( dockable )){ return getAccess().drop( dockable, property.toLocation( this ), this );
if( depth >= property.size() ){ return getAccess().drop( dockable, property.toLocation( this ), this ); SplitDockPathProperty.Node node = property.getNode( depth );
@Override protected SplitDockPathProperty findParentProperty(){ return new SplitDockPathProperty(); }
return toLocation(); if( getLeafId() == id ){ result = new SplitDockProperty( onPath.getX(), onPath.getY(), onPath.getWidth(), onPath.getHeight() ); result.setSuccessor( getSuccessor() ); return result;
private long getLeafId( SplitDockPathProperty property ){ long leafId = property.getLeafId(); SplitDockPathProperty.Node lastNode = null; if( leafId == -1 ){ lastNode = property.getLastNode(); if( lastNode != null ){ leafId = lastNode.getId(); } } return leafId; }
@Override public boolean insert( SplitDockPathProperty property, int depth, Dockable dockable ) { if( child == null ){ long id = property.getLeafId(); Leaf leaf = create( dockable, id ); if( leaf == null ) return false; setChild( leaf ); leaf.setDockable( dockable, null ); return true; } else return child.insert( property, depth, dockable ); }
SplitDockPathProperty.Node node = property.getNode( depth ); node.getLocation() == SplitDockPathProperty.Location.BOTTOM; SplitDockPathProperty.Node lastNode = property.getLastNode();
/** * Gets a {@link SplitDockProperty} that works as backup property * if the referenced placeholder is not found. * @param target the node that asks for this location * @return the location, not <code>null</code> */ public SplitDockProperty toSplitLocation( SplitNode target ){ if( backup instanceof SplitDockProperty ) return (SplitDockProperty)backup; if( backup instanceof SplitDockPathProperty ) return ((SplitDockPathProperty)backup).toLocation( target ); SplitDockProperty result = new SplitDockProperty( target.getX(), target.getY(), target.getWidth(), target.getHeight() ); result.setSuccessor( getSuccessor() ); return result; }
int index = 0; long leafId = property.getLeafId(); if( leafId != -1 ) { start = getNode(leafId); if( start != null ) { index = property.size(); for( index = property.size() - 1; index >= 0; index-- ) { SplitDockPathProperty.Node node = property.getNode(index); long id = node.getId(); if( id != -1 ) {