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 JXTreeTable

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JTable
                      org.jdesktop.swingx.JXTable
                          org.jdesktop.swingx.JXTreeTable

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.CellEditorListener, javax.swing.event.ListSelectionListener, javax.swing.event.RowSorterListener, javax.swing.event.TableColumnModelListener, javax.swing.event.TableModelListener, javax.swing.Scrollable, TableColumnModelExtListener

    public class JXTreeTable

extends JXTable

`JXTreeTable` is a specialized `table` consisting of a single column in which to display hierarchical data, and any number of other columns in which to display regular data. The interface for the data model used by a `JXTreeTable` is `TreeTableModel`. It extends the `TreeModel` interface to allow access to cell data by column indices within each node of the tree hierarchy.

The most straightforward way create and use a `JXTreeTable`, is to first create a suitable data model for it, and pass that to a `JXTreeTable` constructor, as shown below:

      TreeTableModel  treeTableModel = new FileSystemModel(); // any TreeTableModel
      JXTreeTable     treeTable = new JXTreeTable(treeTableModel);
      JScrollPane     scrollpane = new JScrollPane(treeTable);

See `JTable` for an explanation of why putting the treetable inside a scroll pane is necessary.

A single treetable model instance may be shared among more than one `JXTreeTable` instances. To access the treetable model, always call `getTreeTableModel` and `setTreeTableModel`. `JXTreeTable` wraps the supplied treetable model inside a private adapter class to adapt it to a `TableModel`. Although the model adapter is accessible through the `getModel` method, you should avoid accessing and manipulating it in any way. In particular, each model adapter instance is tightly bound to a single table instance, and any attempt to share it with another table (for example, by calling `setModel`) will throw an `IllegalArgumentException`!

Author:
  Philip Milne, Scott Violet, Ramesh Gupta
See Also:
  Serialized Form

Nested Class Summary
`protected static class` | `JXTreeTable.TreeTableDataAdapter`
`class` | `JXTreeTable.TreeTableHacker` Temporary class to have all the hacking at one place.
`class` | `JXTreeTable.TreeTableHackerExt` Note: currently this class looks a bit funny (only overriding the hit decision method).
`class` | `JXTreeTable.TreeTableHackerExt2` Patch for #471-swingx: no selection on click in hierarchical column if outside of node-text.
`class` | `JXTreeTable.TreeTableHackerExt3` A more (or less, depending in pov :-) aggressiv hacker.
`class` | `JXTreeTable.TreeTableHackerExt4` This class extends TreeTableHackerExt instead of TreeTableHackerExt3 so as to serve as a clue that it is a complete overhaul and looking in TreeTableHackerExt2 and TreeTableHackerExt3 for methods to change the behavior will do you no good.
`class` | `JXTreeTable.TreeTableHackerExt5`
`protected static class` | `JXTreeTable.TreeTableModelAdapter`

Nested classes/interfaces inherited from class org.jdesktop.swingx.JXTable
`JXTable.BooleanEditor, JXTable.GenericEditor, JXTable.NumberEditor, JXTable.TableAdapter`

Nested classes/interfaces inherited from class javax.swing.JTable
`javax.swing.JTable.AccessibleJTable, javax.swing.JTable.DropLocation, javax.swing.JTable.PrintMode`

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
`static java.lang.String` | `DRAG_HACK_FLAG_KEY` Key for clientProperty to decide whether to apply hack around #168-jdnc.
`static java.lang.String` | `DROP_HACK_FLAG_KEY` Key for clientProperty to decide whether to apply hack around #766-swingx.

Fields inherited from class org.jdesktop.swingx.JXTable
`compoundHighlighter, dataAdapter, editorRemover, filteredRowCountChanged, FOCUS_NEXT_COMPONENT, FOCUS_PREVIOUS_COMPONENT, forceRevalidate, HORIZONTALSCROLL_ACTION_COMMAND, isXTableRowHeightSet, MATCH_HIGHLIGHTER, PACKALL_ACTION_COMMAND, PACKSELECTED_ACTION_COMMAND, resetDefaultTableCellRendererHighlighter, searchable, UIPREFIX, USE_DTCR_COLORMEMORY_HACK`

Fields inherited from class javax.swing.JTable
`AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader`

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
`JXTreeTable()` Constructs a JXTreeTable using a `DefaultTreeTableModel`.
`JXTreeTable(TreeTableModel treeModel)` Constructs a JXTreeTable using the specified `TreeTableModel`.

