Package adams.gui.core
Class BaseTree
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTree
-
- adams.gui.core.BaseTree
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
- Direct Known Subclasses:
DOMTree
,DragAndDropTree
,JsonTree
,Tree
public class BaseTree extends JTree
A JTree enhanced with a few useful methods.- Author:
- fracpete (fracpete at waikato dot ac dot nz), Addison-Wesley
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested 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
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
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
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
collapse(DefaultMutableTreeNode node)
Collapses the specified node.void
collapseAll()
Collapses all nodes in the tree.void
collapseAll(DefaultMutableTreeNode node)
Collapses the sub-tree below the specified node.void
collapseAll(TreePath path)
Collapses the sub-tree below the specified node.void
collapseRoot()
Collapses only the root node.void
expand(int depth)
Expands all nodes in the tree up to the specified depth.void
expand(DefaultMutableTreeNode node)
Expands the specified node.void
expandAll()
Expands all nodes in the tree.void
expandAll(DefaultMutableTreeNode node)
Expands the sub-tree below the specified node.void
expandAll(TreePath path)
Expands the sub-tree below the specified node.void
expandRoot()
Expands only the root node.BaseTreeNode
getCommonAncestor(BaseTreeNode node1, BaseTreeNode node2)
Returns the closest common ancestor for the two nodes.boolean[]
getExpandedState()
Returns the expanded (or not) state of all the rows currently being displayed.List<Boolean>
getExpandedStateList()
Returns the expanded (or not) state of all the rows currently being displayed.List<TreePath>
getExpandedTreePaths()
Returns all currently expanded nodes.List<TreePath>
getExpandedTreePaths(DefaultMutableTreeNode node)
Returns all currently expanded nodes, starting from the specified node.int
getFirstVisibleRow()
Returns the first visible row.int
getLastVisibleRow()
Returns the last visible row.Dialog
getParentDialog()
Tries to determine the dialog this panel is part of.Frame
getParentFrame()
Tries to determine the frame this panel is part of.JInternalFrame
getParentInternalFrame()
Tries to determine the internal frame this panel is part of.protected void
initialize()
Further initialization of the tree.boolean
isRootSelected()
Returns whether the root node is selected.void
redraw()
Redraws the complete tree.void
redraw(DefaultMutableTreeNode node)
Redraws the node and its subtree.void
setExpandedState(boolean[] value)
Sets the expanded state of the rows currently being displayed.void
setExpandedStateList(List<Boolean> value)
Sets the expanded state of the rows currently being displayed.void
setExpandedTreePaths(List<TreePath> nodes)
Expands the specified nodes, all others get collapsed.void
setExpandedTreePaths(DefaultMutableTreeNode node, List<TreePath> nodes)
Expands the specified nodes, all others get collapsed.protected void
toggleAll(TreePath parent, boolean expand)
Performs the expand/collapse recursively.protected void
toggleAll(TreePath parent, boolean expand, int currDepth, int maxDepth)
Performs the expand/collapse recursively.String
toPlainText()
Generates a string representation of the tree in plain text.protected void
toPlainText(StringBuilder builder, int level, BaseTreeNode node, List<Boolean> more)
Adds the node (and its potentional children) to the StringBuilder.String
toString()
Generates a string representation of the tree.protected void
toString(StringBuilder builder, int level, TreeNode node, List<Boolean> more)
Adds the node (and its potentional children) to the StringBuilder.-
Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, 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, setCellRenderer, 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, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
BaseTree
public BaseTree()
Initializes the tree.
-
BaseTree
public BaseTree(TreeModel model)
Initializes the tree with the given model.- Parameters:
model
- the tree model to use
-
BaseTree
public BaseTree(TreeNode root)
Initializes the tree with the given root node.- Parameters:
root
- the root node to use
-
-
Method Detail
-
initialize
protected void initialize()
Further initialization of the tree.
-
expand
public void expand(DefaultMutableTreeNode node)
Expands the specified node.- Parameters:
node
- the node to expand
-
expandRoot
public void expandRoot()
Expands only the root node.
-
expandAll
public void expandAll()
Expands all nodes in the tree.
-
expandAll
public void expandAll(DefaultMutableTreeNode node)
Expands the sub-tree below the specified node.- Parameters:
node
- the node to expand
-
expandAll
public void expandAll(TreePath path)
Expands the sub-tree below the specified node.- Parameters:
path
- the path to the sub-tree
-
expand
public void expand(int depth)
Expands all nodes in the tree up to the specified depth.- Parameters:
depth
- the maximum expansion depth (root = 0)
-
collapse
public void collapse(DefaultMutableTreeNode node)
Collapses the specified node.- Parameters:
node
- the node to collapse
-
collapseRoot
public void collapseRoot()
Collapses only the root node.
-
collapseAll
public void collapseAll()
Collapses all nodes in the tree.
-
collapseAll
public void collapseAll(DefaultMutableTreeNode node)
Collapses the sub-tree below the specified node.- Parameters:
node
- the node to collapse
-
collapseAll
public void collapseAll(TreePath path)
Collapses the sub-tree below the specified node.- Parameters:
path
- the path to the sub-tree
-
toggleAll
protected void toggleAll(TreePath parent, boolean expand)
Performs the expand/collapse recursively.- Parameters:
parent
- the parent pathexpand
- whether to expand or collapse
-
toggleAll
protected void toggleAll(TreePath parent, boolean expand, int currDepth, int maxDepth)
Performs the expand/collapse recursively.- Parameters:
parent
- the parent pathexpand
- whether to expand or collapsecurrDepth
- the current depthmaxDepth
- the maximum depth, -1 for infinity
-
getExpandedTreePaths
public List<TreePath> getExpandedTreePaths()
Returns all currently expanded nodes.- Returns:
- the expanded nodes
-
getExpandedTreePaths
public List<TreePath> getExpandedTreePaths(DefaultMutableTreeNode node)
Returns all currently expanded nodes, starting from the specified node.- Parameters:
node
- the node to start from, use null for root- Returns:
- the expanded nodes
-
setExpandedTreePaths
public void setExpandedTreePaths(List<TreePath> nodes)
Expands the specified nodes, all others get collapsed.- Parameters:
nodes
- the nodes to have expanded
-
setExpandedTreePaths
public void setExpandedTreePaths(DefaultMutableTreeNode node, List<TreePath> nodes)
Expands the specified nodes, all others get collapsed.- Parameters:
node
- the starting node, use null for rootnodes
- the nodes to have expanded
-
isRootSelected
public boolean isRootSelected()
Returns whether the root node is selected.- Returns:
- true if selected
-
redraw
public void redraw()
Redraws the complete tree. Model must be derived fromDefaultTreeModel
.
-
redraw
public void redraw(DefaultMutableTreeNode node)
Redraws the node and its subtree. Model must be derived fromDefaultTreeModel
.- Parameters:
node
- the node (and its subtree) to redraw
-
getParentFrame
public Frame getParentFrame()
Tries to determine the frame this panel is part of.- Returns:
- the parent frame if one exists or null if not
-
getParentDialog
public Dialog getParentDialog()
Tries to determine the dialog this panel is part of.- Returns:
- the parent dialog if one exists or null if not
-
getParentInternalFrame
public JInternalFrame getParentInternalFrame()
Tries to determine the internal frame this panel is part of.- Returns:
- the parent internal frame if one exists or null if not
-
setExpandedState
public void setExpandedState(boolean[] value)
Sets the expanded state of the rows currently being displayed.- Parameters:
value
- the expanded state of the rows
-
getExpandedState
public boolean[] getExpandedState()
Returns the expanded (or not) state of all the rows currently being displayed.- Returns:
- the expanded state for the rows
-
setExpandedStateList
public void setExpandedStateList(List<Boolean> value)
Sets the expanded state of the rows currently being displayed.- Parameters:
value
- the expanded state of the rows
-
getExpandedStateList
public List<Boolean> getExpandedStateList()
Returns the expanded (or not) state of all the rows currently being displayed.- Returns:
- the expanded state for the rows
-
getCommonAncestor
public BaseTreeNode getCommonAncestor(BaseTreeNode node1, BaseTreeNode node2)
Returns the closest common ancestor for the two nodes.- Parameters:
node1
- the first nodenode2
- the second node- Returns:
- the ancestor or null if no common ancestor, no even the root node
-
getFirstVisibleRow
public int getFirstVisibleRow()
Returns the first visible row.- Returns:
- the visible row, -1 if none found
-
getLastVisibleRow
public int getLastVisibleRow()
Returns the last visible row.- Returns:
- the visible row, -1 if none found
-
toString
protected void toString(StringBuilder builder, int level, TreeNode node, List<Boolean> more)
Adds the node (and its potentional children) to the StringBuilder.- Parameters:
builder
- for adding the tree structure tolevel
- the current level (for indentation)node
- the node to processmore
- for keeping track whether more siblings come after the node
-
toString
public String toString()
Generates a string representation of the tree.
-
toPlainText
public String toPlainText()
Generates a string representation of the tree in plain text.- Returns:
- the string representation
-
toPlainText
protected void toPlainText(StringBuilder builder, int level, BaseTreeNode node, List<Boolean> more)
Adds the node (and its potentional children) to the StringBuilder.- Parameters:
builder
- for adding the tree structure tolevel
- the current level (for indentation)node
- the node to processmore
- for keeping track whether more siblings come after the node
-
-