org.embl.ebi.escience.scuflui.workbench
Class DefaultScavengerTree

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 org.embl.ebi.escience.scuflui.shared.ExtendedJTree
                      extended by org.embl.ebi.escience.scuflui.workbench.DefaultScavengerTree
All Implemented Interfaces:
java.awt.dnd.DragGestureListener, java.awt.dnd.DragSourceListener, java.awt.dnd.DropTargetListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.Scrollable, UIComponentSPI, WorkflowModelViewSPI, ScavengerTree

public class DefaultScavengerTree
extends ExtendedJTree
implements WorkflowModelViewSPI, ScavengerTree

A JTree subclass showing available processors from some set of external libraries or searches. Nodes corresponding to a single potential processor instance should contain a user object implementing ProcessorFactory.

Author:
Tom Oinn
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTree
javax.swing.JTree.DynamicUtilTreeNode
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
 
Fields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, LARGE_MODEL_PROPERTY, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, ROW_HEIGHT_PROPERTY, SCROLLS_ON_EXPAND_PROPERTY, SELECTION_MODEL_PROPERTY, SHOWS_ROOT_HANDLES_PROPERTY, TOGGLE_CLICK_COUNT_PROPERTY, TREE_MODEL_PROPERTY, VISIBLE_ROW_COUNT_PROPERTY
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
DefaultScavengerTree(boolean populate, ScavengerTreePanel parentPanel)
          Create a new scavenger tree, if the boolean 'populate' flag is true then load the default service set from the system properties, otherwise start with a completely blank panel.
 
Method Summary
 void addScavenger(Scavenger theScavenger)
          Add a new scavenger to the tree, firing appropriate model events as we do.
 void addScavengersFromModel()
          Examine the model, create any scavengers that would have been required to populate the model with its existing processors.
 void attachToModel(ScuflModel theModel)
          Listen for model bind requests to set the internal ScuflModel field
 void detachFromModel()
          When unbound from a model, set internal model field to null
 void dragDropEnd(java.awt.dnd.DragSourceDropEvent e)
           
 void dragEnter(java.awt.dnd.DragSourceDragEvent e)
           
 void dragEnter(java.awt.dnd.DropTargetDragEvent e)
           
 void dragExit(java.awt.dnd.DragSourceEvent e)
           
 void dragExit(java.awt.dnd.DropTargetEvent e)
           
 void dragGestureRecognized(java.awt.dnd.DragGestureEvent e)
          Recognize the drag gesture, only allow if there's a processor factory node here, and export the XML fragment from the node as the transferable
 void dragOver(java.awt.dnd.DragSourceDragEvent e)
           
 void dragOver(java.awt.dnd.DropTargetDragEvent e)
           
 void drop(java.awt.dnd.DropTargetDropEvent e)
           
 void dropActionChanged(java.awt.dnd.DragSourceDragEvent e)
           
 void dropActionChanged(java.awt.dnd.DropTargetDragEvent e)
           
 javax.swing.ImageIcon getIcon()
          Get an icon to be used in window decorations for this component.
 java.lang.String getName()
          Return an apppropriate title for windows
 int getNextCount()
          Get the next available count and increment the counter
 ScavengerTreePanel getParentPanel()
           
 boolean isPopulating()
           
 void onDisplay()
          Called when the component is displayed in the UI
 void onDispose()
          Called after the component has been removed from the UI
 void scavengingDone()
          Notifies the end of scavenging.
 void scavengingStarting(java.lang.String message)
          Notifies the start of scavenging.
 void setPopulating(boolean populating)
           
 
Methods inherited from class org.embl.ebi.escience.scuflui.shared.ExtendedJTree
getContainingFrame, jumpToAndHighlight, setExpansion, setPattern
 
Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, collapsePath, collapseRow, convertValueToText, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDragEnabled, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, 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, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setCellRenderer, setDragEnabled, setEditable, 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, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, 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, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, 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, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.embl.ebi.escience.scuflui.workbench.ScavengerTree
getContainingFrame, getModel
 

Constructor Detail

DefaultScavengerTree

public DefaultScavengerTree(boolean populate,
                            ScavengerTreePanel parentPanel)
Create a new scavenger tree, if the boolean 'populate' flag is true then load the default service set from the system properties, otherwise start with a completely blank panel.

Method Detail

getParentPanel

public ScavengerTreePanel getParentPanel()

