javax.swing.plaf.basic

Class BasicTreeUI

Known Direct Subclasses:
MetalTreeUI

public class BasicTreeUI
extends TreeUI

A delegate providing the user interface for JTree according to the Basic look and feel.
See Also:
JTree

Nested Class Summary

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/grained.
class
BasicTreeUI.KeyHandler
This is used to get multiple key down events to appropriately genereate events.
class
BasicTreeUI.MouseHandler
MouseListener 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
The action to cancel editing on this tree.
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

protected Hashtable
Boolean>drawingCache
Used for minimizing the drawing of vertical lines.
protected TreeCellEditor
cellEditor
Editor for the tree.
protected Icon
collapsedIcon
Collapse Icon for the tree.
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 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
Expanded Icon for the tree.
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 size needed to completely display all the nodes.
protected Dimension
preferredSize
Size needed to completely display all the nodes.
protected CellRendererPane
rendererPane
Used to paint the TreeCellRenderer.
protected int
rightChildIndent
Distance between leftChildIndent and where cell contents will be drawn.
protected boolean
stopEditingInCompleteEditing
Set to false when editing and shouldSelectCall() returns true meaning the node should be selected before editing, used in completeEditing.
protected int
totalChildIndent
Total fistance that will be indented.
protected JTree
tree
Component that we're going to be drawing onto.
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

BasicTreeUI()
Creates a new BasicTreeUI object.

Method Summary