Method Summary
`void` | `addTreeExpansionListener(javax.swing.event.TreeExpansionListener tel)` Adds a listener for `TreeExpansion` events.
`void` | `addTreeSelectionListener(javax.swing.event.TreeSelectionListener tsl)` Adds a listener for `TreeSelection` events.
`void` | `addTreeWillExpandListener(javax.swing.event.TreeWillExpandListener tel)` Adds a listener for `TreeWillExpand` events.
`protected void` | `adjustTableRowHeight(int treeRowHeight)` Forwards treeRowHeight to table.
`protected void` | `adjustTreeRowHeight(int tableRowHeight)` Forwards tableRowHeight to tree.
`protected java.awt.Component` | `applyRenderer(java.awt.Component component, ComponentAdapter adapter)` Performs configuration of the tree's renderer if the adapter's column is the hierarchical column, does nothing otherwise.
`void` | `clearSelection()` Overridden to ensure that private renderer state is kept in sync with the state of the component.
`void` | `collapseAll()` Collapses all nodes in the treetable.
`void` | `collapsePath(javax.swing.tree.TreePath path)` Collapses the node at the specified path in the treetable.
`void` | `collapseRow(int row)` Collapses the row in the treetable.
`void` | `columnMarginChanged(javax.swing.event.ChangeEvent e)`
`protected JXTreeTable.TreeTableHacker` | `createTreeTableHacker()` Hacking around various issues.
`boolean` | `editCellAt(int row, int column, java.util.EventObject e)` Overriden to invoke repaint for the particular location if the column contains the tree.
`void` | `expandAll()` Expands all nodes in the treetable.
`void` | `expandPath(javax.swing.tree.TreePath path)` Expands the the node at the specified path in the treetable.
`void` | `expandRow(int row)` Expands the specified row in the treetable.
`javax.swing.table.TableCellEditor` | `getCellEditor(int row, int column)`
`javax.swing.table.TableCellRenderer` | `getCellRenderer(int row, int column)`
`protected ComponentAdapter` | `getComponentAdapter()` Returns the adapter that knows how to access the component data model.
`int` | `getEditingRow()` Overridden to provide a workaround for BasicTableUI anomaly.
`java.util.Enumeration<?>` | `getExpandedDescendants(javax.swing.tree.TreePath parent)` Returns an `Enumeration` of the descendants of the path `parent` that are currently expanded.
`boolean` | `getExpandsSelectedPaths()` Returns the value of the `expandsSelectedPaths` property.
`int` | `getHierarchicalColumn()` Returns the index of the hierarchical column.
`javax.swing.tree.TreePath` | `getPathForLocation(int x, int y)` Returns the TreePath for a given x,y location.
`javax.swing.tree.TreePath` | `getPathForRow(int row)` Returns the TreePath for a given row.
`int` | `getRowForPath(javax.swing.tree.TreePath path)` Returns the row for a given TreePath.
`boolean` | `getScrollsOnExpand()` Returns the value of the `scrollsOnExpand` property.
`boolean` | `getShowsRootHandles()` Returns the value of the `showsRootHandles` property.
`java.lang.String` | `getStringAt(int row, int column)` Returns the string representation of the cell value at the given position.
`int` | `getToggleClickCount()` Returns the number of mouse clicks needed to expand or close a node.
`java.lang.String` | `getToolTipText(java.awt.event.MouseEvent event)`
`javax.swing.tree.TreeCellRenderer` | `getTreeCellRenderer()`
`javax.swing.tree.TreeSelectionModel` | `getTreeSelectionModel()` Returns the selection model for the tree portion of the this treetable.
`protected JXTreeTable.TreeTableHacker` | `getTreeTableHacker()`
`TreeTableModel` | `getTreeTableModel()` Returns the underlying TreeTableModel for this JXTreeTable.
`protected boolean` | `hackAroundDragEnabled(java.awt.event.MouseEvent me)` Decides whether we want to apply the hack for #168-jdnc.
`boolean` | `isCollapsed(int row)` Returns true if the node at the specified display row is collapsed.
`boolean` | `isCollapsed(javax.swing.tree.TreePath path)` Returns true if the node identified by path is currently collapsed, this will return false if any of the values in path are currently not being displayed.
`boolean` | `isExpanded(int row)` Returns true if the node at the specified display row is currently expanded.
`boolean` | `isExpanded(javax.swing.tree.TreePath path)` Returns true if the node identified by path is currently expanded.
`boolean` | `isHierarchical(int column)` Determines if the specified column is defined as the hierarchical column.
`boolean` | `isLargeModel()` Returns true if the tree is configured for a large model.
`boolean` | `isOverwriteRendererIcons()` Returns a boolean indicating whether the per-tree icons should be copied to the renderer on setTreeCellRenderer.
`boolean` | `isRootVisible()` Returns true if the root node of the tree is displayed.
`boolean` | `isVisible(javax.swing.tree.TreePath path)` Returns true if the value identified by path is currently viewable, which means it is either the root or all of its parents are expanded.
`java.awt.Component` | `prepareRenderer(javax.swing.table.TableCellRenderer renderer, int row, int column)` Returns the decorated `Component` used as a stamp to render the specified cell.
`protected void` | `processMouseEvent(java.awt.event.MouseEvent e)` Overridden to enable hit handle detection a mouseEvent which triggered a expand/collapse.
`protected void` | `processMouseMotionEvent(java.awt.event.MouseEvent e)`
`void` | `removeTreeExpansionListener(javax.swing.event.TreeExpansionListener tel)` Removes a listener for `TreeExpansion` events.
`void` | `removeTreeSelectionListener(javax.swing.event.TreeSelectionListener tsl)` Removes a listener for `TreeSelection` events.
`void` | `removeTreeWillExpandListener(javax.swing.event.TreeWillExpandListener tel)` Removes a listener for `TreeWillExpand` events.
`void` | `scrollPathToVisible(javax.swing.tree.TreePath path)` Makes sure all the path components in path are expanded (except for the last path component) and scrolls so that the node identified by the path is displayed.
`void` | `setAutoCreateRowSorter(boolean autoCreateRowSorter)`
`void` | `setClosedIcon(javax.swing.Icon icon)` Sets the specified icon as the icon to use for rendering closed container nodes.
`void` | `setCollapsedIcon(javax.swing.Icon icon)` Sets the specified icon as the icon to use for rendering collapsed nodes.
`void` | `setEnabled(boolean enabled)`
`void` | `setExpandedIcon(javax.swing.Icon icon)` Sets the specified icon as the icon to use for rendering expanded nodes.
`void` | `setExpandsSelectedPaths(boolean expand)` Sets the value of the `expandsSelectedPaths` property for the tree part.
`void` | `setLargeModel(boolean newValue)` Specifies whether the UI should use a large model.
`void` | `setLeafIcon(javax.swing.Icon icon)` Sets the specified icon as the icon to use for rendering leaf nodes.
`void` | `setModel(javax.swing.table.TableModel tableModel)` Overrides superclass version to make sure that the specified `TableModel` is compatible with JXTreeTable before invoking the inherited version.
`void` | `setOpenIcon(javax.swing.Icon icon)` Sets the specified icon as the icon to use for rendering open container nodes.
`void` | `setOverwriteRendererIcons(boolean overwrite)` Property to control whether per-tree icons should be copied to the renderer on setTreeCellRenderer.
`void` | `setRootVisible(boolean visible)` Determines whether or not the root node from the TreeModel is visible.
`void` | `setRowHeight(int rowHeight)` Sets the row height for this JXTreeTable and forwards the row height to the renderering tree.
`void` | `setRowHeight(int row, int rowHeight)` Throws UnsupportedOperationException because variable height rows are not supported.
`void` | `setRowSorter(javax.swing.RowSorter<? extends javax.swing.table.TableModel> sorter)`
`void` | `setScrollsOnExpand(boolean scroll)` Sets the value of the `scrollsOnExpand` property for the tree part.
`void` | `setSelectionBackground(java.awt.Color selectionBackground)`
`void` | `setSelectionForeground(java.awt.Color selectionForeground)`
`void` | `setSelectionMode(int mode)` Overridden to ensure that private renderer state is kept in sync with the state of the component.
`void` | `setShowsRootHandles(boolean visible)` Sets the value of the `showsRootHandles` property for the tree part.
`void` | `setSortable(boolean sortable)` Sets "sortable" property indicating whether or not this table supports sortable columns.
`void` | `setToggleClickCount(int clickCount)` Sets the number of mouse clicks before a node will expand or close.
`void` | `setTreeCellRenderer(javax.swing.tree.TreeCellRenderer cellRenderer)` Sets the specified TreeCellRenderer as the Tree cell renderer.
`void` | `setTreeTableModel(TreeTableModel treeModel)` Sets the data model for this JXTreeTable to the specified `TreeTableModel`.
`void` | `sizeColumnsToFit(int resizingColumn)` Overriden to invoke supers implementation, and then, if the receiver is editing a Tree column, the editors bounds is reset.
`void` | `tableChanged(javax.swing.event.TableModelEvent e)`
`protected void` | `updateHierarchicalRendererEditor()` Updates Ui of renderer/editor for the hierarchical column.
`void` | `updateUI()`

Methods inherited from class org.jdesktop.swingx.JXTable
`addHighlighter, adjustComponentOrientation, adminSetRowHeight, columnAdded, columnPropertyChange, columnSelectionChanged, configureColumnControl, configureEnclosingScrollPane, configureSorterProperties, createDefaultColumnControl, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultEditors, createDefaultRenderers, createDefaultRowSorter, createDefaultStringValueRegistry, createDefaultTableHeader, createHighlighterChangeListener, createLinkController, createRolloverProducer, doFind, doLayout, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getColumn, getColumnControl, getColumnCount, getColumnExt, getColumnExt, getColumnFactory, getColumnMargin, getColumns, getColumns, getComponentAdapter, getCompoundHighlighter, getControlsSorterProperties, getHighlighterChangeListener, getHighlighters, getLinkController, getNewDefaultRenderer, getPreferredScrollableViewportSize, getRowFilter, getScrollableTracksViewportWidth, getSearchable, getSelectionMode, getSortController, getSortedColumn, getSortOrder, getSortOrder, getSortOrderCycle, getSortsOnUpdates, getStringValueRegistry, getUIString, getUIString, getVisibleColumnCount, getVisibleRowCount, hasSortController, initializeColumnPreferredWidth, initializeColumnWidths, isAutoStartEditOnKeyStroke, isCellEditable, isColumnControlVisible, isDataChanged, isEditable, isFocusCycleRoot, isHorizontalScrollEnabled, isRolloverEnabled, isRowHeightEnabled, isSortable, isSortable, isSortable, isStructureChanged, isTerminateEditOnFocusLost, isUpdate, packAll, packColumn, packColumn, packSelected, packTable, postprocessModelChange, postprocessSorterChanged, prepareEditor, preprocessModelChange, removeEditor, removeHighlighter, removeNotify, resetDefaultTableCellRendererColors, resetSortOrder, rowAtPoint, scrollCellToVisible, scrollColumnToVisible, scrollRowToVisible, setAutoResizeMode, setAutoStartEditOnKeyStroke, setColumnControl, setColumnControlVisible, setColumnFactory, setColumnMargin, setColumnModel, setColumnSequence, setComponentOrientation, setDefaultRenderer, setEditable, setFillsViewportHeight, setGridColor, setHighlighters, setHorizontalScrollEnabled, setLocale, setPreferredScrollableViewportSize, setRolloverEnabled, setRowFilter, setRowHeightEnabled, setSearchable, setShowGrid, setShowGrid, setSortOrder, setSortOrder, setSortOrderCycle, setSortsOnUpdates, setTerminateEditOnFocusLost, setValueAt, setVisibleColumnCount, setVisibleRowCount, sorterChanged, toggleSortOrder, toggleSortOrder, transferFocus, transferFocusBackward, unconfigureColumnControl, unconfigureEnclosingScrollPane, updateColumnControlUI, updateColumnUI, updateHighlighterUI, updateHorizontalAction, updateLocaleActionState, updateLocaleState, updateRowHeightUI`

