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 StringLABEL_HASHCODEthe label for the hashcode.protected ObjectExporterFileChooserm_FileChooserfilechooser for exporting objects.protected booleanm_IsRegExpwhether the search is using a regular expression.protected Objectm_Objectthe current object.protected Patternm_SearchPatternthe search pattern.protected Stringm_SearchStringthe search string.static intMAX_ITEMSthe 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 voidbuildTree(Object root)Builds the tree from the given object.protected booleancanEdit(Object obj)Returns whether the object can be edited.protected voidcopyToClipboard(Object obj)Copies the object's string plain text rendering to the clipboard.protected voidexport(Object obj)Exports the object to a file.protected ObjectExporterFileChoosergetFileChooser(Class cls)Returns the file chooser to use.ObjectgetObject()Returns the object currently displayed.protected voidinspect(String[] path, Object obj)Inspects the object in a separate dialog.protected booleanmatches(String label)Checks the label against the current search setup.voidsearch(String search, boolean isRegExp)Initiates the search.protected booleanselectPropertyPath(Node parent, String[] path, int index)Attempts to select the specified property path.booleanselectPropertyPath(String[] path)Attempts to select the specified property path.voidsetObject(Object value)Sets the object to display.protected voidshowPopup(MouseEvent e)Brings up a popup menu.voidtreeCollapsed(TreeExpansionEvent event)Called whenever an item in the tree has been collapsed.voidtreeExpanded(TreeExpansionEvent event)Called whenever an item in the tree has been expanded.voidtreeWillCollapse(TreeExpansionEvent event)Invoked whenever a node in the tree is about to be collapsed.voidtreeWillExpand(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:
treeWillExpandin interfaceTreeWillExpandListener- Parameters:
event- aTreeExpansionEventcontaining aTreePathobject 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:
treeWillCollapsein interfaceTreeWillExpandListener- Parameters:
event- aTreeExpansionEventcontaining aTreePathobject 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:
treeExpandedin interfaceTreeExpansionListener- Parameters:
event- aTreeExpansionEventcontaining aTreePathobject for the expanded node
-
treeCollapsed
public void treeCollapsed(TreeExpansionEvent event)
Called whenever an item in the tree has been collapsed.- Specified by:
treeCollapsedin interfaceTreeExpansionListener- Parameters:
event- aTreeExpansionEventcontaining aTreePathobject for the collapsed node
-
-