void
cancelEditing(JTree tree)
Cancels the current editing session.
protected void
checkForClickInExpandControl(TreePath path, int mouseX, int mouseY)
If the mouseX and mouseY are in the expand or collapse region of the row, this will toggle the row.
protected void
completeEditing()
Messages to stop the editing session.
protected void
completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)
Stops the editing session.
protected void
completeUIInstall()
Invoked from installUI after all the defaults/listeners have been installed.
protected void
completeUIUninstall()
Invoked from uninstallUI after all the defaults/listeners have been uninstalled.
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 the listener that is responsible for updating the display when focus is lost/grained.
protected KeyListener
createKeyListener()
Creates the listener reponsible 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 reponsible for the 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 a 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(JComponent c)
Returns an instance of the UI delegate for the specified component.
protected void
drawCentered(Component c, Graphics g, Icon icon, int x, int y)
Draws an icon at around a specific position
protected void
drawDashedHorizontalLine(Graphics g, int y, int x1, int x2)
Draws a dashed horizontal line.
protected void
drawDashedVerticalLine(Graphics g, int x, int y1, int y2)
Draws a dashed vertical line.
protected void
ensureRowsAreVisible(int beginRow, int endRow)
Ensures that the rows identified by beginRow through endRow are visible.
protected TreeCellEditor
getCellEditor()
Returns the TreeCellEditor for this tree.
protected TreeCellRenderer
getCellRenderer()
Return currentCellRenderer, which will either be the trees renderer, or defaultCellRenderer, which ever was not null.
TreePath
getClosestPathForLocation(JTree tree, int x, int y)
Returns the path to the node that is closest to x,y.
Icon
getCollapsedIcon()
Returns the current collapsed icon.
TreePath
getEditingPath(JTree tree)
Returns the path to the element that is being editted.
Icon
getExpandedIcon()
Returns the current 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(TreePath parent)
Returns a path to the last child of parent
int
getLeftChildIndent()
Returns the indent value for the left child.
Dimension
getMaximumSize(JComponent c)
Returns the maximum size for the component, which will be the preferred size if the instance is currently in JTree or (0,0).
Dimension
getMinimumSize(JComponent c)
Returns the minimum size for this component.
protected TreeModel
getModel()
Returns the tree's model
Rectangle
getPathBounds(JTree tree, TreePath path)
Returns the Rectangle enclosing the label portion that the last item in path will be drawn to.
TreePath
getPathForRow(JTree tree, int row)
Returns the path for passed in row.
Dimension
getPreferredMinSize()
Gets the preferred minimum size.
Dimension
getPreferredSize(JComponent c)
Returns the preferred size to properly display the tree, this is a cover method for getPreferredSize(c, false).
Dimension
getPreferredSize(JComponent c, boolean checkConsistancy)
Returns the preferred size to represent the tree in c.
int
getRightChildIndent()
Returns the indent value for the right child.
int
getRowCount(JTree tree)
Returns the number of rows that are being displayed.
int
getRowForPath(JTree tree, TreePath path)
Returns the row that the last item identified in path is visible at.
protected int
getRowHeight()
Returns the current row height.
protected int
getRowX(int row, int depth)
Returns the amount to indent the given row
protected TreeSelectionModel
getSelectionModel()
Returns the current selection model.
protected boolean
getShowsRootHandles()
Returns true if the node 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(TreePath path, int mouseX, int mouseY)
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()
Install all defaults for the tree.
protected void
installKeyboardActions()
Install all keyboard actions for this
protected void
installListeners()
Install all listeners for this
void
installUI(JComponent c)
Install the UI for the component
protected boolean
isEditable()
Returns true if the receiver allows editing.
boolean
isEditing(JTree tree)
Returns true if the tree is being edited.
protected boolean
isLargeModel()
Returns true if largeModel is set
protected boolean
isLeaf(int row)
Returns true if the node at row is a leaf.
protected boolean
isLocationInExpandControl(TreePath path, int mouseX, int mouseY)
Returns true if the mouseX and mouseY fall in the area of row that is used to expand/collpse the node and the node at row does not represent a leaf.
protected boolean
isMultiSelectEvent(MouseEvent event)
Returning true signifies a mouse event on the node should select from the anchor point.
protected boolean
isRootVisible()
Returns true if the root is visible.
protected boolean
isToggleEvent(MouseEvent event)
Returning true indicates the row under the mouse should be toggled based on the event.
protected boolean
isToggleSelectionEvent(MouseEvent event)
Returning true signifies a mouse event on the node should toggle the selection of only the row under the mouse.
void
paint(Graphics g, JComponent c)
Paints the specified component appropriate for the look and feel.
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.
protected void
paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right)
Draws a horizontal line using the given graphic context
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.
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.
protected void
paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom)
Draws a vertical line using the given graphic context
protected void
paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, TreePath path)
Paints the vertical part of the leg.
protected void
pathWasCollapsed(TreePath path)
Messaged from the VisibleTreeNode after it has collapsed
protected void
pathWasExpanded(TreePath path)
Messaged from the VisibleTreeNode after it has been expanded.
protected void
prepareForUIInstall()
Invoked after the tree instance variable has been set, but before any default/listeners have been installed.
protected void
prepareForUIUninstall()
Prepares for the UI to uninstall.
protected void
selectPathForEvent(TreePath path, MouseEvent event)
Messaged to update the selection based on a MouseEvent over a particular row.
protected void
setCellEditor(TreeCellEditor editor)
Sets the cell editor.
protected void
setCellRenderer(TreeCellRenderer tcr)
Sets the TreeCellRenderer to tcr.
void
setCollapsedIcon(Icon newG)
Sets the collapsed icon.
protected void
setEditable(boolean newValue)
Configures the receiver to allow, or not allow, editing.
void
setExpandedIcon(Icon newG)
Sets the expanded icon.
protected void
setHashColor(Color color)
Sets the Hash color.
protected void
setLargeModel(boolean largeModel)
Updates the componentListener, if necessary.
void
setLeftChildIndent(int newAmount)
Sets the left child's indent value.
protected void
setModel(TreeModel model)
Sets the tree's model.
void
setPreferredMinSize(Dimension newSize)
Sets the preferred minimum size.
void
setRightChildIndent(int newAmount)
Sets the right child's indent value.
protected void
setRootVisible(boolean newValue)
Sets the root to being visible.
protected void
setRowHeight(int rowHeight)
Sets the row height.
protected void
setSelectionModel(TreeSelectionModel newLSM)
Resets the selection model.
protected void
setShowsRootHandles(boolean newValue)
Determines whether the node handles are to be displayed.
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.
protected boolean
startEditing(TreePath path, MouseEvent event)
Will start editing for node if there is a cellEditor and shouldSelectCall returns true.
void
startEditingAtPath(JTree tree, TreePath path)
Selects the last item in path and tries to edit it.
boolean
stopEditing(JTree tree)
Stops the current editing session.
protected void
toggleExpandState(TreePath path)
Expands path if it is not expanded, or collapses row if it is expanded.
protected void
uninstallComponents()
Uninstall the rendererPane.
protected void
uninstallDefaults()
Uninstall the defaults for the tree
protected void
uninstallKeyboardActions()
Uninstall all keyboard actions.
protected void
uninstallListeners()
Uninstall all registered listeners
void
uninstallUI(JComponent c)
Uninstall the UI for the component
protected void
updateCachedPreferredSize()
Updates the preferredSize instance variable, which is returned from getPreferredSize().
protected void
updateCellEditor()
Updates the cellEditor based on editability of the JTree that we're contained in.
protected void
updateDepthOffset()
Updates how much each depth should be offset by.
protected void
updateExpandedDescendants(TreePath path)
Updates the expanded state of all the descendants of the path by getting the expanded descendants from the tree and forwarding to the tree state.
protected void
updateLayoutCacheExpandedNodes()
Make all the nodes that are expanded in JTree expanded in LayoutCache.
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 inherited from class javax.swing.plaf.TreeUI

