public class Placeholder extends SplitNode
Path-keys, each key stands for a
Dockable that is currently not visible. Placeholders are not
visible to the user (they have no graphical representation), they
are only used to place Dockables at their former position.| Constructor and Description |
|---|
Placeholder(SplitDockAccess access,
long id)
Creates a new placeholder
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
aside(AsideRequest request)
Inserts a new placeholder at this node.
|
boolean |
aside(SplitDockPathProperty property,
int index,
AsideRequest request)
Inserts a new placeholder at location
property. |
void |
evolve(SplitDockTree.Key key,
boolean checkValidity,
Map<Leaf,Dockable> linksToSet)
Creates or replaces children according to the values found in
key. |
SplitNode |
getChild(int location)
Gets the child at
location. |
int |
getChildLocation(SplitNode child)
Gets the location of a child.
|
Node |
getDividerNode(int x,
int y)
Gets the Node whose divider area contains the point x/y.
|
Leaf |
getLeaf(Dockable dockable)
Gets the leaf which represents
dockable. |
int |
getMaxChildrenCount()
Gets the maximal number of children this node can have.
|
Dimension |
getMinimumSize()
Gets the minimal size of this node.
|
Dimension |
getPreferredSize()
Gets the preferred size of this node.
|
PutInfo |
getPut(int x,
int y,
double factorW,
double factorH,
Dockable drop)
Determines where to drop the
Dockable drop
if the mouse is at location x/y. |
SplitNode |
getVisible()
Gets the root of a subtree such that the root is visible and such that the
is the uppermost visible node.
|
boolean |
insert(SplitDockPathProperty property,
int depth,
Dockable dockable)
If there are elements left in
property, then the next node
is to be read and the insert-method of the matching child
to be called.If there are no children, then dockable has to be inserted
as new child.Otherwise this element is to be replaced by a node containing this and the a leaf with dockable.Subclasses may wary this scheme in order to optimize or to find a better place for the dockable. |
boolean |
insert(SplitDockPlaceholderProperty property,
Dockable dockable)
Recursively searches for a node or leaf that uses the placeholder specified by
property and inserts the dockable there. |
boolean |
isInOverrideZone(int x,
int y,
double factorW,
double factorH)
Tells whether the coordinates x/y lie inside the override-zone of
the
SplitDockStation or not. |
boolean |
isOfUse()
Tells whether this node still has any use or can safely be removed from the tree
|
boolean |
isVisible()
Tells whether this node (or one of this children) contains element that
are visible to the user.
|
void |
setChild(SplitNode child,
int location)
Adds a child to this node at a given location.
|
<N> N |
submit(SplitTreeFactory<N> factory)
Writes the contents of this node into a new tree create by
factory. |
void |
toString(int tabs,
StringBuilder out)
Writes some contents of this node into
out. |
void |
visit(SplitNodeVisitor visitor)
Invokes one of the methods of the
visitor for every
child in the subtree with this as root. |
above, addPlaceholder, create, create, createLeaf, createNode, createPlaceholder, delete, ensureIdUnique, ensureIdUniqueAsync, getAccess, getBounds, getHeight, getId, getParent, getPlaceholderMap, getPlaceholderNode, getPlaceholders, getRoot, getSize, getStation, getTotalChildrenCount, getWidth, getX, getY, hasPlaceholder, hasPlaceholders, intersection, movePlaceholderMap, relativeSidePut, removePlaceholder, removePlaceholders, replace, setBounds, setParent, setPlaceholderMap, setPlaceholders, split, split, toString, treeChanged, updateBoundspublic Placeholder(SplitDockAccess access, long id)
access - access to the SplitDockStationid - the unique id of this placeholderpublic void evolve(SplitDockTree.Key key, boolean checkValidity, Map<Leaf,Dockable> linksToSet)
SplitNodekey. Note that this method does not remove any Dockables
from the station. They must be removed explicitly using Leaf.setDockable(Dockable, bibliothek.gui.dock.DockHierarchyLock.Token)public int getChildLocation(SplitNode child)
SplitNodegetChildLocation in class SplitNodechild - a child of this nodechild or -1 if the child is unknownpublic Node getDividerNode(int x, int y)
SplitNodegetDividerNode in class SplitNodex - the x-coordinatey - the y-coordinatenull is returnedpublic Leaf getLeaf(Dockable dockable)
SplitNodedockable.public Dimension getMinimumSize()
SplitNodegetMinimumSize in class SplitNodepublic Dimension getPreferredSize()
SplitNodegetPreferredSize in class SplitNodepublic PutInfo getPut(int x, int y, double factorW, double factorH, Dockable drop)
SplitNodeDockable drop
if the mouse is at location x/y.getPut in class SplitNodex - the x-coordinate of the mousey - the y-coordinate of the mousefactorW - a factor to be multiplied with the relative
x and width to get the
size in pixel.factorH - a factor to be multiplied with the relative
y and height to get the
size in pixel.drop - the Dockable which will be droppednull if
the dockable can't be droppedpublic boolean aside(AsideRequest request)
SplitNodepublic boolean aside(SplitDockPathProperty property, int index, AsideRequest request)
SplitNodeproperty.public boolean insert(SplitDockPlaceholderProperty property, Dockable dockable)
SplitNodeproperty and inserts the dockable there. Also removes
the placeholder from this node.public boolean insert(SplitDockPathProperty property, int depth, Dockable dockable)
SplitNodeproperty, then the next node
is to be read and the insert-method of the matching child
to be called.dockable has to be inserted
as new child.this and the a leaf with dockable.dockable.public boolean isInOverrideZone(int x,
int y,
double factorW,
double factorH)
SplitNodeSplitDockStation or not.isInOverrideZone in class SplitNodex - the x-coordinate of the mousey - the y-coordinate of the mousefactorW - a factor to be multiplied with the relative
x and width to get the
size in pixel.factorH - a factor to be multiplied with the relative
y and height to get the
size in pixel.true if the station should not allow child-stations
to make a drop when the mouse is at x/ypublic void setChild(SplitNode child, int location)
SplitNodepublic int getMaxChildrenCount()
SplitNodegetMaxChildrenCount in class SplitNodepublic SplitNode getChild(int location)
SplitNodelocation.public <N> N submit(SplitTreeFactory<N> factory)
SplitNodefactory.public boolean isVisible()
SplitNodepublic SplitNode getVisible()
SplitNodegetVisible in class SplitNodenull, this or any
child of this nodepublic boolean isOfUse()
SplitNodepublic void visit(SplitNodeVisitor visitor)
SplitNodevisitor for every
child in the subtree with this as root.public void toString(int tabs,
StringBuilder out)
SplitNodeout.Copyright © 2017 Docking Frames. All rights reserved.