|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbibliothek.gui.dock.station.split.SplitNode
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,
SplitNode left,
SplitNode right)
Constructs a new node. |
|
Node(SplitDockAccess access,
SplitNode left,
SplitNode right,
SplitDockStation.Orientation orientation)
Constructs a new node. |
Method Summary | ||
---|---|---|
void |
evolve(SplitDockTree.Key key,
boolean checkValidity)
Creates or replaces children according to the values found in key . |
|
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. |
|
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 |
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. |
|
void |
replace(SplitNode old,
SplitNode child)
Replaces a child of this node by child . |
|
void |
setDivider(double divider)
Sets the location of the divider. |
|
void |
setLeft(SplitNode left)
Sets the left child 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 |
updateBounds(double x,
double y,
double width,
double height,
double factorW,
double factorH)
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.SplitNode |
---|
above, create, create, getAccess, getBounds, getHeight, getParent, getRoot, getSize, getWidth, getX, getY, intersection, relativeSidePut, setParent |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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)
access
- the access to the owner-station of this nodeleft
- the left childright
- the right childpublic Node(SplitDockAccess access)
access
- the access to the owner-station of this nodeMethod Detail |
---|
public void setLeft(SplitNode left)
left
- the left child or null
public SplitNode getLeft()
setLeft(SplitNode)
public void setRight(SplitNode right)
right
- the right childpublic SplitNode getRight()
setRight(SplitNode)
public void replace(SplitNode old, SplitNode child)
SplitNode
child
.
replace
in class SplitNode
old
- the old childchild
- the replacement for old
public SplitDockStation.Orientation getOrientation()
SplitDockStation.Orientation.VERTICAL
, one child
will be at the top and the other at the bottom.
public Dimension getMinimumSize()
SplitNode
getMinimumSize
in class SplitNode
public void setDivider(double divider)
divider
.
divider
- the dividerpublic double getDivider()
setDivider(double)
public void updateBounds(double x, double y, double width, double height, double factorW, double factorH)
SplitNode
Component
, then
the bounds of the component have to be updated as well.
updateBounds
in class SplitNode
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 pixelpublic 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)
SplitNode
key
.
evolve
in class SplitNode
key
- the key to readcheckValidity
- whether to ensure that all new Dockable
s are
acceptable or not.public 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 visitor
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |