Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jdesktop.swingx
Class JXTree

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JTree
                      org.jdesktop.swingx.JXTree

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable

    public class JXTree

extends javax.swing.JTree

Enhanced Tree component with support for SwingX rendering, highlighting, rollover and search functionality.

## Rendering and Highlighting

As all SwingX collection views, a JXTree is a HighlighterClient (PENDING JW: formally define and implement, like in AbstractTestHighlighter), that is it provides consistent api to add and remove Highlighters which can visually decorate the rendering component.

     JXTree tree = new JXTree(new FileSystemModel());
     // use system file icons and name to render
     tree.setCellRenderer(new DefaultTreeRenderer(IconValues.FILE_ICON,
          StringValues.FILE_NAME));
     // highlight condition: file modified after a date
     HighlightPredicate predicate = new HighlightPredicate() {
        public boolean isHighlighted(Component renderer,
                         ComponentAdapter adapter) {
           File file = getUserObject(adapter.getValue());
           return file != null ? lastWeek < file.lastModified : false;
        }
     };
     // highlight with foreground color
     tree.addHighlighter(new ColorHighlighter(predicate, null, Color.RED);

Note: for full functionality, a DefaultTreeRenderer must be installed as TreeCellRenderer. This is not done by default, because there are unresolved issues when editing. PENDING JW: still? Check! Note: to support the highlighting this implementation wraps the TreeCellRenderer set by client code with a DelegatingRenderer which applies the Highlighter after delegating the default configuration to the wrappee. As a side-effect, getCellRenderer does return the wrapper instead of the custom renderer. To access the latter, client code must call getWrappedCellRenderer.

## Rollover

As all SwingX collection views, a JXTree supports per-cell rollover. If enabled, the component fires rollover events on enter/exit of a cell which by default is promoted to the renderer if it implements RolloverRenderer, that is simulates live behaviour. The rollover events can be used by client code as well, f.i. to decorate the rollover row using a Highlighter.

     JXTree tree = new JXTree();
     tree.setRolloverEnabled(true);
     tree.setCellRenderer(new DefaultTreeRenderer());
     tree.addHighlighter(new ColorHighlighter(HighlightPredicate.ROLLOVER_ROW,
          null, Color.RED);

## Search

As all SwingX collection views, a JXTree is searchable. A search action is registered in its ActionMap under the key "find". The default behaviour is to ask the SearchFactory to open a search component on this component. The default keybinding is retrieved from the SearchFactory, typically ctrl-f (or cmd-f for Mac). Client code can register custom actions and/or bindings as appropriate.

JXTree provides api to vend a renderer-controlled String representation of cell content. This allows the Searchable and Highlighters to use WYSIWYM (What-You-See-Is-What-You-Match), that is pattern matching against the actual string as seen by the user.

## Miscellaneous

- Improved usability for editing: guarantees that the tree is the focusOwner if editing terminated by user gesture and guards against data corruption if focusLost while editing
- Access methods for selection colors, for consistency with JXTable, JXList
- Convenience methods and actions to expand, collapse all nodes

Author:
  Ramesh Gupta, Jeanette Winzenburg
See Also:
  `DefaultTreeRenderer`, `ComponentProvider`, `Highlighter`, `HighlightPredicate`, `SearchFactory`, `Searchable`, Serialized Form

Nested Class Summary
`class` | `JXTree.CellEditorRemover` This class tracks changes in the keyboard focus state.
`class` | `JXTree.DelegatingRenderer` A decorator for the original TreeCellRenderer.
`protected static class` | `JXTree.TreeAdapter`
`protected class` | `JXTree.XTreeModelHandler` Listens to the model and updates the `expandedState` accordingly when nodes are removed, or changed.

Nested classes/interfaces inherited from class javax.swing.JTree
`javax.swing.JTree.AccessibleJTree, javax.swing.JTree.DropLocation, javax.swing.JTree.DynamicUtilTreeNode, javax.swing.JTree.EmptySelectionModel, javax.swing.JTree.TreeModelHandler, javax.swing.JTree.TreeSelectionRedirector`

Nested classes/interfaces inherited from class javax.swing.JComponent
`javax.swing.JComponent.AccessibleJComponent`

Nested classes/interfaces inherited from class java.awt.Container
`java.awt.Container.AccessibleAWTContainer`

Nested classes/interfaces inherited from class java.awt.Component
`java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

Field Summary
`protected CompoundHighlighter` | `compoundHighlighter` Collection of active Highlighters.
`protected ComponentAdapter` | `dataAdapter`

Fields inherited from class javax.swing.JTree
`ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCount`

Fields inherited from class javax.swing.JComponent
`accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`JXTree()` Constructs a `JXTree` with a sample model.
`JXTree(java.util.Hashtable<?,?> value)` Constructs a `JXTree` created from a Hashtable which does not display with root.
`JXTree(java.lang.Object[] value)` Constructs a `JXTree` with each element of the specified array as the child of a new root node which is not displayed.
`JXTree(javax.swing.tree.TreeModel newModel)` Constructs an instance of `JXTree` which displays the root node -- the tree is created using the specified data model.
`JXTree(javax.swing.tree.TreeNode root)` Constructs a `JXTree` with the specified TreeNode as its root, which displays the root node.
`JXTree(javax.swing.tree.TreeNode root, boolean asksAllowsChildren)` Constructs a `JXTree` with the specified TreeNode as its root, which displays the root node and which decides whether a node is a leaf node in the specified manner.
`JXTree(java.util.Vector<?> value)` Constructs a `JXTree` with each element of the specified Vector as the child of a new root node which is not displayed.

Method Summary
`void` | `addHighlighter(Highlighter highlighter)` Appends a `Highlighter` to the end of the list of used `Highlighter`s.
`protected void` | `analyseFocus()` This is called from cell editor listener if edit terminated.
`void` | `collapseAll()` Collapses all nodes in this tree.
`protected javax.swing.tree.TreeCellRenderer` | `createDefaultCellRenderer()` Creates and returns the default cell renderer to use.
`protected javax.swing.event.ChangeListener` | `createHighlighterChangeListener()` Creates and returns the ChangeListener observing Highlighters.
`protected TreeRolloverController<JXTree>` | `createLinkController()` Creates and returns a RolloverController appropriate for this tree.
`protected RolloverProducer` | `createRolloverProducer()` Creates and returns the RolloverProducer to use with this tree.
`protected javax.swing.event.TreeModelListener` | `createTreeModelListener()`
`protected void` | `doFind()` Starts a search on this Tree's visible nodes.
`void` | `expandAll()` Expands all nodes in this tree.
`javax.swing.tree.TreeCellRenderer` | `getCellRenderer()`
`protected ComponentAdapter` | `getComponentAdapter()`
`protected ComponentAdapter` | `getComponentAdapter(int index)` Convenience to access a configured ComponentAdapter.
`protected CompoundHighlighter` | `getCompoundHighlighter()` Returns the CompoundHighlighter assigned to the table, null if none.
`protected javax.swing.event.ChangeListener` | `getHighlighterChangeListener()` Returns the `ChangeListener` to use with highlighters.
`Highlighter[]` | `getHighlighters()` Returns the `Highlighter`s used by this table.
`protected TreeRolloverController<JXTree>` | `getLinkController()` Returns the RolloverController for this component.
`Searchable` | `getSearchable()` Returns a Searchable for this component, guaranteed to be not null.
`java.awt.Color` | `getSelectionBackground()` Returns the background color for selected cells.
`java.awt.Color` | `getSelectionForeground()` Returns the selection foreground color.
`javax.swing.tree.TreePath[]` | `getSelectionPaths()`
`int[]` | `getSelectionRows()`
`java.lang.String` | `getStringAt(int row)` Returns the string representation of the cell value at the given position.
`java.lang.String` | `getStringAt(javax.swing.tree.TreePath path)` Returns the string representation of the cell value at the given position.
`javax.swing.tree.TreeCellRenderer` | `getWrappedCellRenderer()` Returns the renderer installed by client code or the default if none has been set.
`void` | `invalidateCellSizeCache()` Invalidates cell size caching in the ui delegate.
`boolean` | `isOverwriteRendererIcons()` Returns a boolean indicating whether the per-tree icons should be copied to the renderer on setCellRenderer.
`boolean` | `isRolloverEnabled()` Returns a boolean indicating whether or not rollover support is enabled.
`void` | `removeHighlighter(Highlighter highlighter)` Removes the given Highlighter.
`void` | `removeNotify()` Overridden to release the CellEditorRemover, if any.
`void` | `setCellRenderer(javax.swing.tree.TreeCellRenderer renderer)`
`void` | `setClosedIcon(javax.swing.Icon closedIcon)` Sets the Icon to use for a closed folder node.
`void` | `setCollapsedIcon(javax.swing.Icon collapsedIcon)` Sets the Icon to use for the handle of a collapsed node.
`void` | `setExpandedIcon(javax.swing.Icon expandedIcon)` Sets the Icon to use for the handle of an expanded node.
`void` | `setHighlighters(Highlighter... highlighters)` Sets the `Highlighter`s to the table, replacing any old settings.
`void` | `setLeafIcon(javax.swing.Icon leafIcon)` Sets the Icon to use for a leaf node.
`void` | `setModel(javax.swing.tree.TreeModel newModel)`
`void` | `setOpenIcon(javax.swing.Icon openIcon)` Sets the Icon to use for an open folder node.
`void` | `setOverwriteRendererIcons(boolean overwrite)` Property to control whether per-tree icons should be copied to the renderer on setCellRenderer.
`void` | `setRolloverEnabled(boolean rolloverEnabled)` Sets the property to enable/disable rollover support.
`void` | `setSearchable(Searchable searchable)` Sets the Searchable for this component.
`void` | `setSelectionBackground(java.awt.Color selectionBackground)` Sets the background color for selected cells.
`void` | `setSelectionForeground(java.awt.Color selectionForeground)` Sets the foreground color for selected cells.
`void` | `startEditingAtPath(javax.swing.tree.TreePath path)`
`protected void` | `updateHighlighterUI()` Updates highlighter after `updateUI` changes.
`protected void` | `updateRendererEditorUI()` Quick fix for #1060-swingx: icons lost on toggling LAF
`void` | `updateUI()`

Methods inherited from class javax.swing.JTree
`addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, stopEditing, treeDidChange`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### compoundHighlighter

    protected CompoundHighlighter compoundHighlighter

  Collection of active Highlighters.

### dataAdapter

    protected ComponentAdapter dataAdapter

Constructor Detail

### JXTree

    public JXTree()

  Constructs a `JXTree` with a sample model. The default model used by this tree defines a leaf node as any node without children.

### JXTree

    public JXTree(java.lang.Object[] value)

  Constructs a `JXTree` with each element of the specified array as the child of a new root node which is not displayed. By default, this tree defines a leaf node as any node without children. This version of the constructor simply invokes the super class version with the same arguments.

  Parameters:
    `value` - an array of objects that are children of the root.

### JXTree

    public JXTree(java.util.Vector<?> value)

  Constructs a `JXTree` with each element of the specified Vector as the child of a new root node which is not displayed. By default, this tree defines a leaf node as any node without children. This version of the constructor simply invokes the super class version with the same arguments.

  Parameters:
    `value` - an Vector of objects that are children of the root.

### JXTree

    public JXTree(java.util.Hashtable<?,?> value)

  Constructs a `JXTree` created from a Hashtable which does not display with root. Each value-half of the key/value pairs in the HashTable becomes a child of the new root node. By default, the tree defines a leaf node as any node without children. This version of the constructor simply invokes the super class version with the same arguments.

  Parameters:
    `value` - a Hashtable containing objects that are children of the root.

### JXTree

    public JXTree(javax.swing.tree.TreeNode root)

  Constructs a `JXTree` with the specified TreeNode as its root, which displays the root node. By default, the tree defines a leaf node as any node without children. This version of the constructor simply invokes the super class version with the same arguments.

  Parameters:
    `root` - root node of this tree

### JXTree

    public JXTree(javax.swing.tree.TreeNode root,
                  boolean asksAllowsChildren)

  Constructs a `JXTree` with the specified TreeNode as its root, which displays the root node and which decides whether a node is a leaf node in the specified manner. This version of the constructor simply invokes the super class version with the same arguments.

  Parameters:
    `root` - root node of this tree
    `asksAllowsChildren` - if true, only nodes that do not allow children are leaf nodes; otherwise, any node without children is a leaf node;
  See Also:
    `DefaultTreeModel.asksAllowsChildren`

### JXTree

    public JXTree(javax.swing.tree.TreeModel newModel)

  Constructs an instance of `JXTree` which displays the root node -- the tree is created using the specified data model. This version of the constructor simply invokes the super class version with the same arguments.

  Parameters:
    `newModel` - the `TreeModel` to use as the data model

Method Detail

### createTreeModelListener

    protected javax.swing.event.TreeModelListener createTreeModelListener()

  Overrides:
    `createTreeModelListener` in class `javax.swing.JTree`

### doFind

    protected void doFind()

  Starts a search on this Tree's visible nodes. This implementation asks the SearchFactory to open a find widget on itself.

### getSearchable

    public Searchable getSearchable()

  Returns a Searchable for this component, guaranteed to be not null. This implementation lazily creates a TreeSearchable if necessary.

  Returns:
    a not-null Searchable for this component.
  See Also:
    `setSearchable(Searchable)`, `TreeSearchable`

### setSearchable

    public void setSearchable(Searchable searchable)

  Sets the Searchable for this component. If null, a default Searchable will be created and used.

  Parameters:
    `searchable` - the Searchable to use for this component, may be null to indicate using the default.
  See Also:
    `getSearchable()`

### getStringAt

    public java.lang.String getStringAt(int row)

  Returns the string representation of the cell value at the given position.

  Parameters:
    `row` - the row index of the cell in view coordinates
  Returns:
    the string representation of the cell value as it will appear in the table.

### getStringAt

    public java.lang.String getStringAt(javax.swing.tree.TreePath path)

  Returns the string representation of the cell value at the given position.

  Parameters:
    `path` - the TreePath representing the node.
  Returns:
    the string representation of the cell value as it will appear in the table, or null if the path is not visible.

### collapseAll

    public void collapseAll()

  Collapses all nodes in this tree.

### expandAll

    public void expandAll()

  Expands all nodes in this tree.

### getSelectionRows

    public int[] getSelectionRows()

  Overridden to always return a not-null array (following SwingX convention).

  Overrides:
    `getSelectionRows` in class `javax.swing.JTree`

### getSelectionPaths

    public javax.swing.tree.TreePath[] getSelectionPaths()

  Overridden to always return a not-null array (following SwingX convention).

  Overrides:
    `getSelectionPaths` in class `javax.swing.JTree`

### getSelectionBackground

    public java.awt.Color getSelectionBackground()

  Returns the background color for selected cells.

  Returns:
    the `Color` used for the background of selected list items
  See Also:
    `setSelectionBackground(java.awt.Color)`, `setSelectionForeground(java.awt.Color)`

### getSelectionForeground

    public java.awt.Color getSelectionForeground()

  Returns the selection foreground color.

  Returns:
    the `Color` object for the foreground property
  See Also:
    `setSelectionForeground(java.awt.Color)`, `setSelectionBackground(java.awt.Color)`

### setSelectionForeground

    public void setSelectionForeground(java.awt.Color selectionForeground)

  Sets the foreground color for selected cells. Cell renderers can use this color to render text and graphics for selected cells.

  The default value of this property is defined by the look and feel implementation.

  This is a JavaBeans bound property.

  Parameters:
    `selectionForeground` - the `Color` to use in the foreground for selected list items
  See Also:
    `getSelectionForeground()`, `setSelectionBackground(java.awt.Color)`, `JComponent.setForeground(java.awt.Color)`, `JComponent.setBackground(java.awt.Color)`, `JComponent.setFont(java.awt.Font)`

### setSelectionBackground

    public void setSelectionBackground(java.awt.Color selectionBackground)

  Sets the background color for selected cells. Cell renderers can use this color to the fill selected cells.

  The default value of this property is defined by the look and feel implementation.

  This is a JavaBeans bound property.

  Parameters:
    `selectionBackground` - the `Color` to use for the background of selected cells
  See Also:
    `getSelectionBackground()`, `setSelectionForeground(java.awt.Color)`, `JComponent.setForeground(java.awt.Color)`, `JComponent.setBackground(java.awt.Color)`, `JComponent.setFont(java.awt.Font)`

### updateUI

    public void updateUI()

  Overridden to update selection background/foreground. Mimicking behaviour of ui-delegates for JTable, JList.

  Overrides:
    `updateUI` in class `javax.swing.JTree`

### updateRendererEditorUI

    protected void updateRendererEditorUI()

  Quick fix for #1060-swingx: icons lost on toggling LAF

### updateHighlighterUI

    protected void updateHighlighterUI()

  Updates highlighter after `updateUI` changes.

  See Also:
    `UIDependent`

### setRolloverEnabled

    public void setRolloverEnabled(boolean rolloverEnabled)

  Sets the property to enable/disable rollover support. If enabled, the list fires property changes on per-cell mouse rollover state, i.e. when the mouse enters/leaves a list cell.

  This can be enabled to show "live" rollover behaviour, f.i. the cursor over a cell rendered by a JXHyperlink.

  The default value is false.

  Parameters:
    `rolloverEnabled` - a boolean indicating whether or not the rollover functionality should be enabled.
  See Also:
    `isRolloverEnabled()`, `getLinkController()`, `createRolloverProducer()`, `RolloverRenderer`

### isRolloverEnabled

    public boolean isRolloverEnabled()

  Returns a boolean indicating whether or not rollover support is enabled.

  Returns:
    a boolean indicating whether or not rollover support is enabled.
  See Also:
    `setRolloverEnabled(boolean)`

### getLinkController

    protected TreeRolloverController<JXTree> getLinkController()

  Returns the RolloverController for this component. Lazyly creates the controller if necessary, that is the return value is guaranteed to be not null.

  PENDING JW: rename to getRolloverController

  Returns:
    the RolloverController for this tree, guaranteed to be not null.
  See Also:
    `setRolloverEnabled(boolean)`, `createLinkController()`, `RolloverController`

### createLinkController

    protected TreeRolloverController<JXTree> createLinkController()

  Creates and returns a RolloverController appropriate for this tree.

  Returns:
    a RolloverController appropriate for this tree.
  See Also:
    `getLinkController()`, `RolloverController`

### createRolloverProducer

    protected RolloverProducer createRolloverProducer()

  Creates and returns the RolloverProducer to use with this tree.

  Returns:
    `RolloverProducer` to use with this tree
  See Also:
    `setRolloverEnabled(boolean)`

### setHighlighters

    public void setHighlighters(Highlighter... highlighters)

  Sets the `Highlighter`s to the table, replacing any old settings. None of the given Highlighters must be null.

  This is a bound property.

  Note: as of version #1.257 the null constraint is enforced strictly. To remove all highlighters use this method without param.

  Parameters:
    `highlighters` - zero or more not null highlighters to use for renderer decoration.
  Throws:
    `java.lang.NullPointerException` - if array is null or array contains null values.
  See Also:
    `getHighlighters()`, `addHighlighter(Highlighter)`, `removeHighlighter(Highlighter)`

### getHighlighters

    public Highlighter[] getHighlighters()

  Returns the `Highlighter`s used by this table. Maybe empty, but guarantees to be never null.

  Returns:
    the Highlighters used by this table, guaranteed to never null.
  See Also:
    `setHighlighters(Highlighter[])`

### addHighlighter

    public void addHighlighter(Highlighter highlighter)

  Appends a `Highlighter` to the end of the list of used `Highlighter`s. The argument must not be null.

  Parameters:
    `highlighter` - the `Highlighter` to add, must not be null.
  Throws:
    `java.lang.NullPointerException` - if `Highlighter` is null.
  See Also:
    `removeHighlighter(Highlighter)`, `setHighlighters(Highlighter[])`

### removeHighlighter

    public void removeHighlighter(Highlighter highlighter)

  Removes the given Highlighter.

  Does nothing if the Highlighter is not contained.

  Parameters:
    `highlighter` - the Highlighter to remove.
  See Also:
    `addHighlighter(Highlighter)`, `setHighlighters(Highlighter...)`

### getCompoundHighlighter

    protected CompoundHighlighter getCompoundHighlighter()

  Returns the CompoundHighlighter assigned to the table, null if none. PENDING: open up for subclasses again?.

  Returns:
    the CompoundHighlighter assigned to the table.

### getHighlighterChangeListener

    protected javax.swing.event.ChangeListener getHighlighterChangeListener()

  Returns the `ChangeListener` to use with highlighters. Lazily creates the listener.

  Returns:
    the ChangeListener for observing changes of highlighters, guaranteed to be `not-null`

### createHighlighterChangeListener

    protected javax.swing.event.ChangeListener createHighlighterChangeListener()

  Creates and returns the ChangeListener observing Highlighters.

  Here: repaints the table on receiving a stateChanged.

  Returns:
    the ChangeListener defining the reaction to changes of highlighters.

### setExpandedIcon

    public void setExpandedIcon(javax.swing.Icon expandedIcon)

  Sets the Icon to use for the handle of an expanded node.

  Note: this will only succeed if the current ui delegate is a BasicTreeUI otherwise it will do nothing.

  PENDING JW: incomplete api (no getter) and not a bound property.

  Parameters:
    `expandedIcon` - the Icon to use for the handle of an expanded node.

### setCollapsedIcon

    public void setCollapsedIcon(javax.swing.Icon collapsedIcon)

  Sets the Icon to use for the handle of a collapsed node. Note: this will only succeed if the current ui delegate is a BasicTreeUI otherwise it will do nothing. PENDING JW: incomplete api (no getter) and not a bound property.

  Parameters:
    `collapsedIcon` - the Icon to use for the handle of a collapsed node.

### setLeafIcon

    public void setLeafIcon(javax.swing.Icon leafIcon)

  Sets the Icon to use for a leaf node.

  Note: this will only succeed if current renderer is a DefaultTreeCellRenderer.

  PENDING JW: this (all setXXIcon) is old api pulled up from the JXTreeTable. Need to review if we really want it - problematic if sharing the same renderer instance across different trees. PENDING JW: incomplete api (no getter) and not a bound property.

  Parameters:
    `leafIcon` - the Icon to use for a leaf node.

### setOpenIcon

    public void setOpenIcon(javax.swing.Icon openIcon)

  Sets the Icon to use for an open folder node. Note: this will only succeed if current renderer is a DefaultTreeCellRenderer. PENDING JW: incomplete api (no getter) and not a bound property.

  Parameters:
    `openIcon` - the Icon to use for an open folder node.

### setClosedIcon

    public void setClosedIcon(javax.swing.Icon closedIcon)

  Sets the Icon to use for a closed folder node. Note: this will only succeed if current renderer is a DefaultTreeCellRenderer. PENDING JW: incomplete api (no getter) and not a bound property.

  Parameters:
    `closedIcon` - the Icon to use for a closed folder node.

### setOverwriteRendererIcons

    public void setOverwriteRendererIcons(boolean overwrite)

  Property to control whether per-tree icons should be copied to the renderer on setCellRenderer.

  The default value is false. PENDING: should update the current renderer's icons when setting to true?

  Parameters:
    `overwrite` - a boolean to indicate if the per-tree Icons should be copied to the new renderer on setCellRenderer.
  See Also:
    `isOverwriteRendererIcons()`, `setLeafIcon(Icon)`, `setOpenIcon(Icon)`, `setClosedIcon(Icon)`

### isOverwriteRendererIcons

    public boolean isOverwriteRendererIcons()

  Returns a boolean indicating whether the per-tree icons should be copied to the renderer on setCellRenderer.

  Returns:
    true if a TreeCellRenderer's icons will be overwritten with the tree's Icons, false if the renderer's icons will be unchanged.
  See Also:
    `setOverwriteRendererIcons(boolean)`, `setLeafIcon(Icon)`, `setOpenIcon(Icon)`, `setClosedIcon(Icon)`

### createDefaultCellRenderer

    protected javax.swing.tree.TreeCellRenderer createDefaultCellRenderer()

  Creates and returns the default cell renderer to use. Subclasses may override to use a different type.

  This implementation returns a renderer of type `DefaultTreeCellRenderer`. Note: Will be changed to return a renderer of type `DefaultTreeRenderer`, once WrappingProvider is reasonably stable.

  Returns:
    the default cell renderer to use with this tree.

### getCellRenderer

    public javax.swing.tree.TreeCellRenderer getCellRenderer()

  Overridden to return the delegating renderer which is wrapped around the original to support highlighting. The returned renderer is of type DelegatingRenderer and guaranteed to not-null

  Overrides:
    `getCellRenderer` in class `javax.swing.JTree`
  See Also:
    `setCellRenderer(TreeCellRenderer)`, `JXTree.DelegatingRenderer`

### getWrappedCellRenderer

    public javax.swing.tree.TreeCellRenderer getWrappedCellRenderer()

  Returns the renderer installed by client code or the default if none has been set.

  Returns:
    the wrapped renderer.
  See Also:
    `setCellRenderer(TreeCellRenderer)`

### setCellRenderer

    public void setCellRenderer(javax.swing.tree.TreeCellRenderer renderer)

  Overridden to wrap the given renderer in a DelegatingRenderer to support highlighting.

  Note: the wrapping implies that the renderer returned from the getCellRenderer is not the renderer as given here, but the wrapper. To access the original, use `getWrappedCellRenderer`.

  Overrides:
    `setCellRenderer` in class `javax.swing.JTree`
  See Also:
    `getWrappedCellRenderer()`, `getCellRenderer()`

### invalidateCellSizeCache

    public void invalidateCellSizeCache()

  Invalidates cell size caching in the ui delegate. May do nothing if there's no safe (i.e. without reflection) way to message the delegate.

  This implementation calls BasicTreeUI setLeftChildIndent with the old indent if available. Beware: clearing the cache is an undocumented implementation side-effect of the method. Revisit if we ever should have a custom ui delegate.

### startEditingAtPath

    public void startEditingAtPath(javax.swing.tree.TreePath path)

  Overridden to fix focus issues with editors. This method installs and updates the internal CellEditorRemover which terminates ongoing edits if appropriate. Additionally, it registers a CellEditorListener with the cell editor to grab the focus back to tree, if appropriate.

  Overrides:
    `startEditingAtPath` in class `javax.swing.JTree`
  See Also:
    `updateEditorRemover()`

### analyseFocus

    protected void analyseFocus()

  This is called from cell editor listener if edit terminated. Trying to analyse if we should grab the focus back to the tree after. Brittle ... we assume we are the first to get the event, so we can analyse the hierarchy before the editing component is removed.

### removeNotify

    public void removeNotify()

  Overridden to release the CellEditorRemover, if any.

  Overrides:
    `removeNotify` in class `javax.swing.JComponent`

### setModel

    public void setModel(javax.swing.tree.TreeModel newModel)

  Overridden to initialize the String conversion method of the model, if any.

  PENDING JW: remove - that is an outdated approach?

  Overrides:
    `setModel` in class `javax.swing.JTree`

### getComponentAdapter

    protected ComponentAdapter getComponentAdapter()

  Returns:
    the unconfigured ComponentAdapter.

### getComponentAdapter

    protected ComponentAdapter getComponentAdapter(int index)

  Convenience to access a configured ComponentAdapter. Note: the column index of the configured adapter is always 0.

  Parameters:
    `index` - the row index in view coordinates, must be valid.
  Returns:
    the configured ComponentAdapter.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010. All Rights Reserved.