setPopulating

public void setPopulating(boolean populating)
Specified by:
setPopulating in interface ScavengerTree

isPopulating

public boolean isPopulating()
Specified by:
isPopulating in interface ScavengerTree

getNextCount

public int getNextCount()
Description copied from interface: ScavengerTree
Get the next available count and increment the counter

Specified by:
getNextCount in interface ScavengerTree

scavengingStarting

public void scavengingStarting(java.lang.String message)
Description copied from interface: ScavengerTree
Notifies the start of scavenging.

Specified by:
scavengingStarting in interface ScavengerTree
Parameters:
message - the message to display

scavengingDone

public void scavengingDone()
Description copied from interface: ScavengerTree
Notifies the end of scavenging.

Specified by:
scavengingDone in interface ScavengerTree

dragGestureRecognized

public void dragGestureRecognized(java.awt.dnd.DragGestureEvent e)
Recognize the drag gesture, only allow if there's a processor factory node here, and export the XML fragment from the node as the transferable

Specified by:
dragGestureRecognized in interface java.awt.dnd.DragGestureListener

dragDropEnd

public void dragDropEnd(java.awt.dnd.DragSourceDropEvent e)
Specified by:
dragDropEnd in interface java.awt.dnd.DragSourceListener

dragEnter

public void dragEnter(java.awt.dnd.DragSourceDragEvent e)
Specified by:
dragEnter in interface java.awt.dnd.DragSourceListener

dragExit

public void dragExit(java.awt.dnd.DragSourceEvent e)
Specified by:
dragExit in interface java.awt.dnd.DragSourceListener

dragOver

public void dragOver(java.awt.dnd.DragSourceDragEvent e)
Specified by:
dragOver in interface java.awt.dnd.DragSourceListener

dropActionChanged

public void dropActionChanged(java.awt.dnd.DragSourceDragEvent e)
Specified by:
dropActionChanged in interface java.awt.dnd.DragSourceListener

dragEnter

public void dragEnter(java.awt.dnd.DropTargetDragEvent e)
Specified by:
dragEnter in interface java.awt.dnd.DropTargetListener

dragExit

public void dragExit(java.awt.dnd.DropTargetEvent e)
Specified by:
dragExit in interface java.awt.dnd.DropTargetListener

dragOver

public void dragOver(java.awt.dnd.DropTargetDragEvent e)
Specified by:
dragOver in interface java.awt.dnd.DropTargetListener

dropActionChanged

public void dropActionChanged(java.awt.dnd.DropTargetDragEvent e)
Specified by:
dropActionChanged in interface java.awt.dnd.DropTargetListener

drop

public void drop(java.awt.dnd.DropTargetDropEvent e)
Specified by:
drop in interface java.awt.dnd.DropTargetListener

addScavengersFromModel

public void addScavengersFromModel()
                            throws ScavengerCreationException
Description copied from interface: ScavengerTree
Examine the model, create any scavengers that would have been required to populate the model with its existing processors. Now handles all three processor types.

Specified by:
addScavengersFromModel in interface ScavengerTree
Throws:
ScavengerCreationException

addScavenger

public void addScavenger(Scavenger theScavenger)
Description copied from interface: ScavengerTree
Add a new scavenger to the tree, firing appropriate model events as we do.

Specified by:
addScavenger in interface ScavengerTree

attachToModel

public void attachToModel(ScuflModel theModel)
Listen for model bind requests to set the internal ScuflModel field

Specified by:
attachToModel in interface WorkflowModelViewSPI

detachFromModel

public void detachFromModel()
When unbound from a model, set internal model field to null

Specified by:
detachFromModel in interface WorkflowModelViewSPI

getName

public java.lang.String getName()
Return an apppropriate title for windows

Specified by:
getName in interface UIComponentSPI
Overrides:
getName in class java.awt.Component

getIcon

public javax.swing.ImageIcon getIcon()
Description copied from interface: UIComponentSPI
Get an icon to be used in window decorations for this component.

Specified by:
getIcon in interface UIComponentSPI

onDisplay

public void onDisplay()
Description copied from interface: UIComponentSPI
Called when the component is displayed in the UI

Specified by:
onDisplay in interface UIComponentSPI

onDispose

public void onDispose()
Description copied from interface: UIComponentSPI
Called after the component has been removed from the UI

Specified by:
onDispose in interface UIComponentSPI