Methods inherited from class javax.swing.JTable
`addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, columnAtPoint, columnMoved, columnRemoved, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultDataModel, createDefaultSelectionModel, createScrollPaneForTable, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoResizeMode, getCellEditor, getCellRect, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getModel, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, print, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeRowSelectionInterval, resizeAndRepaint, selectAll, setAutoCreateColumnsFromModel, setCellEditor, setCellSelectionEnabled, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setIntercellSpacing, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setSelectionModel, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, sizeColumnsToFit, valueChanged`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, 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, processKeyEvent, 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, 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, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocusUpCycle`

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

Methods inherited from interface javax.swing.event.TableColumnModelListener
`columnMoved, columnRemoved`

Field Detail

### DRAG_HACK_FLAG_KEY

    public static final java.lang.String DRAG_HACK_FLAG_KEY

  Key for clientProperty to decide whether to apply hack around #168-jdnc.

  See Also:
    Constant Field Values

### DROP_HACK_FLAG_KEY

    public static final java.lang.String DROP_HACK_FLAG_KEY

  Key for clientProperty to decide whether to apply hack around #766-swingx.

  See Also:
    Constant Field Values

Constructor Detail

### JXTreeTable

    public JXTreeTable()

  Constructs a JXTreeTable using a `DefaultTreeTableModel`.

### JXTreeTable

    public JXTreeTable(TreeTableModel treeModel)

  Constructs a JXTreeTable using the specified `TreeTableModel`.

  Parameters:
    `treeModel` - model for the JXTreeTable

Method Detail

### setSortable

    public void setSortable(boolean sortable)

  Sets "sortable" property indicating whether or not this table supports sortable columns. If `sortable` is `true` then sorting will be enabled on all columns whose `sortable` property is `true`. If `sortable` is `false` then sorting will be disabled for all columns, regardless of each column's individual `sorting` property. The default is `true`.

  Note: as of post-1.0 this property is propagated to the SortController if controlsSorterProperties is true. Whether or not a change triggers a re-sort is up to either the concrete controller implementation (the default doesn't) or client code. This behaviour is different from old SwingX style sorting.

  Overridden to do nothing. TreeTable is not sortable because there is no equivalent to RowSorter (which is targeted to linear structures) for hierarchical data.

  Overrides:
    `setSortable` in class `JXTable`
  Parameters:
    `sortable` - boolean indicating whether or not this table supports sortable columns
  See Also:
    `JXTable.getControlsSorterProperties()`

### setAutoCreateRowSorter

    public void setAutoCreateRowSorter(boolean autoCreateRowSorter)

  Overridden to

  - fix core bug: replaces sorter even if flag doesn't change.
  - use xflag (need because super's RowSorter creation is hard-coded.

  Overridden to do nothing. TreeTable is not sortable because there is no equivalent to RowSorter (which is targeted to linear structures) for hierarchical data.

  Overrides:
    `setAutoCreateRowSorter` in class `JXTable`

### setRowSorter

    public void setRowSorter(javax.swing.RowSorter<? extends javax.swing.table.TableModel> sorter)

  Overridden propagate sort-related properties to the sorter after calling super, if the given RowSorter is of type SortController. Does nothing additional otherwise.

  Overridden to do nothing. TreeTable is not sortable because there is no equivalent to RowSorter (which is targeted to linear structures) for hierarchical data.

  Overrides:
    `setRowSorter` in class `JXTable`

### setEnabled

    public void setEnabled(boolean enabled)

  Overridden to keep the tree's enabled in synch.

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

### setSelectionBackground

    public void setSelectionBackground(java.awt.Color selectionBackground)

  Overridden because super throws NPE on null param.

  Overridden to keep the tree's selectionBackground in synch.

  Overrides:
    `setSelectionBackground` in class `JXTable`

### setSelectionForeground

    public void setSelectionForeground(java.awt.Color selectionForeground)

  Overridden because super throws NPE on null param.

  Overridden to keep the tree's selectionForeground in synch.

  Overrides:
    `setSelectionForeground` in class `JXTable`

### editCellAt

    public boolean editCellAt(int row,
                              int column,
                              java.util.EventObject e)

  Overriden to invoke repaint for the particular location if the column contains the tree. This is done as the tree editor does not fill the bounds of the cell, we need the renderer to paint the tree in the background, and then draw the editor over it. You should not need to call this method directly.

  Additionally, there is tricksery involved to expand/collapse the nodes.

  overridden to install a custom editor remover.

  Overrides:
    `editCellAt` in class `JXTable`

### processMouseEvent

    protected void processMouseEvent(java.awt.event.MouseEvent e)

  Overridden to enable hit handle detection a mouseEvent which triggered a expand/collapse.

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

### getTreeTableHacker

    protected JXTreeTable.TreeTableHacker getTreeTableHacker()

### createTreeTableHacker

    protected JXTreeTable.TreeTableHacker createTreeTableHacker()

  Hacking around various issues. Subclass and let it return your favourite. The current default is TreeTableHackerExt5 (latest evolution to work around #1230), the old long-standing default was TreeTableHackerExt3. If you experience problems with the latest, please let us know.

  Returns:

### processMouseMotionEvent

    protected void processMouseMotionEvent(java.awt.event.MouseEvent e)

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

### hackAroundDragEnabled

    protected boolean hackAroundDragEnabled(java.awt.event.MouseEvent me)

  Decides whether we want to apply the hack for #168-jdnc. here: returns true if dragEnabled() and a client property with key DRAG_HACK_FLAG_KEY has a value of boolean true.

  Note: this is updated for 1.6, as the intermediate system property for enabled drag support is useless now (it's the default)

  Parameters:
    `me` - the mouseEvent that triggered a editCellAt
  Returns:
    true if the hack should be applied.

### getEditingRow

    public int getEditingRow()

  Overridden to provide a workaround for BasicTableUI anomaly. Make sure the UI never tries to resize the editor. The UI currently uses different techniques to paint the renderers and editors. So, overriding setBounds() is not the right thing to do for an editor. Returning -1 for the editing row in this case, ensures the editor is never painted.

  Overrides:
    `getEditingRow` in class `javax.swing.JTable`

### setTreeTableModel

    public void setTreeTableModel(TreeTableModel treeModel)

  Sets the data model for this JXTreeTable to the specified `TreeTableModel`. The same data model may be shared by any number of JXTreeTable instances.

  Parameters:
    `treeModel` - data model for this JXTreeTable

### getTreeTableModel

    public TreeTableModel getTreeTableModel()

  Returns the underlying TreeTableModel for this JXTreeTable.

  Returns:
    the underlying TreeTableModel for this JXTreeTable

### setModel

    public final void setModel(javax.swing.table.TableModel tableModel)

  Overrides superclass version to make sure that the specified `TableModel` is compatible with JXTreeTable before invoking the inherited version.

  Because JXTreeTable internally adapts an `TreeTableModel` to make it a compatible TableModel, this method should never be called directly. Use `setTreeTableModel` instead.

  While it is possible to obtain a reference to this adapted version of the TableModel by calling `JTable.getModel()`, any attempt to call setModel() with that adapter will fail because the adapter might have been bound to a different JXTreeTable instance. If you want to extract the underlying TreeTableModel, which, by the way, can be shared, use `getTreeTableModel` instead

  .

  Overrides:
    `setModel` in class `JXTable`
  Parameters:
    `tableModel` - must be a TreeTableModelAdapter
  Throws:
    `java.lang.IllegalArgumentException` - if the specified tableModel is not an instance of TreeTableModelAdapter

### tableChanged

    public void tableChanged(javax.swing.event.TableModelEvent e)

  Description copied from class: `JXTable`

  Overridden to update internal state related to enhanced functionality and hack around core bugs.

  - re-calculate intialize column width and preferred scrollable size after a structureChanged if autocreateColumnsFromModel is true.
  - update string representation control after structureChanged
  - core bug #6791934 logic to force revalidate if appropriate

  Specified by:
    `tableChanged` in interface `javax.swing.event.TableModelListener`
  Overrides:
    `tableChanged` in class `JXTable`

### setRowHeight

    public final void setRowHeight(int row,
                                   int rowHeight)

  Throws UnsupportedOperationException because variable height rows are not supported.

  Overrides:
    `setRowHeight` in class `javax.swing.JTable`
  Parameters:
    `row` - ignored
    `rowHeight` - ignored
  Throws:
    `java.lang.UnsupportedOperationException` - because variable height rows are not supported

### setRowHeight

    public void setRowHeight(int rowHeight)

  Sets the row height for this JXTreeTable and forwards the row height to the renderering tree.

  Overrides:
    `setRowHeight` in class `JXTable`
  Parameters:
    `rowHeight` - height of a row.
  See Also:
    `JXTable.isXTableRowHeightSet`

### adjustTreeRowHeight

    protected void adjustTreeRowHeight(int tableRowHeight)

  Forwards tableRowHeight to tree.

  Parameters:
    `tableRowHeight` - height of a row.

### adjustTableRowHeight

    protected void adjustTableRowHeight(int treeRowHeight)

  Forwards treeRowHeight to table. This is for completeness only: the rendering tree is under our total control, so we don't expect any external call to tree.setRowHeight.

  Parameters:
    `treeRowHeight` - height of a row.

### columnMarginChanged

    public void columnMarginChanged(javax.swing.event.ChangeEvent e)

  Overridden to support enhanced auto-resize behaviour enabled and necessary.

  Overridden to adjust the renderer's size.

  Specified by:
    `columnMarginChanged` in interface `javax.swing.event.TableColumnModelListener`
  Overrides:
    `columnMarginChanged` in class `JXTable`
  See Also:
    `JXTable.setHorizontalScrollEnabled(boolean)`

### setSelectionMode

    public void setSelectionMode(int mode)

  Overridden to ensure that private renderer state is kept in sync with the state of the component. Calls the inherited version after performing the necessary synchronization. If you override this method, make sure you call this version from your version of this method.

  This version maps the selection mode used by the renderer to match the selection mode specified for the table. Specifically, the modes are mapped as follows:

        ListSelectionModel.SINGLE_INTERVAL_SELECTION: TreeSelectionModel.CONTIGUOUS_TREE_SELECTION;
        ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION;
        any other (default): TreeSelectionModel.SINGLE_TREE_SELECTION;

  Overrides:
    `setSelectionMode` in class `javax.swing.JTable`
  Parameters:
    `mode` - any of the table selection modes

### prepareRenderer

    public java.awt.Component prepareRenderer(javax.swing.table.TableCellRenderer renderer,
                                              int row,
                                              int column)

  Returns the decorated `Component` used as a stamp to render the specified cell. Overrides superclass version to provide support for cell decorators.

  Adjusts component orientation (guaranteed to happen before applying Highlighters).

  Per-column highlighters contained in `TableColumnExt.getHighlighters()` are applied to the renderer after the table highlighters.

  TODO kgs: interaction of search highlighter and column highlighters

  Note: DefaultTableCellRenderer and subclasses require a hack to play nicely with Highlighters because it has an internal "color memory" in setForeground/setBackground. The hack is applied in `resetDefaultTableCellRendererColors` which is called after super.prepareRenderer and before applying the Highlighters. The method is called always and for all renderers.

  Overridden to decorate the tree's renderer after calling super. At that point, it is only the tree itself that has been decorated.

  Overrides:
    `prepareRenderer` in class `JXTable`
  Parameters:
    `renderer` - the `TableCellRenderer` to prepare
    `row` - the row of the cell to render, where 0 is the first row
    `column` - the column of the cell to render, where 0 is the first column
  Returns:
    the `Component` used as a stamp to render the specified cell
  See Also:
    `applyRenderer(Component, ComponentAdapter)`

### applyRenderer

    protected java.awt.Component applyRenderer(java.awt.Component component,
                                               ComponentAdapter adapter)

  Performs configuration of the tree's renderer if the adapter's column is the hierarchical column, does nothing otherwise.

  Note: this is legacy glue if the treeCellRenderer is of type DefaultTreeCellRenderer. In that case the renderer's background/foreground/Non/Selection colors are set to the tree's background/foreground depending on the adapter's selection state. Does nothing if the treeCellRenderer is backed by a ComponentProvider.

  Parameters:
    `component` - the rendering component
    `adapter` - component data adapter
  Throws:
    `java.lang.NullPointerException` - if the specified component or adapter is null

### setTreeCellRenderer

    public void setTreeCellRenderer(javax.swing.tree.TreeCellRenderer cellRenderer)

  Sets the specified TreeCellRenderer as the Tree cell renderer.

  Parameters:
    `cellRenderer` - to use for rendering tree cells.

### getTreeCellRenderer

    public javax.swing.tree.TreeCellRenderer getTreeCellRenderer()

### getToolTipText

    public java.lang.String getToolTipText(java.awt.event.MouseEvent event)

  Overrides:
    `getToolTipText` in class `javax.swing.JTable`

### setCollapsedIcon

    public void setCollapsedIcon(javax.swing.Icon icon)

  Sets the specified icon as the icon to use for rendering collapsed nodes.

  Parameters:
    `icon` - to use for rendering collapsed nodes
  See Also:
    `JXTree.setCollapsedIcon(Icon)`

### setExpandedIcon

    public void setExpandedIcon(javax.swing.Icon icon)

  Sets the specified icon as the icon to use for rendering expanded nodes.

  Parameters:
    `icon` - to use for rendering expanded nodes
  See Also:
    `JXTree.setExpandedIcon(Icon)`

### setOpenIcon

    public void setOpenIcon(javax.swing.Icon icon)

  Sets the specified icon as the icon to use for rendering open container nodes.

  Parameters:
    `icon` - to use for rendering open nodes
  See Also:
    `JXTree.setOpenIcon(Icon)`

### setClosedIcon

    public void setClosedIcon(javax.swing.Icon icon)

  Sets the specified icon as the icon to use for rendering closed container nodes.

  Parameters:
    `icon` - to use for rendering closed nodes
  See Also:
    `JXTree.setClosedIcon(Icon)`

### setLeafIcon

    public void setLeafIcon(javax.swing.Icon icon)

  Sets the specified icon as the icon to use for rendering leaf nodes.

  Parameters:
    `icon` - to use for rendering leaf nodes
  See Also:
    `JXTree.setLeafIcon(Icon)`

### setOverwriteRendererIcons

    public void setOverwriteRendererIcons(boolean overwrite)

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

  The default value is false.

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

### isOverwriteRendererIcons

    public boolean isOverwriteRendererIcons()

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

  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)`, `JXTree.isOverwriteRendererIcons()`

### clearSelection

    public void clearSelection()

  Overridden to ensure that private renderer state is kept in sync with the state of the component. Calls the inherited version after performing the necessary synchronization. If you override this method, make sure you call this version from your version of this method.

  Overrides:
    `clearSelection` in class `javax.swing.JTable`

### collapseAll

    public void collapseAll()

  Collapses all nodes in the treetable.

### expandAll

    public void expandAll()

  Expands all nodes in the treetable.

### collapsePath

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

  Collapses the node at the specified path in the treetable.

  Parameters:
    `path` - path of the node to collapse

### expandPath

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

  Expands the the node at the specified path in the treetable.

  Parameters:
    `path` - path of the node to expand

### scrollPathToVisible

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

  Makes sure all the path components in path are expanded (except for the last path component) and scrolls so that the node identified by the path is displayed. Only works when this `JTree` is contained in a `JScrollPane`. (doc copied from JTree) PENDING: JW - where exactly do we want to scroll? Here: the scroll is in vertical direction only. Might need to show the tree column?

  Parameters:
    `path` - the `TreePath` identifying the node to bring into view

### collapseRow

    public void collapseRow(int row)

  Collapses the row in the treetable. If the specified row index is not valid, this method will have no effect.

### expandRow

    public void expandRow(int row)

  Expands the specified row in the treetable. If the specified row index is not valid, this method will have no effect.