cancelEditing, getClosestPathForLocation, getEditingPath, getPathBounds, getPathForRow, getRowCount, getRowForPath, isEditing, startEditingAtPath, stopEditing

Methods inherited from class javax.swing.plaf.ComponentUI

contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, installUI, paint, uninstallUI, update

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

Boolean>drawingCache

protected HashtableBoolean>drawingCache
Used for minimizing the drawing of vertical lines.

cellEditor

protected TreeCellEditor cellEditor
Editor for the tree.

collapsedIcon

protected Icon collapsedIcon
Collapse Icon for the tree.

createdCellEditor

protected boolean createdCellEditor
Set to true if editor that is currently in the tree was created by this instance.

createdRenderer

protected boolean createdRenderer
Set to true if the renderer that is currently in the tree was created by this instance.

currentCellRenderer

protected TreeCellRenderer currentCellRenderer
Renderer that is being used to do the actual cell drawing.

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 null.

editorHasDifferentSize

protected boolean editorHasDifferentSize
Set to true if the editor has a different size than the renderer.

expandedIcon

protected Icon expandedIcon
Expanded Icon for the tree.

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.

lastSelectedRow

protected int lastSelectedRow
Index of the row that was last selected.

leftChildIndent

protected int leftChildIndent
Distance between left margin and where vertical dashes will be drawn.

nodeDimensions

protected AbstractLayoutCache.NodeDimensions nodeDimensions
Responsible for telling the TreeState the size needed for a node.

preferredMinSize

protected Dimension preferredMinSize
Minimum size needed to completely display all the nodes.

preferredSize

protected Dimension preferredSize
Size needed to completely display all the nodes.

rendererPane

protected CellRendererPane rendererPane
Used to paint the TreeCellRenderer.

rightChildIndent

protected int rightChildIndent
Distance between leftChildIndent and where cell contents will be drawn.

stopEditingInCompleteEditing

protected boolean stopEditingInCompleteEditing
Set to false when editing and shouldSelectCall() returns true meaning the node should be selected before editing, used in completeEditing. GNU Classpath editing is implemented differently, so this value is not actually read anywhere. However it is always set correctly to maintain interoperability with the derived classes that read this field.

totalChildIndent

protected int totalChildIndent
Total fistance that will be indented. The sum of leftChildIndent and rightChildIndent .

tree

protected JTree tree
Component that we're going to be drawing onto.

treeModel

protected TreeModel treeModel
Used to determine what to display.

treeSelectionModel

protected TreeSelectionModel treeSelectionModel
Model maintaining the selection.

treeState

protected AbstractLayoutCache treeState
Object responsible for handling sizing and expanded issues.

validCachedPreferredSize

protected boolean validCachedPreferredSize
Is the preferredSize valid?

Constructor Details

BasicTreeUI

public BasicTreeUI()
Creates a new BasicTreeUI object.

Method Details

cancelEditing

public void cancelEditing(JTree tree)
Cancels the current editing session.
Overrides:
cancelEditing in interface TreeUI
Parameters:
tree - is the tree to cancel the editing session on.

checkForClickInExpandControl

protected void checkForClickInExpandControl(TreePath path,
                                            int mouseX,
                                            int mouseY)
If the mouseX and mouseY are in the expand or collapse region of the row, this will toggle the row.
Parameters:
path - the path we are concerned with
mouseX - is the cursor's x position
mouseY - is the cursor's y position

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 be 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 treeModel

completeUIInstall

protected void completeUIInstall()
Invoked from installUI after all the defaults/listeners have been installed.

completeUIUninstall

protected void completeUIUninstall()
Invoked from uninstallUI after all the defaults/listeners have been uninstalled.

configureLayoutCache

