edu.sdsc.grid.gui
Class JargonTree

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTree
                  extended by edu.sdsc.grid.gui.JargonTree
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.Scrollable

public class JargonTree
extends javax.swing.JTree
implements java.awt.event.ActionListener

A utility class which creates a JTree using the Jargon GUI package. This "Browsable DataGrid Tree" uses the JargonTreeModel, JargonTreeCellRenderer, JargonTreeCellEditor.

This class can be used as is, to create a generic grid enabled file browser. Also this class is meant to provide example code for those intending to create their own customized grid enabled file browser.

Since:
JARGON1.5
See Also:
JargonTreeModel, JargonTreeCellRenderer, JargonTreeCellEditor, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTree
javax.swing.JTree.AccessibleJTree, javax.swing.JTree.DropLocation, javax.swing.JTree.DynamicUtilTreeNode, javax.swing.JTree.EmptySelectionModel, javax.swing.JTree.TreeModelHandler, javax.swing.JTree.TreeSelectionRedirector
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.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
accessibleContext, 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
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
JargonTree(GeneralFile root)
          Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor.
JargonTree(GeneralFile[] roots)
          Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor.
JargonTree(GeneralFile[] roots, MetaDataCondition[] conditions, MetaDataSelect[] selects)
          Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor.
JargonTree(GeneralFile[] roots, MetaDataSelect[] selects)
          Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor.
JargonTree(GeneralFile root, MetaDataCondition[] conditions, MetaDataSelect[] selects)
          Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor.
JargonTree(GeneralFile root, MetaDataSelect[] selects)
          Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Defines the default ActionEvents.
protected  void finalize()
          Finalizes the object by explicitly letting go of each of its internally held values.
 GeneralFile getRoot(int index)
          The (sub-)roots of this JTree.
 GeneralFile[] getRoots()
          The (sub-)roots of this JTree.
 MetaDataSelect[] getSelects()
          Returns the MetaDataSelects.
static void main(java.lang.String[] args)
          Stand alone testing.
 void refresh(javax.swing.tree.TreePath path)
          Reload the tree model from the filesystem.
 void useDefaultPopupMenu(boolean useDefault)
          If true, the default popup menu will be displayed.
 
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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JargonTree

public JargonTree(GeneralFile root)
           throws java.io.IOException
Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor.

Throws:
java.io.IOException

JargonTree

public JargonTree(GeneralFile[] roots)
           throws java.io.IOException
Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor. Each GeneralFile is used as the root of a subtree.

Throws:
java.io.IOException

JargonTree

public JargonTree(GeneralFile root,
                  MetaDataSelect[] selects)
           throws java.io.IOException
Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor. Metadata values, as selected by the selects will be displayed when available.

Throws:
java.io.IOException

JargonTree

public JargonTree(GeneralFile[] roots,
                  MetaDataSelect[] selects)
           throws java.io.IOException
Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor. Each GeneralFile is used as the root of a subtree. For example, both the root of a local filesystem and the SRB root could be displayed in a single JTree.

Metadata values, as selected by the selects will be displayed when available.

Throws:
java.io.IOException

JargonTree

public JargonTree(GeneralFile root,
                  MetaDataCondition[] conditions,
                  MetaDataSelect[] selects)
           throws java.io.IOException
Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor. Metadata values, as selected by the selects will be displayed when available. Only those files which satisfy the query conditions will be displayed.

Throws:
java.io.IOException

JargonTree

public JargonTree(GeneralFile[] roots,
                  MetaDataCondition[] conditions,
                  MetaDataSelect[] selects)
           throws java.io.IOException
Creates a new JTree using the JargonTreeModel, JargonTreeCellRenderer and JargonTreeCellEditor. Each GeneralFile is used as the root of a subtree. For example, both the root of a local filesystem and the SRB root could be displayed in a single JTree.

Metadata values, as selected by the selects will be displayed when available. Only those files which satisfy the query conditions will be displayed.

Throws:
java.io.IOException
Method Detail

finalize

protected void finalize()
                 throws java.lang.Throwable
Finalizes the object by explicitly letting go of each of its internally held values.

Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable

getRoot

public GeneralFile getRoot(int index)
The (sub-)roots of this JTree. JargonTree's can display more then one filesystem tree structure.


getRoots

public GeneralFile[] getRoots()
The (sub-)roots of this JTree. JargonTree's can display more then one filesystem tree structure.


getSelects

public MetaDataSelect[] getSelects()
Returns the MetaDataSelects. The metadata values displayed inline in the tree.


useDefaultPopupMenu

public void useDefaultPopupMenu(boolean useDefault)
If true, the default popup menu will be displayed. The event that causes the popup to display is system dependant. Default setting is false.

The default menu includes the menu options:
Refresh - reloads this tree from the filesystem
Query - Opens the query panel using the selected treenode to form the initial query conditions.
Copy - Copy the abstract pathname of the selected node into the copyBuffer.
Paste - Copy the file pointed to by the copyBuffer to the selected node.
Delete - Delete the selected node from the filesystem.

See Also:
MouseEvent.isPopupTrigger()

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Defines the default ActionEvents.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

refresh

public void refresh(javax.swing.tree.TreePath path)
             throws java.io.IOException
Reload the tree model from the filesystem. Clear any stored data. Used by delete and paste to reflect those changes.

Parameters:
path - expands the tree at this treepath
Throws:
java.io.IOException

main

public static void main(java.lang.String[] args)
Stand alone testing.