com.sciapp.tree
Class TreeTable
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTable
com.sciapp.table.AdvancedJTable
com.sciapp.tree.TreeTable
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, TableColumnModelListener, TableModelListener, Scrollable
public class TreeTable
- extends AdvancedJTable
TreeTable works exactly the same as AdvancedJTable, with the only difference that this
component is capable of grouping several similar rows of a table in a single
row by using a JTree component. You can control when rows will be put together under a tree with
TreeTableModel.setRowComparator(java.util.Comparator)
.
TreeTable uses a TreeTableModel as its TableModel. An IllegalArgumentException is thrown if one
tries to set a TableModel that is not an instance of the TreeTableModel class.
TreeTable has a sole constructor which accepts as parameter an instance of ListTableModel.
TreeTable takes this parameter and constructs a TreeTableModel, which it uses as its TableModel.
A reference to this model can be taken with:
TreeTableModel treeModel = (TreeTableModel) table.getModel();
If you want to enable sorting and filtering capabilities on this component,
the ListTableModel that you pass in the constructor should be created like this:
Say you have a ListTableModel ltm
that holds the tabular data.
FilterTableModel ftm = new FilterTableModel(ltm);
SortTableModel stm = new SortTableModel(ftm);
TreeTable table = new TreeTable(stm);
com.sciapp.lic.eval.EvalLicenseManager.go();
Of course, you need to register the header in stm for mouse clicks to be processed by the model.
stm.setHeader(table.getTableHeader());
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 |
Constructor Summary |
TreeTable(ListTableModel model)
Constructs a TreeTable object having model as the ListTableModel that contains the
table's data. |
Method Summary |
protected static TreeTableModel |
createDefaultTreeTableModel(ListTableModel tableModel)
Returns a TreeTableModel instance that will be used as the tablemodel of this TreeTable. |
protected TableReorder |
createReorder()
Returns the TableReorder that will handle table selection changes. |
boolean |
editCellAt(int row,
int column,
EventObject e)
Programmatically starts editing the cell at row and
column , if the cell is editable. |
Class |
getColumnClass(int column)
Returns the type of the column appearing in the view at
column position column . |
int |
getEditingRow()
Returns the index of the row that contains the cell currently
being edited. |
JTree |
getTree()
Returns the JTree component that is displayed on the first column of the table. |
void |
setModel(TableModel model)
Sets the data model for this table to newModel and registers
with it for listener notifications from the new data model. |
void |
setRowHeight(int rowHeight)
Sets the height, in pixels, of all cells to rowHeight ,
revalidates, and repaints. |
void |
sizeColumnsToFit(int resizingColumn)
Obsolete as of Java 2 platform v1.4. |
void |
updateUI()
Notification from the UIManager that the L&F has changed.
Replaces the current UI object with the latest version from the
UIManager . |
Methods inherited from class com.sciapp.table.AdvancedJTable |
configureEnclosingScrollPane, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultEditors, createDefaultRenderers, createDefaultTableHeader, getShowDummyColumn, getTableState, getValueAt, isCellEditable, scrollRectToVisible, setColumnModel, setShowDummyColumn, setTableHeader, setTableState, tableChanged |
Methods inherited from class javax.swing.JTable |
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, convertColumnIndexToModel, convertColumnIndexToView, createDefaultDataModel, createDefaultSelectionModel, createScrollPaneForTable, doLayout, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellRenderer, getCellSelectionEnabled, getColumn, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getEditingColumn, getEditorComponent, getGridColor, getIntercellSpacing, getModel, getPreferredScrollableViewportSize, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getToolTipText, getUI, getUIClassID, initializeLocalVars, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setEditingColumn, setEditingRow, setGridColor, setIntercellSpacing, setPreferredScrollableViewportSize, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setUI, setValueAt, sizeColumnsToFit, unconfigureEnclosingScrollPane, valueChanged |
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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 |
TreeTable
public TreeTable(ListTableModel model)
- Constructs a TreeTable object having
model
as the ListTableModel that contains the
table's data.
createDefaultTreeTableModel
protected static TreeTableModel createDefaultTreeTableModel(ListTableModel tableModel)
- Returns a TreeTableModel instance that will be used as the tablemodel of this TreeTable.
- Parameters:
tableModel
- the ListTableModel that contains the treetable's data.
- Returns:
- a TreeTableModel instance/
createReorder
protected TableReorder createReorder()
- Returns the TableReorder that will handle table selection changes.
- Overrides:
createReorder
in class AdvancedJTable
- Returns:
- the TableReorder object
editCellAt
public boolean editCellAt(int row,
int column,
EventObject e)
- Programmatically starts editing the cell at
row
and
column
, if the cell is editable.
To prevent the JTable
from editing a particular table,
column or cell value, return false from the isCellEditable
method in the TableModel
interface.
- Overrides:
editCellAt
in class JTable
- Parameters:
row
- the row to be editedcolumn
- the column to be editede
- event to pass into shouldSelectCell
;
note that as of Java 2 platform v1.2, the call to
shouldSelectCell
is no longer made
- Returns:
- false if for any reason the cell cannot be edited
getColumnClass
public Class getColumnClass(int column)
- Returns the type of the column appearing in the view at
column position
column
.
- Overrides:
getColumnClass
in class AdvancedJTable
- Parameters:
column
- the column in the view being queried
- Returns:
- the type of the column at position
column
in the view where the first column is column 0
getEditingRow
public int getEditingRow()
- Returns the index of the row that contains the cell currently
being edited. If nothing is being edited, returns -1.
- Overrides:
getEditingRow
in class JTable
- Returns:
- the index of the row that contains the cell currently
being edited; returns -1 if nothing being edited
- See Also:
JTable.editingColumn
getTree
public JTree getTree()
- Returns the JTree component that is displayed on the first column of the table.
This tree is a specialized class that is synchronized with the TreeTable instance and should
therefore be dealt with carefully. Nevertheless, you can use the tree for various look and feel
purposes, such as changing the selection/background colors. You can also specify the icons of the
tree by taking its cell renderer, which is an instance of DefaultTreeCellRenderer:
DefaultTreeCellRenderer tcr = (DefaultTreeCellRenderer) treeTable.getTree().getCellRenderer();
ImageIcon leafIcon = new ImageIcon("c:\\icons\\leafIcon.gif");
ImageIcon closedIcon = new ImageIcon("c:\\icons\\closedIcon.gif");
tcr.setLeafIcon(leafIcon);
tcr.setClosedIcon(closedIcon);
- Returns:
- the tree associated with this TreeTable.
setModel
public void setModel(TableModel model)
- Sets the data model for this table to
newModel
and registers
with it for listener notifications from the new data model.
- Overrides:
setModel
in class AdvancedJTable
- Parameters:
model
- the new data source for this table- See Also:
JTable.getModel()
setRowHeight
public void setRowHeight(int rowHeight)
- Sets the height, in pixels, of all cells to
rowHeight
,
revalidates, and repaints.
The height of the cells will be equal to the row height minus
the row margin.
- Overrides:
setRowHeight
in class JTable
- Parameters:
rowHeight
- new row height- See Also:
JTable.getRowHeight()
sizeColumnsToFit
public void sizeColumnsToFit(int resizingColumn)
- Obsolete as of Java 2 platform v1.4. Please use the
doLayout()
method instead.
- Overrides:
sizeColumnsToFit
in class JTable
- Parameters:
resizingColumn
- the column whose resizing made this adjustment
necessary or -1 if there is no such column- See Also:
JTable.doLayout()
updateUI
public void updateUI()
- Notification from the
UIManager
that the L&F has changed.
Replaces the current UI object with the latest version from the
UIManager
.
- Overrides:
updateUI
in class AdvancedJTable
- See Also:
JComponent.updateUI()