simtools.ui
Class SourceTree

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 simtools.ui.SourceTree
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, DataSourcePoolListener
Direct Known Subclasses:
SourceTree

public class SourceTree
extends javax.swing.JTree
implements DataSourcePoolListener, java.awt.event.ActionListener

Tree widget specialized in displaying data sources. Uses and listens to the data source pool of JSynoptic.

Version:
1.0 2001
Author:
Nicolas Brodu
See Also:
Serialized Form

Nested Class Summary
protected  class SourceTree.CollectionNode
           
protected  class SourceTree.CompoundCollectionNode
           
protected  class SourceTree.CompoundSourceNode
           
protected  class SourceTree.LockableTreeNode
           
protected  class SourceTree.SourceNode
           
protected  class SourceTree.SourceTransferable
           
protected  class SourceTree.SourceTransferHandler
           
 
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
protected  double actionX
           
protected  double actionY
           
protected  DataSourcePool pool
           
protected  javax.swing.tree.DefaultMutableTreeNode rootNode
           
protected  javax.swing.JMenuItem sourceDelete
           
protected  javax.swing.JMenuItem sourceInfo
           
protected static java.lang.Class sourceTreeClass
           
protected static java.util.HashMap sourceTreePool
           
protected  javax.swing.tree.DefaultTreeModel treeModel
           
 
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, 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
SourceTree()
           
SourceTree(DataSourcePool pool)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
           
protected  void addCollection(DataSourceCollection dsc)
           
protected  void addSource(DataSource ds)
           
protected  void changeCollection(DataSourceCollection dsc, DataSourceCollection old)
           
protected  void changeSource(DataSource ds, DataSource old)
           
protected  javax.swing.tree.TreeCellRenderer createRenderer()
          For subclasses to specialize
 void dataSourcePoolNotification(DataSourcePoolEvent e)
           
protected  void doPopup(int x, int y)
          For subclasses to specialize.
static SourceTree getFromPool(java.lang.String id)
          A pool of source tree to reduce memory foot print Keep in mind that each JComponent can be displayed only one time
 java.lang.Object getSelectedSourceOrCollection()
           
 boolean isLocked(java.lang.Object o)
          Checks if a Data Source or Data Source Collection is locked
 void lock(java.lang.Object o)
          Locks a Data Source or Data Source Collection The lock can be removed with the unlock function A locked Data Source or Collection cannot be used
protected  boolean recursiveIsLocked(javax.swing.tree.DefaultMutableTreeNode n, java.lang.Object o)
          Runs through the tree to check if a source or collection is lock or unlocked
protected  void recursiveLock(javax.swing.tree.DefaultMutableTreeNode n, java.lang.Object o, boolean state)
          Runs through the tree to lock or unlock Nodes
 void reload()
           
 void removeAllTreeSelectionListeners()
           
protected  void removeNodesWithUserObject(java.lang.Object o)
          Iterates over the root node children and removes those with the specified user object
 void setSelectedValue(java.lang.Object o)
          Select the given user object in the tree, if it exists.
 void setSelectedValueById(java.lang.String id)
          Select the given source or collection in the tree, if it exists, using its id.
 void unlock(java.lang.Object o)
          Unlocks a Data Source or Data Source Collection
 
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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pool

protected DataSourcePool pool

rootNode

protected javax.swing.tree.DefaultMutableTreeNode rootNode

treeModel

protected javax.swing.tree.DefaultTreeModel treeModel

sourceInfo

protected javax.swing.JMenuItem sourceInfo

sourceDelete

protected javax.swing.JMenuItem sourceDelete

actionX

protected double actionX

actionY

protected double actionY

sourceTreePool

protected static java.util.HashMap sourceTreePool

sourceTreeClass

protected static java.lang.Class sourceTreeClass
Constructor Detail

SourceTree

public SourceTree(DataSourcePool pool)

SourceTree

public SourceTree()
Method Detail

getFromPool

public static SourceTree getFromPool(java.lang.String id)
A pool of source tree to reduce memory foot print Keep in mind that each JComponent can be displayed only one time

Parameters:
id - an identifier to define the reuse or not from the pool
Returns:
the source tree

setSelectedValue

public void setSelectedValue(java.lang.Object o)
Select the given user object in the tree, if it exists. Default SourceTree implementation only contains data source and collections, but any object is accepted (nothing will happen if it is not found).


setSelectedValueById

public void setSelectedValueById(java.lang.String id)
Select the given source or collection in the tree, if it exists, using its id.


recursiveLock

protected void recursiveLock(javax.swing.tree.DefaultMutableTreeNode n,
                             java.lang.Object o,
                             boolean state)
Runs through the tree to lock or unlock Nodes


lock

public void lock(java.lang.Object o)
Locks a Data Source or Data Source Collection The lock can be removed with the unlock function A locked Data Source or Collection cannot be used

Parameters:
o - The data source or data source collection to lock

unlock

public void unlock(java.lang.Object o)
Unlocks a Data Source or Data Source Collection

Parameters:
o - The data source or data source collection to lock

isLocked

public boolean isLocked(java.lang.Object o)
Checks if a Data Source or Data Source Collection is locked

Parameters:
o - The data source or data source collection to look at

recursiveIsLocked

protected boolean recursiveIsLocked(javax.swing.tree.DefaultMutableTreeNode n,
                                    java.lang.Object o)
Runs through the tree to check if a source or collection is lock or unlocked


doPopup

protected void doPopup(int x,
                       int y)
For subclasses to specialize. Does nothing by default.


removeNodesWithUserObject

protected void removeNodesWithUserObject(java.lang.Object o)
Iterates over the root node children and removes those with the specified user object


addSource

protected void addSource(DataSource ds)

addCollection

protected void addCollection(DataSourceCollection dsc)

changeSource

protected void changeSource(DataSource ds,
                            DataSource old)

changeCollection

protected void changeCollection(DataSourceCollection dsc,
                                DataSourceCollection old)

getSelectedSourceOrCollection

public java.lang.Object getSelectedSourceOrCollection()

dataSourcePoolNotification

public void dataSourcePoolNotification(DataSourcePoolEvent e)
Specified by:
dataSourcePoolNotification in interface DataSourcePoolListener

reload

public void reload()

removeAllTreeSelectionListeners

public void removeAllTreeSelectionListeners()

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

createRenderer

protected javax.swing.tree.TreeCellRenderer createRenderer()
For subclasses to specialize