### isVisible

    public boolean isVisible(javax.swing.tree.TreePath path)

  Returns true if the value identified by path is currently viewable, which means it is either the root or all of its parents are expanded. Otherwise, this method returns false.

  Returns:
    true, if the value identified by path is currently viewable; false, otherwise

### isExpanded

    public boolean isExpanded(javax.swing.tree.TreePath path)

  Returns true if the node identified by path is currently expanded. Otherwise, this method returns false.

  Parameters:
    `path` - path
  Returns:
    true, if the value identified by path is currently expanded; false, otherwise

### isExpanded

    public boolean isExpanded(int row)

  Returns true if the node at the specified display row is currently expanded. Otherwise, this method returns false.

  Parameters:
    `row` - row
  Returns:
    true, if the node at the specified display row is currently expanded. false, otherwise

### isCollapsed

    public boolean isCollapsed(javax.swing.tree.TreePath path)

  Returns true if the node identified by path is currently collapsed, this will return false if any of the values in path are currently not being displayed.

  Parameters:
    `path` - path
  Returns:
    true, if the value identified by path is currently collapsed; false, otherwise

### isCollapsed

    public boolean isCollapsed(int row)

  Returns true if the node at the specified display row is collapsed.

  Parameters:
    `row` - row
  Returns:
    true, if the node at the specified display row is currently collapsed. false, otherwise

### getExpandedDescendants

    public java.util.Enumeration<?> getExpandedDescendants(javax.swing.tree.TreePath parent)

  Returns an `Enumeration` of the descendants of the path `parent` that are currently expanded. If `parent` is not currently expanded, this will return `null`. If you expand/collapse nodes while iterating over the returned `Enumeration` this may not return all the expanded paths, or may return paths that are no longer expanded.

  Parameters:
    `parent` - the path which is to be examined
  Returns:
    an `Enumeration` of the descendents of `parent`, or `null` if `parent` is not currently expanded

### getPathForLocation

    public javax.swing.tree.TreePath getPathForLocation(int x,
                                                        int y)

  Returns the TreePath for a given x,y location.

  Parameters:
    `x` - x value
    `y` - y value
  Returns:
    the `TreePath` for the givern location.

### getPathForRow

    public javax.swing.tree.TreePath getPathForRow(int row)

  Returns the TreePath for a given row.

  Parameters:
    `row` -
  Returns:
    the `TreePath` for the given row.

### getRowForPath

    public int getRowForPath(javax.swing.tree.TreePath path)

  Returns the row for a given TreePath.

  Parameters:
    `path` -
  Returns:
    the row for the given `TreePath`.

### setRootVisible

    public void setRootVisible(boolean visible)

  Determines whether or not the root node from the TreeModel is visible.

  Parameters:
    `visible` - true, if the root node is visible; false, otherwise

### isRootVisible

    public boolean isRootVisible()

  Returns true if the root node of the tree is displayed.

  Returns:
    true if the root node of the tree is displayed

### setScrollsOnExpand

    public void setScrollsOnExpand(boolean scroll)

  Sets the value of the `scrollsOnExpand` property for the tree part. This property specifies whether the expanded paths should be scrolled into view. In a look and feel in which a tree might not need to scroll when expanded, this property may be ignored.

  Parameters:
    `scroll` - true, if expanded paths should be scrolled into view; false, otherwise

### getScrollsOnExpand

    public boolean getScrollsOnExpand()

  Returns the value of the `scrollsOnExpand` property.

  Returns:
    the value of the `scrollsOnExpand` property

### setShowsRootHandles

    public void setShowsRootHandles(boolean visible)

  Sets the value of the `showsRootHandles` property for the tree part. This property specifies whether the node handles should be displayed. If handles are not supported by a particular look and feel, this property may be ignored.

  Parameters:
    `visible` - true, if root handles should be shown; false, otherwise

### getShowsRootHandles

    public boolean getShowsRootHandles()

  Returns the value of the `showsRootHandles` property.

  Returns:
    the value of the `showsRootHandles` property

### setExpandsSelectedPaths

    public void setExpandsSelectedPaths(boolean expand)

  Sets the value of the `expandsSelectedPaths` property for the tree part. This property specifies whether the selected paths should be expanded.

  Parameters:
    `expand` - true, if selected paths should be expanded; false, otherwise

### getExpandsSelectedPaths

    public boolean getExpandsSelectedPaths()

  Returns the value of the `expandsSelectedPaths` property.

  Returns:
    the value of the `expandsSelectedPaths` property

### getToggleClickCount

    public int getToggleClickCount()

  Returns the number of mouse clicks needed to expand or close a node.

  Returns:
    number of mouse clicks before node is expanded

### setToggleClickCount

    public void setToggleClickCount(int clickCount)

  Sets the number of mouse clicks before a node will expand or close. The default is two.

  Parameters:
    `clickCount` - the number of clicks required to expand/collapse a node.

