|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object bibliothek.gui.dock.station.split.SplitNode bibliothek.gui.dock.station.split.VisibleSplitNode bibliothek.gui.dock.station.split.Node
public class Node
A Node represents an element in the tree of a SplitDockStation
.
Every node has two children. The areas of the children are separated by
a "divider", whose position can be changed.
Field Summary |
---|
Fields inherited from class bibliothek.gui.dock.station.split.SplitNode |
---|
height, width, x, y |
Constructor Summary | |
---|---|
Node(SplitDockAccess access)
Constructs a new node. |
|
Node(SplitDockAccess access,
long id)
Constructs a new node. |
|
Node(SplitDockAccess access,
SplitNode left,
SplitNode right)
Constructs a new node. |
|
Node(SplitDockAccess access,
SplitNode left,
SplitNode right,
long id)
Constructs a new node. |
|
Node(SplitDockAccess access,
SplitNode left,
SplitNode right,
SplitDockStation.Orientation orientation)
Constructs a new node. |
|
Node(SplitDockAccess access,
SplitNode left,
SplitNode right,
SplitDockStation.Orientation orientation,
long id)
Constructs a new node. |
Method Summary | ||
---|---|---|
void |
evolve(SplitDockTree.Key key,
boolean checkValidity,
Map<Leaf,Dockable> linksToSet)
Creates or replaces children according to the values found in key . |
|
int |
getChildLocation(SplitNode child)
Gets the location of a child. |
|
double |
getDivider()
Gets the location of the divider. |
|
double |
getDividerAt(int x,
int y)
Calculates the value which the divider must have on condition that the point x/y lies inside the divider bounds . |
|
Rectangle |
getDividerBounds(double divider,
Rectangle bounds)
Calculates the location and the size of the area which represents the divider. |
|
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 . |
|
SplitNode |
getLeft()
Gets the left child of this node. |
|
Dimension |
getMinimumSize()
Gets the minimal size of this node. |
|
SplitDockStation.Orientation |
getOrientation()
Gets the orientation 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 |
getRight()
Gets the right child of this node. |
|
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. |
|
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. |
|
void |
setDivider(double divider)
Sets the location of the divider. |
|
void |
setLeft(SplitNode left)
Sets the left child of this node. |
|
void |
setOrientation(SplitDockStation.Orientation orientation)
Changes the orientation of this node. |
|
void |
setRight(SplitNode right)
Sets the right child of this node. |
|
|
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 |
updateBounds(double x,
double y,
double width,
double height,
double factorW,
double factorH,
boolean components)
Updates the bounds of this node. |
|
void |
visit(SplitNodeVisitor visitor)
Invokes one of the methods of the visitor for every
child in the subtree with this as root. |
Methods inherited from class bibliothek.gui.dock.station.split.VisibleSplitNode |
---|
getCurrentBounds |
Methods inherited from class bibliothek.gui.dock.station.split.SplitNode |
---|
above, addPlaceholder, create, create, createLeaf, createNode, createPlaceholder, delete, getAccess, getBounds, getHeight, getId, getParent, getPlaceholderMap, getPlaceholders, getRoot, getSize, getStation, getWidth, getX, getY, hasPlaceholder, hasPlaceholders, intersection, movePlaceholderMap, relativeSidePut, removePlaceholder, removePlaceholders, replace, setParent, setPlaceholderMap, setPlaceholders, toString, treeChanged |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Node(SplitDockAccess access, SplitNode left, SplitNode right, SplitDockStation.Orientation orientation)
access
- the access to the owner-station of this node.left
- the left childright
- the right childorientation
- how the children are alignedpublic Node(SplitDockAccess access, SplitNode left, SplitNode right, SplitDockStation.Orientation orientation, long id)
access
- the access to the owner-station of this node.left
- the left childright
- the right childorientation
- how the children are alignedid
- the unique id of this node, can be -1public Node(SplitDockAccess access, SplitNode left, SplitNode right)
access
- the access to the owner-station of this nodeleft
- the left childright
- the right childpublic Node(SplitDockAccess access, SplitNode left, SplitNode right, long id)
access
- the access to the owner-station of this nodeleft
- the left childright
- the right childid
- the unique id of this nodepublic Node(SplitDockAccess access)
access
- the access to the owner-station of this nodepublic Node(SplitDockAccess access, long id)
access
- the access to the owner-station of this nodeid
- the unique id of this nodeMethod Detail |
---|
public void setLeft(SplitNode left)
null
does not delete
the child from the system, only a call to SplitNode.delete(boolean)
does that.
left
- the left child or null
public SplitNode getLeft()
setLeft(SplitNode)
public void setRight(SplitNode right)
null
does not delete
the child from the system, only a call to SplitNode.delete(boolean)
does that.
right
- the right childpublic SplitNode getRight()
setRight(SplitNode)
public int getChildLocation(SplitNode child)
SplitNode
getChildLocation
in class SplitNode
child
- a child of this node
child
or -1 if the child is unknownpublic void setChild(SplitNode child, int location)
SplitNode
setChild
in class SplitNode
child
- the new childlocation
- the location of the childpublic SplitDockStation.Orientation getOrientation()
SplitDockStation.Orientation.VERTICAL
, one child
will be at the top and the other at the bottom.
public void setOrientation(SplitDockStation.Orientation orientation)
orientation
- the new orientationpublic Dimension getMinimumSize()
SplitNode
getMinimumSize
in class SplitNode
public void setDivider(double divider)
divider
.
divider
- the dividerpublic double getDivider()
setDivider(double)
public boolean isVisible()
SplitNode
isVisible
in class SplitNode
true
if this node or one of its children contains
a graphical elementpublic SplitNode getVisible()
SplitNode
getVisible
in class SplitNode
null
, this
or any
child of this nodepublic boolean isOfUse()
SplitNode
isOfUse
in class SplitNode
true
if this node has to remain in the tree, false
otherwisepublic void updateBounds(double x, double y, double width, double height, double factorW, double factorH, boolean components)
SplitNode
Component
, then
the bounds of the component have to be updated as well.
updateBounds
in class VisibleSplitNode
x
- the relative x-coordinatey
- the relative y-coordinatewidth
- the relative width of the nodeheight
- the relative height of the nodefactorW
- a factor to be multiplied with x
and width
to get the size of the node in pixelfactorH
- a factor to be multiplied with y
and height
to get the size of the node in pixelcomponents
- whether to update the bounds of Component
s
that are in the tree. If set to false
, then all updates stay within
the tree and the graphical user interface is not changed. That can be useful
if more than one round of updates is necessary. If in doubt, set this parameter
to true
.public Rectangle getDividerBounds(double divider, Rectangle bounds)
divider
- The location of the divider, should be between 0 and 1.bounds
- A rectangle in which the result will be stored. It can be null
bounds
or a new Rectangle
if bounds
was null
public double getDividerAt(int x, int y)
x/y
lies inside the divider bounds
.
x
- x-coordinate of the point in pixely
- y-coordinate of the point in pixel
public PutInfo getPut(int x, int y, double factorW, double factorH, Dockable drop)
SplitNode
Dockable
drop
if the mouse is at location x/y.
getPut
in class SplitNode
x
- 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 dropped
null
if
the dockable can't be droppedpublic boolean isInOverrideZone(int x, int y, double factorW, double factorH)
SplitNode
SplitDockStation
or not.
isInOverrideZone
in class SplitNode
x
- 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 evolve(SplitDockTree.Key key, boolean checkValidity, Map<Leaf,Dockable> linksToSet)
SplitNode
key
. Note that this method does not remove any Dockable
s
from the station. They must be removed explicitly using Leaf.setDockable(Dockable, boolean)
evolve
in class SplitNode
key
- the key to readcheckValidity
- whether to ensure that all new Dockable
s are
acceptable or not.linksToSet
- a map that is to be filled with all new Leaf
s and their Dockable
s which are not yet set.public boolean insert(SplitDockPlaceholderProperty property, Dockable dockable)
SplitNode
property
and inserts the dockable
there. Also removes
the placeholder from this node.
insert
in class SplitNode
property
- the placeholder to searchdockable
- the new element
true
if the element was inserted, false
otherwisepublic boolean insert(SplitDockPathProperty property, int depth, Dockable dockable)
SplitNode
property
, 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
.
insert
in class SplitNode
property
- a list of nodesdepth
- the index of the node that corresponds to thisdockable
- the element to insert
true
if the element was inserted, false
otherwisepublic <N> N submit(SplitTreeFactory<N> factory)
SplitNode
factory
.
submit
in class SplitNode
N
- the type of element the factory
will createfactory
- the factory transforming the elements of the tree into a
new form.
public Leaf getLeaf(Dockable dockable)
SplitNode
dockable
.
getLeaf
in class SplitNode
dockable
- the Dockable whose leaf is searched
null
if no leaf was foundpublic Node getDividerNode(int x, int y)
SplitNode
getDividerNode
in class SplitNode
x
- the x-coordinatey
- the y-coordinate
null
is returnedpublic void visit(SplitNodeVisitor visitor)
SplitNode
visitor
for every
child in the subtree with this as root.
visit
in class SplitNode
visitor
- the visitorpublic void toString(int tabs, StringBuilder out)
SplitNode
out
.
toString
in class SplitNode
tabs
- the number of tabs that should be added before the text if
a new line is necessary.out
- the container to write into
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |