- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
,TocTree
- Direct Known Subclasses:
UrlTocPane
To initialize the tree, the user should first call its
constructor (which takes zero arguments), followed by a call to the
method addEntry(name, obj)
to add the root of the
tree. This assigns the root node a name name
and value
obj
. To add children, this must be followed by a call
to nextLevel
, followed by calls to
addEntry
for each child. Each call to
nextLevel()
must be balanced with a call to
prevLevel()
. When all entries are defined, the method
entriesCompleted()
. If you do not want the root node
to be displayed, use entriesCompleted(false)
instead
of entriesCompleted()
. One may also use the
addActionListener
method to add action listeners in order
to respond to changes in the selection. These listeners are notified
whenever an entry is clicked, not just when the entry was changed.
Finally, one should call setSelectionWithAction(int)
to
execute the action that would occur when the initial node is
selected (this is not done automatically to give the programmer
some control over when this should occur, and allows software to
change the selection as needed.)
Access methods for ObjTocPane.Entry
allow one to recover
any relevant mouse event. These are valid for the duration of
action listeners fired by a selection or a call to
setSelectionWithAction(int)
. An instance of
ObjTocPane.Entry
will be used as the source of action events
created by this class in response to a call to
setSelectionWithAction(int)
.
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class javax.swing.JTree
JTree.AccessibleJTree, JTree.DropLocation, JTree.DynamicUtilTreeNode, JTree.EmptySelectionModel, JTree.TreeModelHandler, JTree.TreeSelectionRedirector
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCount
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add an action listener.void
Add a new node to the tree, giving it a name.void
Clear the selection.void
clearToc()
Clear the table of contents and puts it in a state where entries can be added.void
Assert that no more entries will be added.void
entriesCompleted
(boolean expand) Assert that no more entries will be added.protected void
Notify all action listeners of action-performed events.void
Add a new level to the tree rooted at the last node entered.void
Return to the previous level in the tree.void
Remove an action listener.void
setBackground
(Color color) Set the backgound color of this component.void
Sets the TreeCellRenderer that will be used to draw each cell.void
setForeground
(Color color) Set the foreground color of this component.final void
setSelectionWithAction
(int row) Set the selection and perform an action.void
Set the current table-cell-renderer's background color for non-selected items.void
Set the current table-cell-renderer's background color for selected items.void
setTCRFont
(Font font) Set the current table-cell-renderer's font.void
Set the current table-cell-renderer's text color for non-selected items.void
Set the current table-cell-renderer's text color for selected items.Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.bzdev.swing.TocTree
collapseRow, expandRow, isCollapsed, isExpanded
-
Constructor Details
-
ObjTocPane
public ObjTocPane()Constructor. Initialization is handled by a series of method calls.
-
-
Method Details
-
clearToc
public void clearToc()Clear the table of contents and puts it in a state where entries can be added. -
addActionListener
Add an action listener. The source of an action event will be the entry that was selected: an object whose type isObjTocPane.Entry
. The action's command is the title for the entry.- Specified by:
addActionListener
in interfaceTocTree
- Parameters:
l
- the action listener to add.
-
removeActionListener
Remove an action listener.- Specified by:
removeActionListener
in interfaceTocTree
- Parameters:
l
- the action listener to remove.
-
fireActionPerformed
protected void fireActionPerformed()Notify all action listeners of action-performed events. -
clearSelection
public void clearSelection()Clear the selection. This method also generates action events with the source set to an entry with a null title and a null object.- Specified by:
clearSelection
in interfaceTocTree
- Overrides:
clearSelection
in classJTree
-
addEntry
Add a new node to the tree, giving it a name.- Specified by:
addEntry
in interfaceTocTree
- Parameters:
name
- A string naming the node.obj
- The object that represents the value of the node.- Throws:
IllegalStateException
- if this method was called after a call toentriesCompleted
.- See Also:
-
nextLevel
public void nextLevel()Add a new level to the tree rooted at the last node entered.- Specified by:
nextLevel
in interfaceTocTree
- Throws:
IllegalStateException
- if this method was called after a call toentriesCompleted
.- See Also:
-
prevLevel
public void prevLevel()Return to the previous level in the tree.- Specified by:
prevLevel
in interfaceTocTree
- Throws:
IllegalStateException
- if this method was called after a call toentriesCompleted
or if it was called more times thannextLevel
- See Also:
-
entriesCompleted
public void entriesCompleted()Assert that no more entries will be added. A call to this method will complete construction of the tree. It is equivalent to callingentriesCompleted(false)
.- Specified by:
entriesCompleted
in interfaceTocTree
- Throws:
IllegalStateException
- if this method was already called.- See Also:
-
entriesCompleted
public void entriesCompleted(boolean expand) Assert that no more entries will be added. A call to this method will complete construction of the tree.- Specified by:
entriesCompleted
in interfaceTocTree
- Parameters:
expand
-true
if all nodes should be expanded before the tree is displayed; false if no nodes should be expanded- Throws:
IllegalStateException
- if this method was already called.- See Also:
-
setSelectionWithAction
public final void setSelectionWithAction(int row) Set the selection and perform an action. This method should be called after the call toentriesCompleted
. It sets the selected object and callsfireActionPerformed()
. Rows are indexed with 0 indicating the first visible node and with only visible nodes counted, regardless of whether these nodes are displayable. Expanding or collapsing nodes changes the indexing. Changing the portion of the pane that is shown in the display does not change the indexing. At the time this description was written, the JTree documentation was somewhat obscure regarding how this indexing works.- Specified by:
setSelectionWithAction
in interfaceTocTree
- Parameters:
row
- the row to select.- Throws:
IllegalStateException
- if this method was called beforeentriesCompleted
.
-
setCellRenderer
Sets the TreeCellRenderer that will be used to draw each cell.- Overrides:
setCellRenderer
in classJTree
- Parameters:
x
- the tree-cell renderer that is to render each cell- See Also:
-
setBackground
Set the backgound color of this component. A background color is used only if a component is opaque; however, unless the colors for the selected or non-selected tree endtries are already set explicitly, this method will also set the background color for those entries to reasonable values.Modifications to a table-cell renderer are not automtically reapplied if the table-cell renderer is changed.
Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Overrides:
setBackground
in classJComponent
- Parameters:
color
- the color- See Also:
-
setForeground
Set the foreground color of this component. A foreground color is used only if a component is opaque; however, unless the colors for the selected or non-selected tree entries are already set explicitly, this method will also set the text color for those entries.Modifications to a table-cell renderer are not automtically reapplied if the table-cell renderer is changed.
Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Overrides:
setForeground
in classJComponent
- Parameters:
color
- the color- See Also:
-
setTCRBackgroundSelectionColor
Set the current table-cell-renderer's background color for selected items.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()
to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer
, use the methodDefaultTreeCellRenderer.getBackgroundSelectionColor()
.Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c
- the color- Throws:
UnsupportedOperationException
- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRBackgroundNonSelectionColor
Set the current table-cell-renderer's background color for non-selected items.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()
to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer
, use the methodDefaultTreeCellRenderer.getBackgroundNonSelectionColor()
.Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c
- the color- Throws:
UnsupportedOperationException
- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRTextSelectionColor
Set the current table-cell-renderer's text color for selected items.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()
to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer
, use the methodDefaultTreeCellRenderer.getTextSelectionColor()
.Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c
- the color- Throws:
UnsupportedOperationException
- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRTextNonSelectionColor
Set the current table-cell-renderer's text color for non-selected items. This method is provided for convenience. To get the value, useJTree.getCellRenderer()
to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer
, use the methodDefaultTreeCellRenderer.getTextNonSelectionColor()
.Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c
- the color- Throws:
UnsupportedOperationException
- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRFont
Set the current table-cell-renderer's font.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()
to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer
, use the methodDefaultTreeCellRenderer.getFont()
.Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
font
- the font- Throws:
UnsupportedOperationException
- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-