org.embl.ebi.escience.scuflui
Class ScuflSVGDiagram

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.embl.ebi.escience.scuflui.ScuflSVGDiagram
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, ScuflModelEventListener, UIComponentSPI, WorkflowModelViewSPI

public class ScuflSVGDiagram
extends javax.swing.JComponent
implements ScuflModelEventListener, WorkflowModelViewSPI

An SVG based version of the ScuflDiagram

Author:
Tom Oinn
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
 
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
ScuflSVGDiagram()
           
ScuflSVGDiagram(boolean withStatusBar, boolean withScrollbars)
           
 
Method Summary
 void attachToModel(ScuflModel model)
          Directs the implementing component to bind to the specified ScuflModel instance, refresh its internal state from the model and commence listening to events, maintaining its state as these events dictate.
 void detachFromModel()
          Directs the implementing component to detach from the model, set its internal state to some suitable blank (i.e.
 java.lang.String getDot()
           
 DotView getDotView()
           
 javax.swing.ImageIcon getIcon()
          Get an icon to be used in window decorations for this component.
 java.lang.String getName()
          Get the preferred name of this component, for titles in windows etc.
static org.w3c.dom.svg.SVGDocument getSVG(java.lang.String dotText)
           
 boolean isFitToWindow()
          If diagram should be rescaled when resizing panel
 void onDisplay()
          Called when the component is displayed in the UI
 void onDispose()
          Called after the component has been removed from the UI
 void receiveModelEvent(ScuflModelEvent event)
           
 void setFitToWindow(boolean fitToWindow)
          Enable automatic rescale on resize of panel.
 void updateGraphic()
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, 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, updateUI
 
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
 

Constructor Detail

ScuflSVGDiagram

public ScuflSVGDiagram()

ScuflSVGDiagram

public ScuflSVGDiagram(boolean withStatusBar,
                       boolean withScrollbars)
Method Detail

getDot

public java.lang.String getDot()

getDotView

public DotView getDotView()

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

attachToModel

public void attachToModel(ScuflModel model)
Description copied from interface: WorkflowModelViewSPI
Directs the implementing component to bind to the specified ScuflModel instance, refresh its internal state from the model and commence listening to events, maintaining its state as these events dictate.

Specified by:
attachToModel in interface WorkflowModelViewSPI

detachFromModel

public void detachFromModel()
Description copied from interface: WorkflowModelViewSPI
Directs the implementing component to detach from the model, set its internal state to some suitable blank (i.e. blank image, no text in a text field etc) and desist from listening to model events.

Specified by:
detachFromModel in interface WorkflowModelViewSPI

getName

public java.lang.String getName()
Description copied from interface: UIComponentSPI
Get the preferred name of this component, for titles in windows etc.

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

receiveModelEvent

public void receiveModelEvent(ScuflModelEvent event)
Specified by:
receiveModelEvent in interface ScuflModelEventListener

updateGraphic

public void updateGraphic()

getSVG

public static org.w3c.dom.svg.SVGDocument getSVG(java.lang.String dotText)
                                          throws java.io.IOException
Throws:
java.io.IOException

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

isFitToWindow

public boolean isFitToWindow()
If diagram should be rescaled when resizing panel

Returns:
true if the diagram should be rescaled

setFitToWindow

public void setFitToWindow(boolean fitToWindow)
Enable automatic rescale on resize of panel.

Parameters:
fitToWindow - true if the diagram should be rescaled