Class Tree
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTree
-
- adams.gui.core.BaseTree
-
- adams.gui.visualization.debug.objecttree.Tree
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,TreeExpansionListener
,TreeWillExpandListener
,Scrollable
public class Tree extends BaseTree implements TreeWillExpandListener, TreeExpansionListener
Specialized tree that displays the properties of an object.
In order to avoid loops, a HashSet is used for keeping track of the processed objects. Unfortunately, custom equals(Object)/compareTo(Object) methods will interfere with this mechanism.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- 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 Modifier and Type Field Description static String
LABEL_HASHCODE
the label for the hashcode.protected ObjectExporterFileChooser
m_FileChooser
filechooser for exporting objects.protected boolean
m_IsRegExp
whether the search is using a regular expression.protected Object
m_Object
the current object.protected Pattern
m_SearchPattern
the search pattern.protected String
m_SearchString
the search string.static int
MAX_ITEMS
the maximum number of array/list elements to show.-
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
-
-
Constructor Summary
Constructors Constructor Description Tree()
Initializes the tree.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
buildTree(Object root)
Builds the tree from the given object.protected boolean
canEdit(Object obj)
Returns whether the object can be edited.protected void
copyToClipboard(Object obj)
Copies the object's string plain text rendering to the clipboard.protected void
export(Object obj)
Exports the object to a file.protected ObjectExporterFileChooser
getFileChooser(Class cls)
Returns the file chooser to use.Object
getObject()
Returns the object currently displayed.protected void
inspect(String[] path, Object obj)
Inspects the object in a separate dialog.protected boolean
matches(String label)
Checks the label against the current search setup.void
search(String search, boolean isRegExp)
Initiates the search.protected boolean
selectPropertyPath(Node parent, String[] path, int index)
Attempts to select the specified property path.boolean
selectPropertyPath(String[] path)
Attempts to select the specified property path.void
setObject(Object value)
Sets the object to display.protected void
showPopup(MouseEvent e)
Brings up a popup menu.void
treeCollapsed(TreeExpansionEvent event)
Called whenever an item in the tree has been collapsed.void
treeExpanded(TreeExpansionEvent event)
Called whenever an item in the tree has been expanded.void
treeWillCollapse(TreeExpansionEvent event)
Invoked whenever a node in the tree is about to be collapsed.void
treeWillExpand(TreeExpansionEvent event)
Invoked whenever a node in the tree is about to be expanded.-
Methods inherited from class adams.gui.core.BaseTree
collapse, collapseAll, collapseAll, collapseAll, collapseRoot, expand, expand, expandAll, expandAll, expandAll, expandRoot, getCommonAncestor, getExpandedState, getExpandedStateList, getExpandedTreePaths, getExpandedTreePaths, getFirstVisibleRow, getLastVisibleRow, getParentDialog, getParentFrame, getParentInternalFrame, initialize, isRootSelected, redraw, redraw, setExpandedState, setExpandedStateList, setExpandedTreePaths, setExpandedTreePaths, toggleAll, toggleAll, toPlainText, toPlainText, toString, toString
-
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
-
-
-
-
Field Detail
-
LABEL_HASHCODE
public static final String LABEL_HASHCODE
the label for the hashcode.- See Also:
- Constant Field Values
-
MAX_ITEMS
public static final int MAX_ITEMS
the maximum number of array/list elements to show.- See Also:
- Constant Field Values
-
m_Object
protected transient Object m_Object
the current object.
-
m_SearchString
protected String m_SearchString
the search string.
-
m_SearchPattern
protected Pattern m_SearchPattern
the search pattern.
-
m_IsRegExp
protected boolean m_IsRegExp
whether the search is using a regular expression.
-
m_FileChooser
protected ObjectExporterFileChooser m_FileChooser
filechooser for exporting objects.
-
-
Method Detail
-
buildTree
protected void buildTree(Object root)
Builds the tree from the given object.- Parameters:
root
- the object to build the tree from, null for empty tree
-
matches
protected boolean matches(String label)
Checks the label against the current search setup.- Parameters:
label
- the label to check- Returns:
- true if a match and should be added
-
setObject
public void setObject(Object value)
Sets the object to display.- Parameters:
value
- the object
-
getObject
public Object getObject()
Returns the object currently displayed.- Returns:
- the object
-
selectPropertyPath
protected boolean selectPropertyPath(Node parent, String[] path, int index)
Attempts to select the specified property path.- Parameters:
parent
- the parent nodepath
- the path to select (and open in the tree)index
- the index in the path array- Returns:
- true if successfully selected
-
selectPropertyPath
public boolean selectPropertyPath(String[] path)
Attempts to select the specified property path.- Parameters:
path
- the path to select (and open in the tree)- Returns:
- true if successfully selected
-
search
public void search(String search, boolean isRegExp)
Initiates the search.- Parameters:
search
- the search stringisRegExp
- whether the search is using a regular expression
-
getFileChooser
protected ObjectExporterFileChooser getFileChooser(Class cls)
Returns the file chooser to use.- Parameters:
cls
- the class that the exporters must be able to handle, null for all- Returns:
- the file chooser
-
canEdit
protected boolean canEdit(Object obj)
Returns whether the object can be edited.- Parameters:
obj
- the object to check- Returns:
- true if editable
-
showPopup
protected void showPopup(MouseEvent e)
Brings up a popup menu.- Parameters:
e
- the mouse event that triggered the popup menu
-
copyToClipboard
protected void copyToClipboard(Object obj)
Copies the object's string plain text rendering to the clipboard.- Parameters:
obj
- the object to copy
-
export
protected void export(Object obj)
Exports the object to a file.- Parameters:
obj
- the object to export
-
inspect
protected void inspect(String[] path, Object obj)
Inspects the object in a separate dialog.- Parameters:
path
- the property pathobj
- the object to inspect
-
treeWillExpand
public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException
Invoked whenever a node in the tree is about to be expanded.- Specified by:
treeWillExpand
in interfaceTreeWillExpandListener
- Parameters:
event
- aTreeExpansionEvent
containing aTreePath
object for the node- Throws:
ExpandVetoException
- to signify expansion has been canceled
-
treeWillCollapse
public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException
Invoked whenever a node in the tree is about to be collapsed.- Specified by:
treeWillCollapse
in interfaceTreeWillExpandListener
- Parameters:
event
- aTreeExpansionEvent
containing aTreePath
object for the node- Throws:
ExpandVetoException
- to signify collapse has been canceled
-
treeExpanded
public void treeExpanded(TreeExpansionEvent event)
Called whenever an item in the tree has been expanded.- Specified by:
treeExpanded
in interfaceTreeExpansionListener
- Parameters:
event
- aTreeExpansionEvent
containing aTreePath
object for the expanded node
-
treeCollapsed
public void treeCollapsed(TreeExpansionEvent event)
Called whenever an item in the tree has been collapsed.- Specified by:
treeCollapsed
in interfaceTreeExpansionListener
- Parameters:
event
- aTreeExpansionEvent
containing aTreePath
object for the collapsed node
-
-