Class BasicTreeUI
java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.TreeUI
javax.swing.plaf.basic.BasicTreeUI
- Direct Known Subclasses:
MetalTreeUI, SynthTreeUI
public class BasicTreeUI extends TreeUI
The basic L&F for a hierarchical data structure.
Nested Class Summary
| Modifier and Type | Class | Description |
|---|---|---|
class |
BasicTreeUI.CellEditorHandler |
Listener responsible for getting cell editing events and updating the tree accordingly. |
class |
BasicTreeUI.ComponentHandler |
Updates the preferred size when scrolling (if necessary). |
class |
BasicTreeUI.FocusHandler |
Repaints the lead selection row when focus is lost/gained. |
class |
BasicTreeUI.KeyHandler |
This is used to get multiple key down events to appropriately generate events. |
class |
BasicTreeUI.MouseHandler |
TreeMouseListener is responsible for updating the selection based on mouse events. |
class |
BasicTreeUI.MouseInputHandler |
MouseInputHandler handles passing all mouse events, including mouse motion events, until the mouse is released to the destination it is constructed with. |
class |
BasicTreeUI.NodeDimensionsHandler |
Class responsible for getting size of node, method is forwarded to BasicTreeUI method. |
class |
BasicTreeUI.PropertyChangeHandler |
PropertyChangeListener for the tree. |
class |
BasicTreeUI.SelectionModelPropertyChangeHandler |
Listener on the TreeSelectionModel, resets the row selection if any of the properties of the model change. |
class |
BasicTreeUI.TreeCancelEditingAction |
ActionListener that invokes cancelEditing when action performed. |
class |
BasicTreeUI.TreeExpansionHandler |
Updates the TreeState in response to nodes expanding/collapsing. |
class |
BasicTreeUI.TreeHomeAction |
TreeHomeAction is used to handle end/home actions. |
class |
BasicTreeUI.TreeIncrementAction |
TreeIncrementAction is used to handle up/down actions. |
class |
BasicTreeUI.TreeModelHandler |
Forwards all TreeModel events to the TreeState. |
class |
BasicTreeUI.TreePageAction |
TreePageAction handles page up and page down events. |
class |
BasicTreeUI.TreeSelectionHandler |
Listens for changes in the selection model and updates the display accordingly. |
class |
BasicTreeUI.TreeToggleAction |
For the first selected row expandedness will be toggled. |
class |
BasicTreeUI.TreeTraverseAction |
TreeTraverseAction is the action used for left/right keys. |
Field Summary
| Modifier and Type | Field | Description |
|---|---|---|
protected TreeCellEditor |
cellEditor |
Editor for the tree. |
protected Icon |
collapsedIcon |
The collapsed icon. |
protected boolean |
createdCellEditor |
Set to true if editor that is currently in the tree was created by this instance. |
protected boolean |
createdRenderer |
Set to true if the renderer that is currently in the tree was created by this instance. |
protected TreeCellRenderer |
currentCellRenderer |
Renderer that is being used to do the actual cell drawing. |
protected int |
depthOffset |
How much the depth should be offset to properly calculate x locations. |
protected Hashtable |
drawingCache |
Used for minimizing the drawing of vertical lines. |
protected Component |
editingComponent |
When editing, this will be the Component that is doing the actual editing. |
protected TreePath |
editingPath |
Path that is being edited. |
protected int |
editingRow |
Row that is being edited. |
protected boolean |
editorHasDifferentSize |
Set to true if the editor has a different size than the renderer. |
protected Icon |
expandedIcon |
The expanded icon. |
protected boolean |
largeModel |
True if doing optimizations for a largeModel. |
protected int |
lastSelectedRow |
Index of the row that was last selected. |
protected int |
leftChildIndent |
Distance between left margin and where vertical dashes will be drawn. |
protected AbstractLayoutCache.NodeDimensions |
nodeDimensions |
Responsible for telling the TreeState the size needed for a node. |
protected Dimension |
preferredMinSize |
Minimum preferred size. |
protected Dimension |
preferredSize |
Size needed to completely display all the nodes. |
protected CellRendererPane |
rendererPane |
Used to paint the TreeCellRenderer. |
protected int |
rightChildIndent |
Distance to add to leftChildIndent to determine where cell contents will be drawn. |
protected boolean |
stopEditingInCompleteEditing |
Set to false when editing and shouldSelectCell() returns true meaning the node should be selected before editing, used in completeEditing. |
protected int |
totalChildIndent |
Total distance that will be indented. |
protected JTree |
tree |
Component that we're going to be drawing into. |
protected TreeModel |
treeModel |
Used to determine what to display. |
protected TreeSelectionModel |
treeSelectionModel |
Model maintaining the selection. |
protected AbstractLayoutCache |
treeState |
Object responsible for handling sizing and expanded issues. |
protected boolean |
validCachedPreferredSize |
Is the preferredSize valid? |
Constructor Summary
| Constructor | Description |
|---|---|
BasicTreeUI() |
Constructs a new instance of BasicTreeUI. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
void |
cancelEditing |
Cancels the current editing session. |
protected void |
checkForClickInExpandControl |
If the mouseX and mouseY are in the expand/collapse region of the row, this will toggle the row. |
protected void |
completeEditing() |
Messages to stop the editing session. |
protected void |
completeEditing |
Stops the editing session. |
protected void |
completeUIInstall() |
Invoked from installUI after all the defaults/listeners have been installed. |
protected void |
completeUIUninstall() |
Uninstalls UI. |
protected void |
configureLayoutCache() |
Resets the TreeState instance based on the tree we're providing the look and feel for. |
protected CellEditorListener |
createCellEditorListener() |
Creates a listener to handle events from the current editor. |
protected CellRendererPane |
createCellRendererPane() |
Returns the renderer pane that renderer components are placed in. |
protected ComponentListener |
createComponentListener() |
Creates and returns a new ComponentHandler. |
protected TreeCellEditor |
createDefaultCellEditor() |
Creates a default cell editor. |
protected TreeCellRenderer |
createDefaultCellRenderer() |
Returns the default cell renderer that is used to do the stamping of each node. |
protected FocusListener |
createFocusListener() |
Creates a listener that is responsible for updating the display when focus is lost/gained. |
protected KeyListener |
createKeyListener() |
Creates the listener responsible for getting key events from the tree. |
protected AbstractLayoutCache |
createLayoutCache() |
Creates the object responsible for managing what is expanded, as well as the size of nodes. |
protected MouseListener |
createMouseListener() |
Creates the listener responsible for updating the selection based on mouse events. |
protected AbstractLayoutCache.NodeDimensions |
createNodeDimensions() |
Creates an instance of NodeDimensions that is able to determine the size of a given node in the tree. |
protected PropertyChangeListener |
createPropertyChangeListener() |
Creates a listener that is responsible that updates the UI based on how the tree changes. |
protected PropertyChangeListener |
createSelectionModelPropertyChangeListener() |
Creates the listener responsible for getting property change events from the selection model. |
protected TreeExpansionListener |
createTreeExpansionListener() |
Creates and returns the object responsible for updating the treestate when nodes expanded state changes. |
protected TreeModelListener |
createTreeModelListener() |
Returns a listener that can update the tree when the model changes. |
protected TreeSelectionListener |
createTreeSelectionListener() |
Creates the listener that updates the display based on selection change methods. |
static ComponentUI |
createUI |
Constructs a new instance of BasicTreeUI. |
protected void |
drawCentered |
Draws the icon centered at (x,y). |
protected void |
drawDashedHorizontalLine |
Draws a horizontal dashed line. |
protected void |
drawDashedVerticalLine |
Draws a vertical dashed line. |
protected void |
ensureRowsAreVisible |
Ensures that the rows identified by beginRow through endRow are visible. |
int |
getBaseline |
Returns the baseline. |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior |
Returns an enum indicating how the baseline of the component changes as the size changes. |
protected TreeCellEditor |
getCellEditor() |
Returns the editor used to edit entries in the drawn tree component, or null if the tree cannot be edited. |
protected TreeCellRenderer |
getCellRenderer() |
Returns the current instance of the TreeCellRenderer that is rendering each cell. |
TreePath |
getClosestPathForLocation |
Returns the path to the node that is closest to x,y. |
Icon |
getCollapsedIcon() |
Returns the collapsed icon. |
protected Rectangle |
getDropLineRect |
Returns a unbounding box for the drop line. |
TreePath |
getEditingPath |
Returns the path to the element that is being edited. |
Icon |
getExpandedIcon() |
Returns the expanded icon. |
protected Color |
getHashColor() |
Returns the hash color. |
protected int |
getHorizontalLegBuffer() |
The horizontal element of legs between nodes starts at the right of the left-hand side of the child node by default. |
protected TreePath |
getLastChildPath |
Returns a path to the last child of parent. |
protected int |
getLeadSelectionRow() |
Returns the lead row of the selection. |
int |
getLeftChildIndent() |
Returns the left child indent. |
Dimension |
getMaximumSize |
Returns the maximum size for this component, which will be the preferred size if the instance is currently in a JTree, or 0, 0. |
Dimension |
getMinimumSize |
Returns the minimum size for this component. |
protected TreeModel |
getModel() |
Returns the tree model. |
Rectangle |
getPathBounds |
Returns the Rectangle enclosing the label portion that the last item in path will be drawn into. |
TreePath |
getPathForRow |
Returns the path for passed in row. |
Dimension |
getPreferredMinSize() |
Returns the minimum preferred size. |
Dimension |
getPreferredSize |
Returns the preferred size to properly display the tree, this is a cover method for getPreferredSize(c, true). |
Dimension |
getPreferredSize |
Returns the preferred size to represent the tree in c. |
int |
getRightChildIndent() |
Returns the right child indent. |
int |
getRowCount |
Returns the number of rows that are being displayed. |
int |
getRowForPath |
Returns the row that the last item identified in path is visible at. |
protected int |
getRowHeight() |
Returns the height of each row in the drawn tree component. |
protected int |
getRowX |
Returns the location, along the x-axis, to render a particular row at. |
protected TreeSelectionModel |
getSelectionModel() |
Returns the current instance of the TreeSelectionModel which is the model for selections. |
protected boolean |
getShowsRootHandles() |
Returns true if the root handles are to be displayed. |
protected int |
getVerticalLegBuffer() |
The vertical element of legs between nodes starts at the bottom of the parent node by default. |
protected void |
handleExpandControlClick |
Messaged when the user clicks the particular row, this invokes toggleExpandState. |
protected void |
installComponents() |
Installs the subcomponents of the tree, which is the renderer pane. |
protected void |
installDefaults() |
Installs default properties. |
protected void |
installKeyboardActions() |
Registers keyboard actions. |
protected void |
installListeners() |
Registers listeners. |
protected boolean |
isDropLine |
Tells if a DropLocation should be indicated by a line between nodes. |
protected boolean |
isEditable() |
Returns whether the drawn tree component should be enabled for editing. |
boolean |
isEditing |
Returns true if the tree is being edited. |
protected boolean |
isLargeModel() |
Returns true if large model is set. |
protected boolean |
isLeaf |
Returns true if the node at row is a leaf. |
protected boolean |
isLocationInExpandControl |
Returns true if mouseX and mouseY fall in the area of row that is used to expand/collapse the node and the node at row does not represent a leaf. |
protected boolean |
isMultiSelectEvent |
Returning true signifies a mouse event on the node should select from the anchor point. |
protected boolean |
isRootVisible() |
Returns whether the root node of the drawn tree component should be displayed. |
protected boolean |
isToggleEvent |
Returning true indicates the row under the mouse should be toggled based on the event. |
protected boolean |
isToggleSelectionEvent |
Returning true signifies a mouse event on the node should toggle the selection of only the row under mouse. |
protected void |
paintDropLine |
Paints the drop line. |
protected void |
paintExpandControl |
Paints the expand (toggle) part of a row. |
protected void |
paintHorizontalLine |
Paints a horizontal line. |
protected void |
paintHorizontalPartOfLeg |
Paints the horizontal part of the leg. |
protected void |
paintRow |
Paints the renderer part of a row. |
protected void |
paintVerticalLine |
Paints a vertical line. |
protected void |
paintVerticalPartOfLeg |
Paints the vertical part of the leg. |
protected void |
pathWasCollapsed |
Messaged from the VisibleTreeNode after it has collapsed. |
protected void |
pathWasExpanded |
Messaged from the VisibleTreeNode after it has been expanded. |
protected void |
prepareForUIInstall() |
Invoked after the tree instance variable has been set, but before any defaults/listeners have been installed. |
protected void |
prepareForUIUninstall() |
Invoked before uninstallation of UI. |
protected void |
selectPathForEvent |
Messaged to update the selection based on a MouseEvent over a particular row. |
protected void |
setCellEditor |
Sets the cell editor. |
protected void |
setCellRenderer |
Sets the TreeCellRenderer to tcr. |
void |
setCollapsedIcon |
Sets the collapsed icon. |
protected void |
setEditable |
Configures the receiver to allow, or not allow, editing. |
void |
setExpandedIcon |
Sets the expanded icon. |
protected void |
setHashColor |
Sets the hash color. |
protected void |
setLargeModel |
Sets the largeModel. |
void |
setLeftChildIndent |
Sets the left child indent. |
protected void |
setModel |
Sets the TreeModel. |
void |
setPreferredMinSize |
Sets the preferred minimum size. |
void |
setRightChildIndent |
Sets the right child indent. |
protected void |
setRootVisible |
Sets the root to being visible. |
protected void |
setRowHeight |
Sets the row height, this is forwarded to the treeState. |
protected void |
setSelectionModel |
Resets the selection model. |
protected void |
setShowsRootHandles |
Determines whether the node handles are to be displayed. |
protected boolean |
shouldPaintExpandControl |
Returns true if the expand (toggle) control should be drawn for the specified row. |
protected boolean |
startEditing |
Will start editing for node if there is a cellEditor and shouldSelectCell returns true. |
void |
startEditingAtPath |
Selects the last item in path and tries to edit it. |
boolean |
stopEditing |
Stops the current editing session. |
protected void |
toggleExpandState |
Expands path if it is not expanded, or collapses row if it is expanded. |
protected void |
uninstallComponents() |
Uninstalls the renderer pane. |
protected void |
uninstallDefaults() |
Uninstalls default properties. |
protected void |
uninstallKeyboardActions() |
Unregisters keyboard actions. |
protected void |
uninstallListeners() |
Unregisters listeners. |
protected void |
updateCachedPreferredSize() |
Updates the preferredSize instance variable, which is returned from getPreferredSize(). |
protected void |
updateCellEditor() |
Updates the cellEditor based on the editability of the JTree that we're contained in. |
protected void |
updateDepthOffset() |
Updates how much each depth should be offset by. |
protected void |
updateExpandedDescendants |
Updates the expanded state of all the descendants of path by getting the expanded descendants from the tree and forwarding to the tree state. |
protected void |
updateLayoutCacheExpandedNodes() |
Makes all the nodes that are expanded in JTree expanded in LayoutCache. |
protected void |
updateLeadSelectionRow() |
Updates the lead row of the selection. |
protected void |
updateRenderer() |
Messaged from the tree we're in when the renderer has changed. |
protected void |
updateSize() |
Marks the cached size as being invalid, and messages the tree with treeDidChange. |
Methods declared in class ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, installUI, paint, uninstallUI, update | Modifier and Type | Method | Description |
|---|---|---|
boolean |
contains |
Returns true if the specified x,y location is contained within the look and feel's defined shape of the specified component. |
Accessible |
getAccessibleChild |
Returns the ith Accessible child of the object. |
int |
getAccessibleChildrenCount |
Returns the number of accessible children in the object. |
void |
installUI |
Configures the specified component appropriately for the look and feel. |
void |
paint |
Paints the specified component appropriately for the look and feel. |
void |
uninstallUI |
Reverses configuration which was done on the specified component during installUI. |
void |
update |
Notifies this UI delegate that it is time to paint the specified component. |
Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Modifier and Type | Method | Description |
|---|---|---|
protected Object |
clone() |
Creates and returns a copy of this object. |
boolean |
equals |
Indicates whether some other object is "equal to" this one. |
protected void |
finalize() |
Deprecated, for removal: This API element is subject to removal in a future version. Finalization is deprecated and subject to removal in a future release. |
final Class |
getClass() |
Returns the runtime class of this Object. |
int |
hashCode() |
Returns a hash code value for this object. |
final void |
notify() |
Wakes up a single thread that is waiting on this object's monitor. |
final void |
notifyAll() |
Wakes up all threads that are waiting on this object's monitor. |
String |
toString() |
Returns a string representation of the object. |
final void |
wait() |
Causes the current thread to wait until it is awakened, typically by being notified or interrupted. |
final void |
wait |
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. |
final void |
wait |
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. |
Field Details
collapsedIcon
protected transient Icon collapsedIcon
The collapsed icon.
expandedIcon
protected transient Icon expandedIcon
The expanded icon.
leftChildIndent
protected int leftChildIndent
Distance between left margin and where vertical dashes will be drawn.
rightChildIndent
protected int rightChildIndent
Distance to add to leftChildIndent to determine where cell contents will be drawn.
totalChildIndent
protected int totalChildIndent
Total distance that will be indented. The sum of leftChildIndent and rightChildIndent.
preferredMinSize
protected Dimension preferredMinSize
Minimum preferred size.
lastSelectedRow
protected int lastSelectedRow
Index of the row that was last selected.
tree
protected JTree tree
Component that we're going to be drawing into.
currentCellRenderer
protected transient TreeCellRenderer currentCellRenderer
Renderer that is being used to do the actual cell drawing.
createdRenderer
protected boolean createdRenderer
Set to true if the renderer that is currently in the tree was created by this instance.
cellEditor
protected transient TreeCellEditor cellEditor
Editor for the tree.
createdCellEditor
protected boolean createdCellEditor
Set to true if editor that is currently in the tree was created by this instance.
stopEditingInCompleteEditing
protected boolean stopEditingInCompleteEditing
Set to false when editing and shouldSelectCell() returns true meaning the node should be selected before editing, used in completeEditing.
rendererPane
protected CellRendererPane rendererPane
Used to paint the TreeCellRenderer.
preferredSize
protected Dimension preferredSize
Size needed to completely display all the nodes.
validCachedPreferredSize
protected boolean validCachedPreferredSize
Is the preferredSize valid?
treeState
protected AbstractLayoutCache treeState
Object responsible for handling sizing and expanded issues.
drawingCache
protected Hashtable<TreePath,Boolean> drawingCache
Used for minimizing the drawing of vertical lines.
largeModel
protected boolean largeModel
True if doing optimizations for a largeModel. Subclasses that don't support this may wish to override createLayoutCache to not return a FixedHeightLayoutCache instance.
nodeDimensions
protected AbstractLayoutCache.NodeDimensions nodeDimensions
Responsible for telling the TreeState the size needed for a node.
treeModel
protected TreeModel treeModel
Used to determine what to display.
treeSelectionModel
protected TreeSelectionModel treeSelectionModel
Model maintaining the selection.
depthOffset
protected int depthOffset
How much the depth should be offset to properly calculate x locations. This is based on whether or not the root is visible, and if the root handles are visible.
editingComponent
protected Component editingComponent
When editing, this will be the Component that is doing the actual editing.
editingPath
protected TreePath editingPath
Path that is being edited.
editingRow
protected int editingRow
Row that is being edited. Should only be referenced if editingComponent is not null.
editorHasDifferentSize
protected boolean editorHasDifferentSize
Set to true if the editor has a different size than the renderer.
Constructor Details
BasicTreeUI
public BasicTreeUI()
Constructs a new instance of
BasicTreeUI.Method Details
createUI
public static ComponentUI createUI(JComponent x)
Constructs a new instance of
BasicTreeUI.- Parameters:
-
x- a component - Returns:
- a new instance of
BasicTreeUI
getHashColor
protected Color getHashColor()
Returns the hash color.
- Returns:
- the hash color
setHashColor
protected void setHashColor(Color color)
Sets the hash color.
- Parameters:
-
color- the hash color
setLeftChildIndent
public void setLeftChildIndent(int newAmount)
Sets the left child indent.
- Parameters:
-
newAmount- the left child indent
getLeftChildIndent
public int getLeftChildIndent()
Returns the left child indent.
- Returns:
- the left child indent
setRightChildIndent
public void setRightChildIndent(int newAmount)
Sets the right child indent.
- Parameters:
-
newAmount- the right child indent
getRightChildIndent
public int getRightChildIndent()
Returns the right child indent.
- Returns:
- the right child indent
setExpandedIcon
public void setExpandedIcon(Icon newG)
Sets the expanded icon.
- Parameters:
-
newG- the expanded icon
getExpandedIcon
public Icon getExpandedIcon()
Returns the expanded icon.
- Returns:
- the expanded icon
setCollapsedIcon
public void setCollapsedIcon(Icon newG)
Sets the collapsed icon.
- Parameters:
-
newG- the collapsed icon
getCollapsedIcon
public Icon getCollapsedIcon()
Returns the collapsed icon.
- Returns:
- the collapsed icon
setLargeModel
protected void setLargeModel(boolean largeModel)
Sets the
largeModel. Called when the largeModel property is changed in the drawn tree component.- Parameters:
-
largeModel- the new value of thelargeModelproperty
isLargeModel
protected boolean isLargeModel()
Returns
true if large model is set.- Returns:
-
trueif large model is set
setRowHeight
protected void setRowHeight(int rowHeight)
Sets the row height, this is forwarded to the treeState. Called when the
rowHeight property is changed in the drawn tree component.- Parameters:
-
rowHeight- the new value of therowHeightproperty
getRowHeight
protected int getRowHeight()
Returns the height of each row in the drawn tree component. If the returned value is less than or equal to 0 the height for each row is determined by the renderer.
- Returns:
- the height of each row, in pixels
setCellRenderer
protected void setCellRenderer(TreeCellRenderer tcr)
Sets the
TreeCellRenderer to tcr. This invokes updateRenderer. Called when the cellRenderer property is changed in the drawn tree component.- Parameters:
-
tcr- the new value of thecellRendererproperty
getCellRenderer
protected TreeCellRenderer getCellRenderer()
Returns the current instance of the
TreeCellRenderer that is rendering each cell.- Returns:
- the
TreeCellRendererinstance
setModel
protected void setModel(TreeModel model)
Sets the
TreeModel.- Parameters:
-
model- the new value
getModel
protected TreeModel getModel()
Returns the tree model.
- Returns:
- the tree model
setRootVisible
protected void setRootVisible(boolean newValue)
Sets the root to being visible. Called when the
rootVisible property is changed in the drawn tree component.- Parameters:
-
newValue- the new value of therootVisibleproperty
isRootVisible
protected boolean isRootVisible()
Returns whether the root node of the drawn tree component should be displayed.
- Returns:
-
trueif the root node of the tree is displayed
setShowsRootHandles
protected void setShowsRootHandles(boolean newValue)
Determines whether the node handles are to be displayed. Called when the
showsRootHandles property is changed in the drawn tree component.- Parameters:
-
newValue- the new value of theshowsRootHandlesproperty
getShowsRootHandles
protected boolean getShowsRootHandles()
Returns
true if the root handles are to be displayed.- Returns:
-
trueif the root handles are to be displayed
setCellEditor
protected void setCellEditor(TreeCellEditor editor)
Sets the cell editor. Called when the
cellEditor property is changed in the drawn tree component.- Parameters:
-
editor- the new value of thecellEditorproperty
getCellEditor
protected TreeCellEditor getCellEditor()
Returns the editor used to edit entries in the drawn tree component, or
null if the tree cannot be edited.- Returns:
- the
TreeCellEditorinstance, ornull
setEditable
protected void setEditable(boolean newValue)
Configures the receiver to allow, or not allow, editing. Called when the
editable property is changed in the drawn tree component.- Parameters:
-
newValue- the new value of theeditableproperty
isEditable
protected boolean isEditable()
Returns whether the drawn tree component should be enabled for editing.
- Returns:
-
trueif the tree is editable
setSelectionModel
protected void setSelectionModel(TreeSelectionModel newLSM)
Resets the selection model. The appropriate listener are installed on the model. Called when the
selectionModel property is changed in the drawn tree component.- Parameters:
-
newLSM- the new value of theselectionModelproperty
getSelectionModel
protected TreeSelectionModel getSelectionModel()
Returns the current instance of the
TreeSelectionModel which is the model for selections.- Returns:
- the
TreeSelectionModelinstance
getPathBounds
public Rectangle getPathBounds(JTree tree, TreePath path)
Returns the Rectangle enclosing the label portion that the last item in path will be drawn into. Will return null if any component in path is currently invalid.
- Specified by:
-
getPathBoundsin classTreeUI - Parameters:
-
tree- theJTreeforpath -
path- theTreePathidentifying the node - Returns:
- the
Rectangleenclosing the label portion that the last item in path will be drawn into,nullif any component in path is currently valid.
getPathForRow
public TreePath getPathForRow(JTree tree, int row)
Returns the path for passed in row. If row is not visible null is returned.
- Specified by:
-
getPathForRowin classTreeUI - Parameters:
-
tree- aJTreeobject -
row- an integer specifying a row - Returns:
- the
pathforrowornullifrowis not visible
getRowForPath
public int getRowForPath(JTree tree, TreePath path)
Returns the row that the last item identified in path is visible at. Will return -1 if any of the elements in path are not currently visible.
- Specified by:
-
getRowForPathin classTreeUI - Parameters:
-
tree- theJTreeforpath -
path- theTreePathobject to look in - Returns:
- an integer specifying the row at which the last item identified is visible, -1 if any of the elements in
pathare not currently visible
getRowCount
public int getRowCount(JTree tree)
Returns the number of rows that are being displayed.
- Specified by:
-
getRowCountin classTreeUI - Parameters:
-
tree- theJTreefor which to count rows - Returns:
- an integer specifying the number of row being displayed
getClosestPathForLocation
public TreePath getClosestPathForLocation(JTree tree, int x, int y)
Returns the path to the node that is closest to x,y. If there is nothing currently visible this will return null, otherwise it'll always return a valid path. If you need to test if the returned object is exactly at x, y you should get the bounds for the returned path and test x, y against that.
- Specified by:
-
getClosestPathForLocationin classTreeUI - Parameters:
-
tree- aJTreeobject -
x- an integer giving the number of pixels horizontally from the left edge of the display area -
y- an integer giving the number of pixels vertically from the top of the display area, minus any top margin - Returns:
- the
TreePathnode closest tox,yornullif there is nothing currently visible
isEditing
stopEditing
public boolean stopEditing(JTree tree)
Stops the current editing session. This has no effect if the tree isn't being edited. Returns true if the editor allows the editing session to stop.
- Specified by:
-
stopEditingin classTreeUI - Parameters:
-
tree- aJTreeobject - Returns:
- true if the editor allows the editing session to stop
cancelEditing
public void cancelEditing(JTree tree)
Cancels the current editing session.
- Specified by:
-
cancelEditingin classTreeUI - Parameters:
-
tree- aJTreeobject
startEditingAtPath
public void startEditingAtPath(JTree tree, TreePath path)
Selects the last item in path and tries to edit it. Editing will fail if the CellEditor won't allow it for the selected item.
- Specified by:
-
startEditingAtPathin classTreeUI - Parameters:
-
tree- theJTreebeing edited -
path- theTreePathto be edited
getEditingPath
public TreePath getEditingPath(JTree tree)
Returns the path to the element that is being edited.
- Specified by:
-
getEditingPathin classTreeUI - Parameters:
-
tree- theJTreefor which to return a path - Returns:
- a
TreePathcontaining the path totree
prepareForUIInstall
protected void prepareForUIInstall()
Invoked after the
tree instance variable has been set, but before any defaults/listeners have been installed.completeUIInstall
protected void completeUIInstall()
Invoked from installUI after all the defaults/listeners have been installed.
installDefaults
protected void installDefaults()
Installs default properties.
installListeners
protected void installListeners()
Registers listeners.
installKeyboardActions
protected void installKeyboardActions()
Registers keyboard actions.
installComponents
protected void installComponents()
Installs the subcomponents of the tree, which is the renderer pane.
createNodeDimensions
protected AbstractLayoutCache.NodeDimensions createNodeDimensions()
Creates an instance of
NodeDimensions that is able to determine the size of a given node in the tree.- Returns:
- an instance of
NodeDimensions
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener()
Creates a listener that is responsible that updates the UI based on how the tree changes.
- Returns:
- an instance of the
PropertyChangeListener
createMouseListener
protected MouseListener createMouseListener()
Creates the listener responsible for updating the selection based on mouse events.
- Returns:
- an instance of the
MouseListener
createFocusListener
protected FocusListener createFocusListener()
Creates a listener that is responsible for updating the display when focus is lost/gained.
- Returns:
- an instance of the
FocusListener
createKeyListener
protected KeyListener createKeyListener()
Creates the listener responsible for getting key events from the tree.
- Returns:
- an instance of the
KeyListener
createSelectionModelPropertyChangeListener
protected PropertyChangeListener createSelectionModelPropertyChangeListener()
Creates the listener responsible for getting property change events from the selection model.
- Returns:
- an instance of the
PropertyChangeListener
createTreeSelectionListener
protected TreeSelectionListener createTreeSelectionListener()
Creates the listener that updates the display based on selection change methods.
- Returns:
- an instance of the
TreeSelectionListener
createCellEditorListener
protected CellEditorListener createCellEditorListener()
Creates a listener to handle events from the current editor.
- Returns:
- an instance of the
CellEditorListener
createComponentListener
protected ComponentListener createComponentListener()
Creates and returns a new ComponentHandler. This is used for the large model to mark the validCachedPreferredSize as invalid when the component moves.
- Returns:
- an instance of the
ComponentListener
createTreeExpansionListener
protected TreeExpansionListener createTreeExpansionListener()
Creates and returns the object responsible for updating the treestate when nodes expanded state changes.
- Returns:
- an instance of the
TreeExpansionListener
createLayoutCache
protected AbstractLayoutCache createLayoutCache()
Creates the object responsible for managing what is expanded, as well as the size of nodes.
- Returns:
- the object responsible for managing what is expanded
createCellRendererPane
protected CellRendererPane createCellRendererPane()
Returns the renderer pane that renderer components are placed in.
- Returns:
- an instance of the
CellRendererPane
createDefaultCellEditor
protected TreeCellEditor createDefaultCellEditor()
Creates a default cell editor.
- Returns:
- a default cell editor
createDefaultCellRenderer
protected TreeCellRenderer createDefaultCellRenderer()
Returns the default cell renderer that is used to do the stamping of each node.
- Returns:
- an instance of
TreeCellRenderer
createTreeModelListener
protected TreeModelListener createTreeModelListener()
Returns a listener that can update the tree when the model changes.
- Returns:
- an instance of the
TreeModelListener.
prepareForUIUninstall
protected void prepareForUIUninstall()
Invoked before uninstallation of UI.
completeUIUninstall
protected void completeUIUninstall()
Uninstalls UI.
uninstallDefaults
protected void uninstallDefaults()
Uninstalls default properties.
uninstallListeners
protected void uninstallListeners()
Unregisters listeners.
uninstallKeyboardActions
protected void uninstallKeyboardActions()
Unregisters keyboard actions.
uninstallComponents
protected void uninstallComponents()
Uninstalls the renderer pane.
getBaseline
public int getBaseline(JComponent c, int width, int height)
Returns the baseline.
- Overrides:
-
getBaselinein classComponentUI - Parameters:
-
c-JComponentbaseline is being requested for -
width- the width to get the baseline for -
height- the height to get the baseline for - Returns:
- baseline or a value < 0 indicating there is no reasonable baseline
- Throws:
-
NullPointerException- ifcisnull -
IllegalArgumentException- if width or height is < 0 - Since:
- 1.6
- See Also:
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
Returns an enum indicating how the baseline of the component changes as the size changes.
- Overrides:
-
getBaselineResizeBehaviorin classComponentUI - Parameters:
-
c-JComponentto return baseline resize behavior for - Returns:
- an enum indicating how the baseline changes as the component size changes
- Throws:
-
NullPointerException- ifcisnull - Since:
- 1.6
- See Also:
isDropLine
protected boolean isDropLine(JTree.DropLocation loc)
Tells if a
DropLocation should be indicated by a line between nodes. This is meant for javax.swing.DropMode.INSERT and javax.swing.DropMode.ON_OR_INSERT drop modes.- Parameters:
-
loc- aDropLocation - Returns:
-
trueif the drop location should be shown as a line - Since:
- 1.7
paintDropLine
protected void paintDropLine(Graphics g)
Paints the drop line.
- Parameters:
-
g-Graphicsobject to draw on - Since:
- 1.7
getDropLineRect
protected Rectangle getDropLineRect(JTree.DropLocation loc)
Returns a unbounding box for the drop line.
- Parameters:
-
loc- aDropLocation - Returns:
- bounding box for the drop line
- Since:
- 1.7
paintHorizontalPartOfLeg
protected void paintHorizontalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
Paints the horizontal part of the leg. The receiver should NOT modify
clipBounds, or insets. NOTE: parentRow can be -1 if the root is not visible.
- Parameters:
-
g- a graphics context -
clipBounds- a clipped rectangle -
insets- insets -
bounds- a bounding rectangle -
path- a tree path -
row- a row -
isExpanded-trueif the path is expanded -
hasBeenExpanded-trueif the path has been expanded -
isLeaf-trueif the path is leaf
paintVerticalPartOfLeg
protected void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, TreePath path)
Paints the vertical part of the leg. The receiver should NOT modify
clipBounds, insets.- Parameters:
-
g- a graphics context -
clipBounds- a clipped rectangle -
insets- insets -
path- a tree path
paintExpandControl
protected void paintExpandControl(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
Paints the expand (toggle) part of a row. The receiver should NOT modify
clipBounds, or insets.- Parameters:
-
g- a graphics context -
clipBounds- a clipped rectangle -
insets- insets -
bounds- a bounding rectangle -
path- a tree path -
row- a row -
isExpanded-trueif the path is expanded -
hasBeenExpanded-trueif the path has been expanded -
isLeaf-trueif the row is leaf
paintRow
protected void paintRow(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
Paints the renderer part of a row. The receiver should NOT modify
clipBounds, or insets.- Parameters:
-
g- a graphics context -
clipBounds- a clipped rectangle -
insets- insets -
bounds- a bounding rectangle -
path- a tree path -
row- a row -
isExpanded-trueif the path is expanded -
hasBeenExpanded-trueif the path has been expanded -
isLeaf-trueif the path is leaf
shouldPaintExpandControl
protected boolean shouldPaintExpandControl(TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
Returns
true if the expand (toggle) control should be drawn for the specified row.- Parameters:
-
path- a tree path -
row- a row -
isExpanded-trueif the path is expanded -
hasBeenExpanded-trueif the path has been expanded -
isLeaf-trueif the row is leaf - Returns:
-
trueif the expand (toggle) control should be drawn for the specified row
paintVerticalLine
protected void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom)
Paints a vertical line.
- Parameters:
-
g- a graphics context -
c- a component -
x- an X coordinate -
top- an Y1 coordinate -
bottom- an Y2 coordinate
paintHorizontalLine
protected void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right)
Paints a horizontal line.
- Parameters:
-
g- a graphics context -
c- a component -
y- an Y coordinate -
left- an X1 coordinate -
right- an X2 coordinate
getVerticalLegBuffer
protected int getVerticalLegBuffer()
The vertical element of legs between nodes starts at the bottom of the parent node by default. This method makes the leg start below that.
- Returns:
- the vertical leg buffer
getHorizontalLegBuffer
protected int getHorizontalLegBuffer()
The horizontal element of legs between nodes starts at the right of the left-hand side of the child node by default. This method makes the leg end before that.
- Returns:
- the horizontal leg buffer
drawCentered
protected void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y)
Draws the
icon centered at (x,y).- Parameters:
-
c- a component -
graphics- a graphics context -
icon- an icon -
x- an X coordinate -
y- an Y coordinate
drawDashedHorizontalLine
protected void drawDashedHorizontalLine(Graphics g, int y, int x1, int x2)
Draws a horizontal dashed line. It is assumed
x1 <= x2. If x1 is greater than x2, the method draws nothing.- Parameters:
-
g- an instance ofGraphics -
y- an Y coordinate -
x1- an X1 coordinate -
x2- an X2 coordinate
drawDashedVerticalLine
protected void drawDashedVerticalLine(Graphics g, int x, int y1, int y2)
Draws a vertical dashed line. It is assumed
y1 <= y2. If y1 is greater than y2, the method draws nothing.- Parameters:
-
g- an instance ofGraphics -
x- an X coordinate -
y1- an Y1 coordinate -
y2- an Y2 coordinate
getRowX
protected int getRowX(int row, int depth)
Returns the location, along the x-axis, to render a particular row at. The return value does not include any Insets specified on the JTree. This does not check for the validity of the row or depth, it is assumed to be correct and will not throw an Exception if the row or depth doesn't match that of the tree.
- Parameters:
-
row- Row to return x location for -
depth- Depth of the row - Returns:
- amount to indent the given row.
- Since:
- 1.5
updateLayoutCacheExpandedNodes
protected void updateLayoutCacheExpandedNodes()
Makes all the nodes that are expanded in JTree expanded in LayoutCache. This invokes updateExpandedDescendants with the root path.
updateExpandedDescendants
protected void updateExpandedDescendants(TreePath path)
Updates the expanded state of all the descendants of
path by getting the expanded descendants from the tree and forwarding to the tree state.- Parameters:
-
path- a tree path
getLastChildPath
protected TreePath getLastChildPath(TreePath parent)
Returns a path to the last child of
parent.- Parameters:
-
parent- a tree path - Returns:
- a path to the last child of
parent
updateDepthOffset
protected void updateDepthOffset()
Updates how much each depth should be offset by.
updateCellEditor
protected void updateCellEditor()
Updates the cellEditor based on the editability of the JTree that we're contained in. If the tree is editable but doesn't have a cellEditor, a basic one will be used.
updateRenderer
protected void updateRenderer()
Messaged from the tree we're in when the renderer has changed.
configureLayoutCache
protected void configureLayoutCache()
Resets the TreeState instance based on the tree we're providing the look and feel for.
updateSize
protected void updateSize()
Marks the cached size as being invalid, and messages the tree with
treeDidChange.updateCachedPreferredSize
protected void updateCachedPreferredSize()
Updates the
preferredSize instance variable, which is returned from getPreferredSize().For left to right orientations, the size is determined from the current AbstractLayoutCache. For RTL orientations, the preferred size becomes the width minus the minimum x position.
pathWasExpanded
protected void pathWasExpanded(TreePath path)
Messaged from the
VisibleTreeNode after it has been expanded.- Parameters:
-
path- a tree path
pathWasCollapsed
protected void pathWasCollapsed(TreePath path)
Messaged from the
VisibleTreeNode after it has collapsed.- Parameters:
-
path- a tree path
ensureRowsAreVisible
protected void ensureRowsAreVisible(int beginRow, int endRow)
Ensures that the rows identified by
beginRow through endRow are visible.- Parameters:
-
beginRow- the begin row -
endRow- the end row
setPreferredMinSize
public void setPreferredMinSize(Dimension newSize)
Sets the preferred minimum size.
- Parameters:
-
newSize- the new preferred size
getPreferredMinSize
public Dimension getPreferredMinSize()
Returns the minimum preferred size.
- Returns:
- the minimum preferred size
getPreferredSize
public Dimension getPreferredSize(JComponent c)
Returns the preferred size to properly display the tree, this is a cover method for
getPreferredSize(c, true).- Overrides:
-
getPreferredSizein classComponentUI - Parameters:
-
c- a component - Returns:
- the preferred size to represent the tree in the component
- See Also:
getPreferredSize
public Dimension getPreferredSize(JComponent c, boolean checkConsistency)
Returns the preferred size to represent the tree in c. If checkConsistency is
true checkConsistency is messaged first.- Parameters:
-
c- a component -
checkConsistency- iftrueconsistency is checked - Returns:
- the preferred size to represent the tree in the component
getMinimumSize
public Dimension getMinimumSize(JComponent c)
Returns the minimum size for this component. Which will be the min preferred size or 0, 0.
- Overrides:
-
getMinimumSizein classComponentUI - Parameters:
-
c- the component whose minimum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components - Returns:
- a
Dimensionobject ornull - See Also:
getMaximumSize
public Dimension getMaximumSize(JComponent c)
Returns the maximum size for this component, which will be the preferred size if the instance is currently in a JTree, or 0, 0.
- Overrides:
-
getMaximumSizein classComponentUI - Parameters:
-
c- the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components - Returns:
- a
Dimensionobject ornull - See Also:
completeEditing
protected void completeEditing()
Messages to stop the editing session. If the UI the receiver is providing the look and feel for returns true from
getInvokesStopCellEditing, stopCellEditing will invoked on the current editor. Then completeEditing will be messaged with false, true, false to cancel any lingering editing.completeEditing
protected void completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)
Stops the editing session. If
messageStop is true the editor is messaged with stopEditing, if messageCancel is true the editor is messaged with cancelEditing. If messageTree is true the treeModel is messaged with valueForPathChanged.- Parameters:
-
messageStop- message to stop editing -
messageCancel- message to cancel editing -
messageTree- message to tree
startEditing
protected boolean startEditing(TreePath path, MouseEvent event)
Will start editing for node if there is a
cellEditor and shouldSelectCell returns true.This assumes that path is valid and visible.
- Parameters:
-
path- a tree path -
event- a mouse event - Returns:
-
trueif the editing is successful
checkForClickInExpandControl
protected void checkForClickInExpandControl(TreePath path, int mouseX, int mouseY)
If the
mouseX and mouseY are in the expand/collapse region of the row, this will toggle the row.- Parameters:
-
path- a tree path -
mouseX- an X coordinate -
mouseY- an Y coordinate
isLocationInExpandControl
protected boolean isLocationInExpandControl(TreePath path, int mouseX, int mouseY)
Returns
true if mouseX and mouseY fall in the area of row that is used to expand/collapse the node and the node at row does not represent a leaf.- Parameters:
-
path- a tree path -
mouseX- an X coordinate -
mouseY- an Y coordinate - Returns:
-
trueif the mouse cursor fall in the area of row that is used to expand/collapse the node and the node is not a leaf.
handleExpandControlClick
protected void handleExpandControlClick(TreePath path, int mouseX, int mouseY)
Messaged when the user clicks the particular row, this invokes
toggleExpandState.- Parameters:
-
path- a tree path -
mouseX- an X coordinate -
mouseY- an Y coordinate
toggleExpandState
protected void toggleExpandState(TreePath path)
Expands path if it is not expanded, or collapses row if it is expanded. If expanding a path and
JTree scrolls on expand, ensureRowsAreVisible is invoked to scroll as many of the children to visible as possible (tries to scroll to last visible descendant of path).- Parameters:
-
path- a tree path
isToggleSelectionEvent
protected boolean isToggleSelectionEvent(MouseEvent event)
Returning
true signifies a mouse event on the node should toggle the selection of only the row under mouse.- Parameters:
-
event- a mouse event - Returns:
-
trueif a mouse event on the node should toggle the selection
isMultiSelectEvent
protected boolean isMultiSelectEvent(MouseEvent event)
Returning
true signifies a mouse event on the node should select from the anchor point.- Parameters:
-
event- a mouse event - Returns:
-
trueif a mouse event on the node should select from the anchor point
isToggleEvent
protected boolean isToggleEvent(MouseEvent event)
Returning
true indicates the row under the mouse should be toggled based on the event. This is invoked after checkForClickInExpandControl, implying the location is not in the expand (toggle) control.- Parameters:
-
event- a mouse event - Returns:
-
trueif the row under the mouse should be toggled
selectPathForEvent
protected void selectPathForEvent(TreePath path, MouseEvent event)
Messaged to update the selection based on a
MouseEvent over a particular row. If the event is a toggle selection event, the row is either selected, or deselected. If the event identifies a multi selection event, the selection is updated from the anchor point. Otherwise the row is selected, and if the event specified a toggle event the row is expanded/collapsed.- Parameters:
-
path- the selected path -
event- the mouse event
isLeaf
protected boolean isLeaf(int row)
Returns
true if the node at row is a leaf.- Parameters:
-
row- a row - Returns:
-
trueif the node atrowis a leaf
updateLeadSelectionRow
protected void updateLeadSelectionRow()
Updates the lead row of the selection.
- Since:
- 1.7
getLeadSelectionRow
protected int getLeadSelectionRow()
Returns the lead row of the selection.
- Returns:
- selection lead row
- Since:
- 1.7
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.