public class ContainerTree
extends javax.swing.JTree
Modifier and Type | Class and Description |
---|---|
private static class |
ContainerTree.NodeRenderer |
class |
ContainerTree.WidgetWrapper
Wrapper class to help store
Widget references
in the tree component. |
javax.swing.JTree.AccessibleJTree, javax.swing.JTree.DropLocation, javax.swing.JTree.DynamicUtilTreeNode, javax.swing.JTree.EmptySelectionModel, javax.swing.JTree.TreeModelHandler, javax.swing.JTree.TreeSelectionRedirector
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
private java.awt.event.ActionListener |
actionListener
Event listener.
|
private Container<?> |
container
The root container.
|
private java.lang.Iterable<java.lang.String> |
inclusions
The property table inclusion strings.
|
private boolean |
showFullClassName
Full class names flag.
|
private PropertyTable |
table
Related property table components.
|
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
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
ContainerTree(Container<?> container,
PropertyTable table)
The constructor.
|
Modifier and Type | Method and Description |
---|---|
private javax.swing.tree.DefaultMutableTreeNode |
buildTreeModel(Container<?> container)
The worker method responsible for building the tree nodes in the tree component.
|
private java.lang.String |
buildWidgetQualifier(Widget<?> widget)
Build widget qualifier uniquely identifying its position
in the object tree.
|
void |
collapseAll()
Collapse all tree nodes.
|
void |
copyPropertiesToClipboard()
Copies the filtered properties to system clipboard recursively starting
from the selected node.
|
private void |
dumpProperties(java.util.List<Widget<?>> widgets,
java.lang.StringBuilder sb)
Recursively dumps widget properties to the passed-in string builder.
|
void |
expandAll()
Expand all tree nodes.
|
private void |
expandRows(java.util.List<javax.swing.tree.TreePath> paths)
Expand the supplied tree paths.
|
private static java.util.SortedMap<java.lang.String,java.lang.Object> |
filterProperties(java.util.SortedMap<java.lang.String,java.lang.Object> props,
java.lang.Iterable<java.lang.String> inclusions)
Filters the passed in map of properties.
|
javax.swing.tree.TreePath |
findNode(Widget<?> subject)
Returns the related tree path for the supplied widget.
|
private java.util.List<javax.swing.tree.TreePath> |
findNodes(java.util.List<Widget<?>> subjects)
Finds tree paths for the supplied list of widgets.
|
private void |
findNodes(javax.swing.tree.TreeModel model,
java.lang.Object node,
java.util.List<Widget<?>> subjects,
java.util.List<javax.swing.tree.TreePath> output)
Recursively finds tree paths for the supplied list of widgets.
|
private java.lang.String |
formatValue(java.lang.Object obj)
Formats the supplied reference into a string.
|
private java.lang.String |
formatWidget(Widget<?> widget)
Formats the supplied reference into a string.
|
private void |
getAllFields(java.util.Map<java.lang.String,java.lang.Object> result,
java.lang.String namespace,
java.lang.Object ref)
Gathers all
ref 's fields and puts them into result . |
private java.util.List<Widget<?>> |
getExpandedWidgets()
Returns the list of expanded widgets in the tree.
|
private java.util.SortedMap<java.lang.String,java.lang.Object> |
getWidgetProperties(Widget<?> widget,
java.lang.Iterable<java.lang.String> inclusions)
Builds map of properties to display in the property table.
|
boolean |
isSelected(Widget<?> widget)
Checks whether the supplied node is selected.
|
boolean |
isShowFullClassName()
Returns the state of show full class names flag.
|
void |
refresh()
Refreshes (rebuilds) the tree nodes.
|
void |
refreshPropertyTable()
Refreshes the property table associated with this tree component.
|
void |
setActionListener(java.awt.event.ActionListener actionListener)
Sets the event listener.
|
void |
setPropertyInclusions(java.lang.Iterable<java.lang.String> inclusions)
Setter for the property inclusions.
|
void |
setShowFullClassName(boolean showFullClassName)
Sets the state of show full class names flag.
|
private javax.swing.tree.DefaultMutableTreeNode |
sortNodes(javax.swing.tree.DefaultMutableTreeNode node)
Sorts the tree nodes.
|
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
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
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
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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private boolean showFullClassName
private java.awt.event.ActionListener actionListener
private PropertyTable table
private java.lang.Iterable<java.lang.String> inclusions
private Container<?> container
public ContainerTree(Container<?> container, PropertyTable table)
container
- The root container.table
- The related property table component.public void setActionListener(java.awt.event.ActionListener actionListener)
actionListener
- Valid ActionListener
reference.public boolean isShowFullClassName()
public void setShowFullClassName(boolean showFullClassName)
showFullClassName
- The show full class name flag.public void setPropertyInclusions(java.lang.Iterable<java.lang.String> inclusions)
inclusions
- The setter value.public void refresh()
public void refreshPropertyTable()
public void collapseAll()
public void expandAll()
public javax.swing.tree.TreePath findNode(Widget<?> subject)
subject
- The Widget
reference.TreePath
instance or null
if not found.public boolean isSelected(Widget<?> widget)
widget
- The Widget
reference.true
if selected, false
otherwise.public void copyPropertiesToClipboard()
private void dumpProperties(java.util.List<Widget<?>> widgets, java.lang.StringBuilder sb)
widgets
- The widgets from where (including) to start dumping the properties.sb
- A valid string builder reference.private java.lang.String buildWidgetQualifier(Widget<?> widget)
widget
- A valid widget reference.private javax.swing.tree.DefaultMutableTreeNode buildTreeModel(Container<?> container)
container
- The root container.private javax.swing.tree.DefaultMutableTreeNode sortNodes(javax.swing.tree.DefaultMutableTreeNode node)
node
- The tree node where to start the sort.private java.util.List<Widget<?>> getExpandedWidgets()
private void expandRows(java.util.List<javax.swing.tree.TreePath> paths)
paths
- List of tree paths.private java.util.List<javax.swing.tree.TreePath> findNodes(java.util.List<Widget<?>> subjects)
subjects
- List of Widget
references.TreePath
references.private void findNodes(javax.swing.tree.TreeModel model, java.lang.Object node, java.util.List<Widget<?>> subjects, java.util.List<javax.swing.tree.TreePath> output)
model
- TreeModel
reference.node
- The root node.subjects
- List of Widget
references.output
- A valid instance of List of TreePath
references where to store the result.private java.util.SortedMap<java.lang.String,java.lang.Object> getWidgetProperties(Widget<?> widget, java.lang.Iterable<java.lang.String> inclusions)
The caller can pass a collection of inclusion patterns. An inclusion pattern is a string that may contain a wildcard character at the beginning or end of the string. Properties that match any of the inclusion patterns are returned.
widget
- The widget instance which will be introspected for properties.inclusions
- The collection of inclusion patterns. May be null or empty,
in which case all properties are returned.private void getAllFields(java.util.Map<java.lang.String,java.lang.Object> result, java.lang.String namespace, java.lang.Object ref)
ref
's fields and puts them into result
.
Field name is used the key into the map. If namespace
is non-empty,
the key is prepended with its value.result
- The result map where the ref's field name-values are stored.namespace
- The string to be prepended with the field names to form a "compound"
key in the resulting map. May be null.ref
- The object whose fields are introspected.private static java.util.SortedMap<java.lang.String,java.lang.Object> filterProperties(java.util.SortedMap<java.lang.String,java.lang.Object> props, java.lang.Iterable<java.lang.String> inclusions)
props
- The property map.inclusions
- The inclusion patterns applied to the property map.private java.lang.String formatValue(java.lang.Object obj)
obj
- A reference, may be null
.