public class TreePanel extends javax.swing.JPanel implements javax.swing.event.TreeSelectionListener
Modifier and Type | Class and Description |
---|---|
private static class |
TreePanel.MyTreeNode
TreeNode extensions that allows us to associate an icon with this node.
|
javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.awt.Component> |
catComponents
_more_
|
static java.lang.String |
CATEGORY_DELIMITER |
private java.util.Map<java.lang.String,javax.swing.tree.DefaultMutableTreeNode> |
catToNode
Maps categories to tree node.
|
private java.util.Map<java.awt.Component,javax.swing.tree.DefaultMutableTreeNode> |
compToNode
Maps components to tree node.
|
private javax.swing.JPanel |
emptyPanel
_more_
|
private boolean |
okToSave
Whether or not it is okay to save.
|
private boolean |
okToUpdateTree
Okay to respond to selection changes.
|
private ucar.unidata.util.GuiUtils.CardLayoutPanel |
panel
The panel.
|
private javax.swing.tree.DefaultMutableTreeNode |
root
The root.
|
private javax.swing.JTree |
tree
The tree.
|
private javax.swing.tree.DefaultTreeModel |
treeModel
The model.
|
private javax.swing.JScrollPane |
treeView
The scroller.
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
TreePanel()
Default constructor.
|
TreePanel(boolean useSplitPane,
int treeWidth)
Constructor that actually does the work.
|
Modifier and Type | Method and Description |
---|---|
void |
addCategoryComponent(java.lang.String cat,
javax.swing.JComponent comp)
_more_
|
void |
addComponent(javax.swing.JComponent component,
java.lang.String category,
java.lang.String label,
javax.swing.ImageIcon icon)
Add the component to the panel.
|
void |
closeAll()
Close all tree paths.
|
static javax.swing.tree.TreePath |
findByName(javax.swing.JTree tree,
java.util.List<java.lang.String> names) |
static javax.swing.tree.DefaultMutableTreeNode |
findNodeByPath(javax.swing.JTree tree,
java.lang.String path) |
static java.lang.String |
getPath(javax.swing.tree.DefaultMutableTreeNode node) |
private static javax.swing.tree.TreePath |
getPathToFirstLeaf(javax.swing.tree.TreePath searchPath) |
java.awt.Component |
getVisibleComponent() |
private java.lang.String |
loadSavedPath() |
void |
openAll()
Open all tree paths.
|
void |
removeComponent(javax.swing.JComponent component)
_more_
|
private void |
saveCurrentPath(javax.swing.tree.DefaultMutableTreeNode node) |
private static javax.swing.tree.TreePath |
searchTree(javax.swing.tree.TreePath parent,
java.util.List<java.lang.String> nodes,
int depth) |
void |
setIcon(java.awt.Component comp,
javax.swing.ImageIcon icon)
Associate an icon with a component.
|
void |
show(java.awt.Component component)
Show the given
component . |
void |
showPath(java.awt.Component component)
Show the tree node that corresponds to the component.
|
void |
showPersistedSelection()
Attempts to select the path from a previous McIDAS-V session.
|
static java.util.List<java.lang.String> |
tokenizePath(java.lang.String path) |
private void |
treeChanged() |
void |
valueChanged(javax.swing.event.TreeSelectionEvent e)
Handle tree selection changed.
|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, 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
public static final java.lang.String CATEGORY_DELIMITER
private final javax.swing.tree.DefaultMutableTreeNode root
private final javax.swing.tree.DefaultTreeModel treeModel
private final javax.swing.JTree tree
private final javax.swing.JScrollPane treeView
private ucar.unidata.util.GuiUtils.CardLayoutPanel panel
private final javax.swing.JPanel emptyPanel
private final java.util.Map<java.lang.String,java.awt.Component> catComponents
private final java.util.Map<java.lang.String,javax.swing.tree.DefaultMutableTreeNode> catToNode
private final java.util.Map<java.awt.Component,javax.swing.tree.DefaultMutableTreeNode> compToNode
private boolean okToUpdateTree
private boolean okToSave
public TreePanel()
TreePanel(boolean, int)
with
useSplitPane
set to true
and treeWidth
set to
-1
.public TreePanel(boolean useSplitPane, int treeWidth)
useSplitPane
- Whether or not to use a split pane.treeWidth
- Width of the component containing the tree.public java.awt.Component getVisibleComponent()
public void valueChanged(javax.swing.event.TreeSelectionEvent e)
valueChanged
in interface javax.swing.event.TreeSelectionListener
e
- Event to handle. Cannot be null
.public void setIcon(java.awt.Component comp, javax.swing.ImageIcon icon)
comp
- Component to associate with icon
.icon
- Icon to associate with comp
. Should not be
null
.public void addComponent(javax.swing.JComponent component, java.lang.String category, java.lang.String label, javax.swing.ImageIcon icon)
component
- componentcategory
- tree category. May be null.label
- Tree node labelicon
- Node icon. May be null.private void treeChanged()
public void addCategoryComponent(java.lang.String cat, javax.swing.JComponent comp)
cat
- _more_comp
- _more_public void removeComponent(javax.swing.JComponent component)
component
- _more_public void show(java.awt.Component component)
component
.component
- Component to show. Should not be null
.public void showPath(java.awt.Component component)
component
- Component whose corresponding tree node to show. Should not be null
.public void openAll()
public void closeAll()
public void showPersistedSelection()
This method also sets okToSave
to true
, so that
user selections can be captured after this method quits.
private void saveCurrentPath(javax.swing.tree.DefaultMutableTreeNode node)
private java.lang.String loadSavedPath()
public static java.util.List<java.lang.String> tokenizePath(java.lang.String path)
public static java.lang.String getPath(javax.swing.tree.DefaultMutableTreeNode node)
public static javax.swing.tree.DefaultMutableTreeNode findNodeByPath(javax.swing.JTree tree, java.lang.String path)
public static javax.swing.tree.TreePath findByName(javax.swing.JTree tree, java.util.List<java.lang.String> names)
private static javax.swing.tree.TreePath searchTree(javax.swing.tree.TreePath parent, java.util.List<java.lang.String> nodes, int depth)
private static javax.swing.tree.TreePath getPathToFirstLeaf(javax.swing.tree.TreePath searchPath)