protected void configureLayoutCache()
Resets the treeState instance based on the tree we're providing the look and feel for. The node dimensions handler is required and must be created in advance.

createCellEditorListener

protected CellEditorListener createCellEditorListener()
Creates a listener to handle events from the current editor
Returns:
the CellEditorListener that handles events from the current editor

createCellRendererPane

protected CellRendererPane createCellRendererPane()
Returns the renderer pane that renderer components are placed in.
Returns:
the rendererpane that render components are placed in.

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:
a new ComponentHandler.

createDefaultCellEditor

protected TreeCellEditor createDefaultCellEditor()
Creates a default cell editor.
Returns:
the default cell editor.

createDefaultCellRenderer

protected TreeCellRenderer createDefaultCellRenderer()
Returns the default cell renderer that is used to do the stamping of each node.
Returns:
the default cell renderer that is used to do the stamping of each node.

createFocusListener

protected FocusListener createFocusListener()
Creates the listener that is responsible for updating the display when focus is lost/grained.
Returns:
the FocusListener responsible for updating.

createKeyListener

protected KeyListener createKeyListener()
Creates the listener reponsible for getting key events from the tree.
Returns:
the KeyListener responsible for getting key events.

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.

createMouseListener

protected MouseListener createMouseListener()
Creates the listener responsible for updating the selection based on mouse events.
Returns:
the MouseListener responsible for updating.

createNodeDimensions

protected AbstractLayoutCache.NodeDimensions createNodeDimensions()
Creates an instance of NodeDimensions that is able to determine the size of a given node in the tree. The node dimensions must be created before configuring the layout cache.
Returns:
the NodeDimensions of a given node in the tree

createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
Creates a listener that is reponsible for the updates the UI based on how the tree changes.
Returns:
the PropertyChangeListener that is reposnsible for the updates

createSelectionModelPropertyChangeListener

protected PropertyChangeListener createSelectionModelPropertyChangeListener()
Creates the listener responsible for getting property change events from the selection model.

createTreeExpansionListener

protected TreeExpansionListener createTreeExpansionListener()
Creates and returns the object responsible for updating the treestate when a nodes expanded state changes.
Returns:
the TreeExpansionListener responsible for updating the treestate

createTreeModelListener

protected TreeModelListener createTreeModelListener()
Returns a listener that can update the tree when the model changes.
Returns:
a listener that can update the tree when the model changes.

createTreeSelectionListener

protected TreeSelectionListener createTreeSelectionListener()
Creates the listener that updates the display based on selection change methods.
Returns:
the TreeSelectionListener responsible for updating.

createUI

public static ComponentUI createUI(JComponent c)
Returns an instance of the UI delegate for the specified component.
Overrides:
createUI in interface ComponentUI
Parameters:
c - the JComponent for which we need a UI delegate for.
Returns:
the ComponentUI for c.

drawCentered

protected void drawCentered(Component c,
                            Graphics g,
                            Icon icon,
                            int x,
                            int y)
Draws an icon at around a specific position
Parameters:
c - is the component the new line will belong to
g - is the graphic context
icon - is the icon which will be drawn
x - is the center position in x-direction
y - is the center position in y-direction

drawDashedHorizontalLine

protected void drawDashedHorizontalLine(Graphics g,
                                        int y,
                                        int x1,
                                        int x2)
Draws a dashed horizontal line.
Parameters:
g - - the graphics configuration.
y - - the y location to start drawing at
x1 - - the x location to start drawing at
x2 - - the x location to finish drawing at

drawDashedVerticalLine

protected void drawDashedVerticalLine(Graphics g,
                                      int x,
                                      int y1,
                                      int y2)
Draws a dashed vertical line.
Parameters:
g - - the graphics configuration.
x - - the x location to start drawing at
y1 - - the y location to start drawing at
y2 - - the y location to finish drawing at

ensureRowsAreVisible

protected void ensureRowsAreVisible(int beginRow,
                                    int endRow)
Ensures that the rows identified by beginRow through endRow are visible.
Parameters:
beginRow - is the first row
endRow - is the last row

getCellEditor

protected TreeCellEditor getCellEditor()
Returns the TreeCellEditor for this tree.
Returns:
the cellEditor for this tree.

getCellRenderer

protected TreeCellRenderer getCellRenderer()
Return currentCellRenderer, which will either be the trees renderer, or defaultCellRenderer, which ever was not null.
Returns:
the current Cell Renderer

getClosestPathForLocation

public