|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JTable | +--fri.gui.swing.polytreetable.PolyTreeTable
A JTable that can visualize expanding/collapsing polyhierarchies. An implementation of PolyTreeTableModel or PolyTreeTableUserObject provides the data model.
The PolyTreeTable renders children like a Tree (or TreeTable), but parents above the root node in reverse order and reverse orientation. That means parents expand upwards, children downwards. The root node has the role of a focus node, as one can change the root by a default action (double click, enter key) on any other node. Then the view is changed to show children and parents of this new focus node, keeping as much as possible expanded pathes.
The advantage of this view is the ability to show multiple parents, which is of importance when rendering polyhierarchies or hierarchies with cycles. Nevertheless all nodes except the focus node do show either children or parents, not both. So if you want to see the parents and children of a node, you got to make it the focus node by a double click.
Mind: This view can not show more than one "focus node", i.e. current root. And it can not set the root invisible, as parents would not be visible then.
Use setModelFromUserObject() or setPolyTreeTableModel() to set a model to treetable. Mind that getModel() does NOT return this passed model, but an adapter. Use getPolyTreeTableModel() for that purpose.
The implementation of the model can be built on interface PolyTreeTableUserObject, which is the most elegant access to PolyTreeTable. A DefaultTreeTableModel with a DefaultCachedTreeNode will be created when PolyTreeTable is constructed with such an userObject. Use PolyTreeTableUserObject.isColumnEditable() to set tree or other columns editable.
fri.gui.swing.polytreetable.PolyTreeTableSelection
,
PolyTreeNode
,
PolyTreeTableModel
,
PolyTreeExpansionListener
,
fri.gui.swing.polytreetable.FileTreeTable
,
Serialized FormField Summary | |
protected PolyTreeTableCellEditor |
editor
The current editor for the tree column. |
static boolean |
PARENTS_REVERSE_DEFAULT
A settable default for constructor: show parent nodes on the right side of the view. |
protected PolyTreeTableCellRenderer |
renderer
The current renderer for the tree column. |
protected PolyTreeView |
tree
The current tree view proxy. |
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 | |
PolyTreeTable(PolyTreeNode startNode)
Construction with a start node, a (mutable) DefaultTreeTableModel wrapper will be created. |
|
PolyTreeTable(PolyTreeNode startNode,
boolean parentsReverse)
Construction with a start node, a (mutable) DefaultTreeTableModel wrapper will be created. |
|
PolyTreeTable(PolyTreeTableModel treeTableModel)
Construction with an explicit model. |
|
PolyTreeTable(PolyTreeTableModel treeTableModel,
boolean parentsReverse)
Construction with an explicit model. |
|
PolyTreeTable(PolyTreeTableUserObject startUserObject)
Construction with a start userObject. |
|
PolyTreeTable(PolyTreeTableUserObject startUserObject,
boolean parentsReverse)
Construction with a start userObject. |
Method Summary | |
void |
addPolyTreeExpansionListener(PolyTreeExpansionListener lsnr)
Add a tree expansion listener, called after expansion took place. |
void |
addPolyTreeWillExpandListener(PolyTreeWillExpandListener lsnr)
Add a tree expansion listener, called before expansion takes place. |
void |
addSelectedPath(java.util.Vector path,
boolean parent)
Add a selection by a path, retrieved by getPathForRow(). |
void |
clearSelection()
Overridden to avoid firing valueChanged() with a wrong lead selection when root changes. |
protected PolyTreeTableModel |
createDefaultModel(PolyTreeNode startNode)
Override this to create another PolyTreeTableModel than DefaultPolyTreeTableModel. |
protected PolyTreeTableCellEditor |
createPolyTreeTableCellEditor()
|
protected PolyTreeTableCellRenderer |
createPolyTreeTableCellRenderer()
|
protected PolyTreeView |
createPolyTreeView(PolyTreeTableModel treeTableModel)
Returns a new PolyTreeView with treeTableModel. |
protected javax.swing.ListSelectionModel |
createSelectionModel()
Returns a newly created RestoringTableSelectionModel. |
int |
getFocusNodeRow()
Returns the row of the current focus node, i.e. lead term. |
java.lang.Object |
getFocusUserObject()
Returns the userObject of the current focus node, i.e. lead term. |
PolyTreeNode |
getNodeForRow(int row)
Convenience method: Returns the tree node in passed table row. |
java.util.Vector |
getOpenChildPathes()
Returns all currently open child pathes from tree as a list of lists. |
java.util.Vector |
getOpenParentPathes()
Returns all currently open parent pathes from tree as a list of lists. |
java.util.Vector |
getPathForRow(int row)
Returns a list that holds Strings describing the path for the given row. |
PolyTreeTableModel |
getPolyTreeTableModel()
Return the PolyTreeTableModel that was set by constructor or by setPolyTreeTableModel() call |
int[] |
getRowsForNode(PolyTreeNode node)
Convenience method: Returns the visible table rows for passed tree node. |
java.util.Vector |
getSelectedChildPathes()
Returns all currently selected child pathes from tree as a list of lists. |
java.util.Vector |
getSelectedParentPathes()
Returns all currently selected parent pathes from tree as a list of lists. |
java.lang.Object |
getStartUserObject()
Returns the model's getStartNode(), that is never changed as long as PolyTreeTable has the same model. |
PolyTreeView |
getTree()
Returns the tree proxy that holds view properties of the tree and can notify expand/collapse listeners. |
protected void |
init(PolyTreeTableModel treeTableModel)
Sets the model and switches off intercell spacing and horizontal lines. |
boolean |
isParentsReverse()
Returns true if parents are shown on the right side (when orientation is left to right). |
void |
removePolyTreeExpansionListener(PolyTreeExpansionListener lsnr)
Remove a tree expansion listener. |
void |
removePolyTreeWillExpandListener(PolyTreeWillExpandListener lsnr)
Remove a tree expansion listener. |
void |
repaint()
Overridden to repaint only when denyRepaint is false. |
void |
setFocusNode(PolyTreeNode node)
Sets the passed node as focus node and keeps expansion if possible. |
void |
setFocusUserObject(PolyTreeTableUserObject leadNode)
Sets the current "lead term" or "focus node" (this is NOT the top node of the polyhierarchy). |
void |
setModelFromUserObject(PolyTreeTableUserObject startUserObject)
Set a model built from userObject to treetable, i.e. to JTable. |
void |
setPolyTreeTableModel(PolyTreeTableModel polyTreeTableModel)
Set a model to treetable, i.e. to JTable. |
void |
setSelectedChildPathes(java.util.Vector pathes)
Sets selected child pathes from tree as a list of lists. |
void |
setSelectedParentPath(java.util.Vector path)
Set a selection to a child path, retrieved by getSelectedChildPathes(). |
void |
setSelectedParentPathes(java.util.Vector pathes)
Sets selected parent pathes from tree as a list of lists. |
void |
setSelectedPath(java.util.Vector path,
boolean parent)
Set a selection to a parent path, retrieved by getSelectedParentPathes(). |
protected void |
setTreeCellEditor()
Sets a new PolyTreeTableCellEditor as the default editor. |
protected void |
setTreeCellRenderer()
Sets a new PolyTreeTableCellRenderer as the default renderer. |
void |
updateUI()
Overridden to message super and set the BasicPolyTreeTableUI. |
Methods inherited from class javax.swing.JTable |
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellRenderer, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getEditingColumn, getEditingRow, 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, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setEditingColumn, setEditingRow, setGridColor, setIntercellSpacing, setModel, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setValueAt, sizeColumnsToFit, sizeColumnsToFit, tableChanged, 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, scrollRectToVisible, 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, 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 |
public static boolean PARENTS_REVERSE_DEFAULT
protected PolyTreeTableCellRenderer renderer
protected PolyTreeTableCellEditor editor
protected PolyTreeView tree
Constructor Detail |
public PolyTreeTable(PolyTreeTableUserObject startUserObject)
startUserObject
- data for the start node.public PolyTreeTable(PolyTreeTableUserObject startUserObject, boolean parentsReverse)
startUserObject
- data for the start node.parentsReverse
- when true parent nodes are shown on the right side of the view (when orientation left to right).public PolyTreeTable(PolyTreeNode startNode)
public PolyTreeTable(PolyTreeNode startNode, boolean parentsReverse)
parentsReverse
- when true parent nodes are shown on the right side of the view (when orientation left to right).public PolyTreeTable(PolyTreeTableModel treeTableModel)
treeTableModel
- the model for the tree rows and table columns.public PolyTreeTable(PolyTreeTableModel treeTableModel, boolean parentsReverse)
treeTableModel
- the model for the tree rows and table columns.parentsReverse
- when true parent nodes are shown on the right side of the view (when orientation left to right).Method Detail |
protected PolyTreeTableModel createDefaultModel(PolyTreeNode startNode)
public boolean isParentsReverse()
protected void init(PolyTreeTableModel treeTableModel)
public PolyTreeTableModel getPolyTreeTableModel()
public void setModelFromUserObject(PolyTreeTableUserObject startUserObject)
public void setPolyTreeTableModel(PolyTreeTableModel polyTreeTableModel)
protected PolyTreeView createPolyTreeView(PolyTreeTableModel treeTableModel)
protected void setTreeCellRenderer()
protected PolyTreeTableCellRenderer createPolyTreeTableCellRenderer()
protected void setTreeCellEditor()
protected PolyTreeTableCellEditor createPolyTreeTableCellEditor()
protected javax.swing.ListSelectionModel createSelectionModel()
public void clearSelection()
clearSelection
in class javax.swing.JTable
public PolyTreeView getTree()
public PolyTreeNode getNodeForRow(int row)
public int[] getRowsForNode(PolyTreeNode node)
public java.util.Vector getPathForRow(int row)
public java.util.Vector getOpenParentPathes()
public java.util.Vector getOpenChildPathes()
public java.util.Vector getSelectedParentPathes()
public java.util.Vector getSelectedChildPathes()
public void setSelectedParentPathes(java.util.Vector pathes)
public void setSelectedChildPathes(java.util.Vector pathes)
public void addSelectedPath(java.util.Vector path, boolean parent)
path
- Vector of Strings describing the path to select.parent
- true if it is a parent pathpublic void setSelectedPath(java.util.Vector path, boolean parent)
path
- Vector of Strings describing the path to select.parent
- true if it is a parent pathpublic void setSelectedParentPath(java.util.Vector path)
public java.lang.Object getStartUserObject()
public void setFocusUserObject(PolyTreeTableUserObject leadNode)
If the node is currently visible, its first appearance (can appear more than once, when cycles) is set as root row. Else all visible rows will be removed and the new startNode will expand first level of both parents and children. The models "startNode" will not be changed by this method!
public void setFocusNode(PolyTreeNode node)
public int getFocusNodeRow()
public java.lang.Object getFocusUserObject()
public void addPolyTreeExpansionListener(PolyTreeExpansionListener lsnr)
public void removePolyTreeExpansionListener(PolyTreeExpansionListener lsnr)
public void addPolyTreeWillExpandListener(PolyTreeWillExpandListener lsnr)
public void removePolyTreeWillExpandListener(PolyTreeWillExpandListener lsnr)
public void updateUI()
updateUI
in class javax.swing.JTable
public void repaint()
repaint
in class java.awt.Component
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |