N
- The type of nodes in the tree.V
- The type of values for each node.public class Tree<N extends Tree.Node,V> extends WidgetGroup
The preferred size of the tree is determined by the preferred size of the actors for the expanded nodes.
ChangeListener.ChangeEvent
is fired when the selected node changes.
Modifier and Type | Class and Description |
---|---|
static class |
Tree.Node<N extends Tree.Node,V,A extends Actor>
A
Tree node which has an actor and value. |
static class |
Tree.TreeStyle
The style for a
Tree . |
Constructor and Description |
---|
Tree(Skin skin) |
Tree(Skin skin,
java.lang.String styleName) |
Tree(Tree.TreeStyle style) |
Modifier and Type | Method and Description |
---|---|
void |
add(N node) |
void |
clearChildren(boolean unfocus)
Removes all tree nodes.
|
void |
collapseAll() |
void |
draw(Batch batch,
float parentAlpha)
If this method is overridden, the super method or
WidgetGroup.validate() should be called to ensure the widget group is laid
out. |
protected void |
drawBackground(Batch batch,
float parentAlpha)
Called to draw the background.
|
protected void |
drawExpandIcon(N node,
Drawable expandIcon,
Batch batch,
float x,
float y) |
protected void |
drawIcon(N node,
Drawable icon,
Batch batch,
float x,
float y) |
protected float |
drawIcons(Batch batch,
float r,
float g,
float b,
float a,
N parent,
Array<N> nodes,
float indent,
float plusMinusWidth)
Draws selection, icons, and expand icons.
|
protected void |
drawOver(N node,
Drawable over,
Batch batch,
float x,
float y,
float width,
float height) |
protected void |
drawSelection(N node,
Drawable selection,
Batch batch,
float x,
float y,
float width,
float height) |
void |
expandAll() |
void |
findExpandedValues(Array<V> values) |
N |
findNode(V value)
Returns the node with the specified value, or null.
|
ClickListener |
getClickListener()
Returns the click listener the tree uses for clicking on nodes and the over node.
|
protected Drawable |
getExpandIcon(N node,
float iconX)
Returns the drawable for the expand icon.
|
float |
getIndentSpacing()
Returns the amount of horizontal space for indentation level.
|
N |
getNodeAt(float y) |
Array<N> |
getNodes()
Deprecated.
Use
getRootNodes() . |
N |
getOverNode() |
V |
getOverValue() |
float |
getPrefHeight() |
float |
getPrefWidth() |
Array<N> |
getRootNodes()
If the order of the root nodes is changed,
updateRootNodes() must be called to ensure the nodes' actors are in the
correct order. |
N |
getSelectedNode()
Returns the first selected node, or null.
|
V |
getSelectedValue()
Returns the first selected value, or null.
|
Selection<N> |
getSelection() |
Tree.TreeStyle |
getStyle() |
float |
getYSpacing() |
void |
insert(int index,
N node) |
void |
invalidate()
Invalidates this actor's layout, causing
Layout.layout() to happen the next time Layout.validate() is called. |
void |
layout()
Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child,
calls
Layout.invalidate() on any each child whose width or height has changed, and calls Layout.validate() on each
child. |
void |
remove(N node) |
void |
restoreExpandedValues(Array<V> values) |
void |
setIconSpacing(float left,
float right)
Sets the amount of horizontal space left and right of the node's icon.
|
void |
setIndentSpacing(float indentSpacing) |
void |
setOverNode(N overNode) |
void |
setPadding(float padding)
Sets the amount of horizontal space between the nodes and the left/right edges of the tree.
|
void |
setPadding(float left,
float right)
Sets the amount of horizontal space between the nodes and the left/right edges of the tree.
|
void |
setStyle(Tree.TreeStyle style) |
void |
setYSpacing(float ySpacing)
Sets the amount of vertical space between nodes.
|
void |
updateRootNodes()
Updates the order of the actors in the tree for all root nodes and all child nodes.
|
childrenChanged, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, invalidateHierarchy, needsLayout, pack, setFillParent, setLayoutEnabled, sizeChanged, validate
act, addActor, addActorAfter, addActorAt, addActorBefore, applyTransform, applyTransform, clear, clear, clearChildren, computeTransform, debugAll, drawChildren, drawDebug, drawDebugChildren, findActor, getChild, getChildren, getCullingArea, hasChildren, hit, isTransform, localToDescendantCoordinates, removeActor, removeActor, removeActorAt, resetTransform, resetTransform, setCullingArea, setDebug, setStage, setTransform, swapActor, swapActor, toString
addAction, addCaptureListener, addListener, ancestorsVisible, ascendantsVisible, clearActions, clearListeners, clipBegin, clipBegin, clipEnd, debug, drawDebugBounds, fire, firstAscendant, getActions, getCaptureListeners, getColor, getDebug, getHeight, getListeners, getName, getOriginX, getOriginY, getParent, getRight, getRotation, getScaleX, getScaleY, getStage, getTop, getTouchable, getUserObject, getWidth, getX, getX, getY, getY, getZIndex, hasActions, hasKeyboardFocus, hasParent, hasScrollFocus, isAscendantOf, isDescendantOf, isTouchable, isTouchFocusListener, isTouchFocusTarget, isVisible, localToActorCoordinates, localToAscendantCoordinates, localToParentCoordinates, localToScreenCoordinates, localToStageCoordinates, moveBy, notify, parentToLocalCoordinates, positionChanged, remove, removeAction, removeCaptureListener, removeListener, rotateBy, rotationChanged, scaleBy, scaleBy, scaleChanged, screenToLocalCoordinates, setBounds, setColor, setColor, setDebug, setHeight, setName, setOrigin, setOrigin, setOriginX, setOriginY, setParent, setPosition, setPosition, setRotation, setScale, setScale, setScaleX, setScaleY, setSize, setTouchable, setUserObject, setVisible, setWidth, setX, setX, setY, setY, setZIndex, sizeBy, sizeBy, stageToLocalCoordinates, toBack, toFront
public Tree(Skin skin)
public Tree(Skin skin, java.lang.String styleName)
public Tree(Tree.TreeStyle style)
public void setStyle(Tree.TreeStyle style)
public void add(N node)
public void insert(int index, N node)
public void remove(N node)
public void clearChildren(boolean unfocus)
clearChildren
in class Group
public void invalidate()
Layout
Layout.layout()
to happen the next time Layout.validate()
is called. This
method should be called when state changes in the actor that requires a layout but does not change the minimum, preferred,
maximum, or actual size of the actor (meaning it does not affect the parent actor's layout).invalidate
in interface Layout
invalidate
in class WidgetGroup
public void layout()
Layout
Layout.invalidate()
on any each child whose width or height has changed, and calls Layout.validate()
on each
child. This method should almost never be called directly, instead Layout.validate()
should be used.layout
in interface Layout
layout
in class WidgetGroup
public void draw(Batch batch, float parentAlpha)
WidgetGroup
WidgetGroup.validate()
should be called to ensure the widget group is laid
out.draw
in class WidgetGroup
parentAlpha
- The parent alpha, to be multiplied with this actor's alpha, allowing the parent's alpha to affect all
children.protected void drawBackground(Batch batch, float parentAlpha)
protected float drawIcons(Batch batch, float r, float g, float b, float a, @Null N parent, Array<N> nodes, float indent, float plusMinusWidth)
parent
- null for the root nodes.protected void drawSelection(N node, Drawable selection, Batch batch, float x, float y, float width, float height)
protected void drawOver(N node, Drawable over, Batch batch, float x, float y, float width, float height)
protected void drawExpandIcon(N node, Drawable expandIcon, Batch batch, float x, float y)
protected Drawable getExpandIcon(N node, float iconX)
Tree.TreeStyle.plusOver
or
Tree.TreeStyle.minusOver
on the desktop if the node is the over node
, the mouse is left of
iconX
, and clicking would expand the node.iconX
- The X coordinate of the over node's icon.public Tree.TreeStyle getStyle()
public Array<N> getRootNodes()
updateRootNodes()
must be called to ensure the nodes' actors are in the
correct order.@Deprecated public Array<N> getNodes()
getRootNodes()
.public void updateRootNodes()
getRootNodes()
.Tree.Node.updateChildren()
public void setPadding(float padding)
public void setPadding(float left, float right)
public void setIndentSpacing(float indentSpacing)
public float getIndentSpacing()
public void setYSpacing(float ySpacing)
public float getYSpacing()
public void setIconSpacing(float left, float right)
public float getPrefWidth()
getPrefWidth
in interface Layout
getPrefWidth
in class WidgetGroup
public float getPrefHeight()
getPrefHeight
in interface Layout
getPrefHeight
in class WidgetGroup
public void collapseAll()
public void expandAll()
public ClickListener getClickListener()