### isLargeModel

    public boolean isLargeModel()

  Returns true if the tree is configured for a large model. The default value is false.

  Returns:
    true if a large model is suggested
  See Also:
    `setLargeModel(boolean)`

### setLargeModel

    public void setLargeModel(boolean newValue)

  Specifies whether the UI should use a large model. (Not all UIs will implement this.)

  NOTE: this method is exposed for completeness - currently it's not recommended to use a large model because there are some issues (not yet fully understood), namely issue #25-swingx, and probably #270-swingx.

  Parameters:
    `newValue` - true to suggest a large model to the UI

### addTreeExpansionListener

    public void addTreeExpansionListener(javax.swing.event.TreeExpansionListener tel)

  Adds a listener for `TreeExpansion` events.

  Parameters:
    `tel` - a TreeExpansionListener that will be notified when a tree node is expanded or collapsed

### removeTreeExpansionListener

    public void removeTreeExpansionListener(javax.swing.event.TreeExpansionListener tel)

  Removes a listener for `TreeExpansion` events.

  Parameters:
    `tel` - the `TreeExpansionListener` to remove

### addTreeSelectionListener

    public void addTreeSelectionListener(javax.swing.event.TreeSelectionListener tsl)

  Adds a listener for `TreeSelection` events. TODO (JW): redirect event source to this.

  Parameters:
    `tsl` - a TreeSelectionListener that will be notified when a tree node is selected or deselected

### removeTreeSelectionListener

    public void removeTreeSelectionListener(javax.swing.event.TreeSelectionListener tsl)

  Removes a listener for `TreeSelection` events.

  Parameters:
    `tsl` - the `TreeSelectionListener` to remove

### addTreeWillExpandListener

    public void addTreeWillExpandListener(javax.swing.event.TreeWillExpandListener tel)

  Adds a listener for `TreeWillExpand` events. TODO (JW): redirect event source to this.

  Parameters:
    `tel` - a TreeWillExpandListener that will be notified when a tree node will be expanded or collapsed

### removeTreeWillExpandListener

    public void removeTreeWillExpandListener(javax.swing.event.TreeWillExpandListener tel)

  Removes a listener for `TreeWillExpand` events.

  Parameters:
    `tel` - the `TreeWillExpandListener` to remove

### getTreeSelectionModel

    public javax.swing.tree.TreeSelectionModel getTreeSelectionModel()

  Returns the selection model for the tree portion of the this treetable.

  Returns:
    selection model for the tree portion of the this treetable

### sizeColumnsToFit

    public void sizeColumnsToFit(int resizingColumn)

  Overriden to invoke supers implementation, and then, if the receiver is editing a Tree column, the editors bounds is reset. The reason we have to do this is because JTable doesn't think the table is being edited, as `getEditingRow` returns -1, and therefore doesn't automaticly resize the editor for us.

  Overrides:
    `sizeColumnsToFit` in class `javax.swing.JTable`

### isHierarchical

    public boolean isHierarchical(int column)

  Determines if the specified column is defined as the hierarchical column.

  Parameters:
    `column` - zero-based index of the column in view coordinates
  Returns:
    true if the column is the hierarchical column; false otherwise.
  Throws:
    `java.lang.IllegalArgumentException` - if the column is less than 0 or greater than or equal to the column count

### getHierarchicalColumn

    public int getHierarchicalColumn()

  Returns the index of the hierarchical column. This is the column that is displayed as the tree.

  Returns:
    the index of the hierarchical column, -1 if there is no hierarchical column

### getCellRenderer

    public javax.swing.table.TableCellRenderer getCellRenderer(int row,
                                                               int column)

  Overridden to fix core bug #4614616 (NPE if `TableModel`'s `Class` for the column is an interface). This method guarantees to always return a `not null` value. Returns the default renderer for `Object` if super returns `null`.

  Note: The lookup strategy for is unchanged compared to super. Subclasses which override this with a different lookup strategy are strongly advised to implement a custom StringValueRegistry with that lookup strategy to keep the WYSIWYM in SwingX.

  Overrides:
    `getCellRenderer` in class `JXTable`

### getCellEditor

    public javax.swing.table.TableCellEditor getCellEditor(int row,
                                                           int column)

  Overrides:
    `getCellEditor` in class `javax.swing.JTable`

### updateUI

    public void updateUI()

  Description copied from class: `JXTable`

  Additionally updates auto-adjusted row height and highlighters.

  Another of the override motivation is to fix core issue (?? ID): super fails to update all renderers/editors.

  Overrides:
    `updateUI` in class `JXTable`

### updateHierarchicalRendererEditor

    protected void updateHierarchicalRendererEditor()

  Updates Ui of renderer/editor for the hierarchical column. Need to do so manually, as not accessible by the default lookup.

### getStringAt

    public java.lang.String getStringAt(int row,
                                        int column)

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

  Overridden to message the tree directly if the column is the view index of the hierarchical column.

  PENDING JW: revisit once we switch to really using a table renderer. As is, it's a quick fix for #821-swingx: string rep for hierarchical column incorrect.

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

### getComponentAdapter

    protected ComponentAdapter getComponentAdapter()

  Returns the adapter that knows how to access the component data model. The component data adapter is used by filters, sorters, and highlighters.

  Overrides:
    `getComponentAdapter` in class `JXTable`
  Returns:
    the adapter that knows how to access the component data model

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.