public class EditableDiagram extends Diagram implements WorkflowEditListener, java.awt.dnd.Autoscroll, java.awt.dnd.DropTargetListener, java.lang.Runnable, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, DnDContainer
This class displays allows editing of a workflow diagram via an associated workflow editor
javax.swing.JPanel.AccessibleJPaneljavax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
protected WorkflowApplet |
applet |
protected java.util.Hashtable |
cursors
The table of cursors for nodes , lines etc
|
protected DiagramEvent |
delayedEvent |
protected java.awt.Point |
dragStart |
protected int |
dropAction |
protected java.awt.Point |
dropLocation |
protected java.awt.dnd.DropTarget |
dropTarget |
protected boolean |
editable |
protected WorkflowEditor |
editor |
static java.lang.String |
ITEM_DRAW_LINE |
static java.lang.String |
ITEM_DRAW_NEGATIVE_LINE |
static java.lang.String |
ITEM_LINE |
static java.lang.String |
ITEM_NODE |
static java.lang.String |
ITEM_NORMAL |
static java.lang.String |
ITEM_TASK |
protected int |
mode
The diagram mode which is normal, draw line or draw negative line
|
static int |
MODE_DRAW_LINE |
static int |
MODE_DRAW_NEGATIVE_LINE |
static int |
MODE_NORMAL |
protected WorkflowNodeProxy |
proxy |
protected static int |
SCROLL_INCREMENT |
protected static int |
SCROLL_MARGIN |
protected javax.swing.JScrollPane |
scrollPane |
protected java.util.Hashtable |
tooltips
table of tooltips for nodes , lines etc
|
channels, channelSet, columnCount, columns, configuration, curvePoints, DASH_LENGTH, dashedStroke, GAP_LENGTH, LINE_NEGATIVE, LINE_NORMAL, LINE_SELECTED, lines, listeners, nodeIndex, nodes, preferredSize, root, rowCount, rows, selection, workflowlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description |
|---|
EditableDiagram(psdi.webclient.applet.wfcanvas.Workflow workflow,
WorkflowEditor editor,
WorkflowApplet applet,
boolean canEdit)
Constructs the ditable diagram for a workflow using the editor
|
| Modifier and Type | Method and Description |
|---|---|
void |
autoscroll(java.awt.Point p)
Autoscroll the tree.
|
void |
buildDiagram()
Builds the diagram based on the current workflow and configuration.
|
void |
clearCursor()
Clears the container's cursor - this is necessary for the
re-written DnD which doesn't use the system handler
|
protected void |
connectNodes(psdi.webclient.applet.wfcanvas.WorkflowNode fromNode,
psdi.webclient.applet.wfcanvas.WorkflowNode toNode,
boolean negative)
Connects two nodes in the diagram
|
protected DiagramWorkflowNode |
createDiagramNode(psdi.webclient.applet.wfcanvas.WorkflowNode node,
DiagramConfiguration configuration)
Creates a workflow node
|
void |
dragEnter(java.awt.dnd.DropTargetDragEvent event)
Called when drag enters the drop target
|
void |
dragExit(java.awt.dnd.DropTargetEvent event)
Called when drag leaves the drop target
|
void |
dragOver(java.awt.dnd.DropTargetDragEvent event)
Called when drag occurs
|
protected void |
drawConnectorLine(java.awt.Point dragPoint)
Draws the line between the starting connector and the passed point
|
void |
drop(java.awt.dnd.DropTargetDropEvent event)
Called when a drop occurs
|
void |
dropActionChanged(java.awt.dnd.DropTargetDragEvent event)
Called when the drop action changes
|
void |
dropComplete(psdi.webclient.applet.wfcanvas.WorkflowNode sourceNode,
psdi.webclient.applet.wfcanvas.WorkflowNode dropNode)
Called when one node is dropped over another
|
java.awt.Insets |
getAutoscrollInsets()
Returns the insets used by the drag/drop autoscrolling
|
java.awt.Cursor |
getCursor(java.lang.String name)
Gets a cursor for the diagram
|
int |
getMode()
Gets the diagram mode
|
java.awt.Cursor |
getModeCursor()
Gets the cursor for the current mode
|
java.awt.Dimension |
getPreferredSize()
Returns the preferred size - this is the diagram size + extra
for adding/dragging nodes beyond the last nodes
|
java.awt.datatransfer.Transferable |
getProxy(DiagramWorkflowNode node)
Constructs the correct proxy for dragging
|
protected psdi.webclient.applet.wfcanvas.WorkflowRelationship |
getRelationshipFromPoint(java.awt.Point p)
Gets the relationship whose line crosses the point
|
java.lang.String |
getToolTip(java.lang.String name)
Gets a tooltip for the diagram
|
boolean |
isDragOk(java.awt.dnd.DropTargetDragEvent event)
Checks whether the row is a valid drop site.
|
boolean |
isDropSupported()
Returns whether a node can be dropped on another in the container
|
void |
mouseClicked(java.awt.event.MouseEvent e)
Called when the mouse has been pressed and released
Locate the rectangle within which the mouse is clicked and
fire the action.
|
void |
mouseDragged(java.awt.event.MouseEvent e)
Called when the mouse is being dragged
|
void |
mouseEntered(java.awt.event.MouseEvent e)
Called when the mouse has entered the component
|
void |
mouseExited(java.awt.event.MouseEvent e)
Called when the mouse leaves the component
|
void |
mouseMoved(java.awt.event.MouseEvent e)
Called when the mouse has moved
|
void |
mousePressed(java.awt.event.MouseEvent e)
Called when the mouse is pressed.
|
void |
mouseReleased(java.awt.event.MouseEvent e)
Called when the mouse is released.
|
protected void |
paintComponent(java.awt.Graphics g)
Paints the components
|
void |
run()
Run method - used to delay listener firing
|
void |
setCursor(java.lang.String name,
java.awt.Cursor cursor)
Sets a cursor for the diagram
|
void |
setMode(int mode)
Sets the diagram mode
|
void |
setScrollPane(javax.swing.JScrollPane scrollPane) |
void |
setSelection(psdi.webclient.applet.wfcanvas.WorkflowEntity selection,
javax.swing.JScrollPane scrollPane)
Sets the current selection for the diagram.
|
void |
setToolTip(java.lang.String name,
java.lang.String text)
Sets a tooltip for the diagram
|
void |
setWorkflow(psdi.webclient.applet.wfcanvas.Workflow workflow)
Sets a new workflow
|
void |
setWorkflow(psdi.webclient.applet.wfcanvas.Workflow workflow,
WorkflowEditor editor,
boolean canEdit) |
void |
workflowChanged(WorkflowEditEvent e)
Called when the editor state changes
|
addDiagramListener, addNode, drawArrow, drawLine, drawLine, drawLineSegment, fireListeners, getChannel, getImage, getLineColor, getNodeKey, getPoint, getSegments, isStraight, isStraight, removeDiagramListener, selectNode, setConfiguration, setCur, setLinePositionsgetAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIaddAncestorListener, 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, 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, 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, updateadd, 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, validateTreeaction, 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, transferFocusUpCycleprotected WorkflowEditor editor
protected java.awt.dnd.DropTarget dropTarget
protected DiagramEvent delayedEvent
protected WorkflowApplet applet
protected WorkflowNodeProxy proxy
protected int dropAction
protected java.awt.Point dropLocation
protected java.awt.Point dragStart
protected javax.swing.JScrollPane scrollPane
protected boolean editable
protected int mode
protected java.util.Hashtable cursors
protected java.util.Hashtable tooltips
protected static final int SCROLL_MARGIN
protected static final int SCROLL_INCREMENT
public static final java.lang.String ITEM_NODE
public static final java.lang.String ITEM_LINE
public static final java.lang.String ITEM_NORMAL
public static final java.lang.String ITEM_DRAW_LINE
public static final java.lang.String ITEM_TASK
public static final java.lang.String ITEM_DRAW_NEGATIVE_LINE
public static final int MODE_NORMAL
public static final int MODE_DRAW_LINE
public static final int MODE_DRAW_NEGATIVE_LINE
public EditableDiagram(psdi.webclient.applet.wfcanvas.Workflow workflow,
WorkflowEditor editor,
WorkflowApplet applet,
boolean canEdit)
workflow - The workflow to editeditor - The editor to handle the operationspublic void setWorkflow(psdi.webclient.applet.wfcanvas.Workflow workflow)
setWorkflow in class Diagramworkflow - The workflow to displayeditor - The workflow editorpublic void setWorkflow(psdi.webclient.applet.wfcanvas.Workflow workflow,
WorkflowEditor editor,
boolean canEdit)
public void buildDiagram()
buildDiagram in class Diagrampublic void setMode(int mode)
mode - The modepublic int getMode()
public java.awt.Cursor getModeCursor()
protected DiagramWorkflowNode createDiagramNode(psdi.webclient.applet.wfcanvas.WorkflowNode node, DiagramConfiguration configuration)
createDiagramNode in class Diagramnode - The workflow nodeimageScale - The scaling for the imagepublic void setCursor(java.lang.String name,
java.awt.Cursor cursor)
throws java.lang.Exception
name - The item namecursor - The cursorjava.lang.Exceptionpublic java.awt.Cursor getCursor(java.lang.String name)
name - The item namepublic void setToolTip(java.lang.String name,
java.lang.String text)
throws java.lang.Exception
name - The item nametext - The tooltipjava.lang.Exceptionpublic void setScrollPane(javax.swing.JScrollPane scrollPane)
public void setSelection(psdi.webclient.applet.wfcanvas.WorkflowEntity selection,
javax.swing.JScrollPane scrollPane)
selection - The new selectionpublic java.lang.String getToolTip(java.lang.String name)
name - The item namepublic void workflowChanged(WorkflowEditEvent e)
workflowChanged in interface WorkflowEditListenere - The WorkflowEditEvent eventpublic java.awt.Dimension getPreferredSize()
getPreferredSize in class Diagrampublic boolean isDragOk(java.awt.dnd.DropTargetDragEvent event)
event - The drop target drag eventprotected psdi.webclient.applet.wfcanvas.WorkflowRelationship getRelationshipFromPoint(java.awt.Point p)
p - The pointprotected void connectNodes(psdi.webclient.applet.wfcanvas.WorkflowNode fromNode,
psdi.webclient.applet.wfcanvas.WorkflowNode toNode,
boolean negative)
fromNode - The node to connect fromtoNode - The node to connect tonegative - The negative line flagprotected void paintComponent(java.awt.Graphics g)
paintComponent in class Diagramg - The graphics contextpublic void dragEnter(java.awt.dnd.DropTargetDragEvent event)
dragEnter in interface java.awt.dnd.DropTargetListenerevent - The drop target drag eventpublic void dragExit(java.awt.dnd.DropTargetEvent event)
dragExit in interface java.awt.dnd.DropTargetListenerevent - The drop target drag eventpublic void dragOver(java.awt.dnd.DropTargetDragEvent event)
dragOver in interface java.awt.dnd.DropTargetListenerevent - The drop target drag eventpublic void drop(java.awt.dnd.DropTargetDropEvent event)
drop in interface java.awt.dnd.DropTargetListenerevent - The drop target drop eventpublic void dropActionChanged(java.awt.dnd.DropTargetDragEvent event)
dropActionChanged in interface java.awt.dnd.DropTargetListenerevent - The drop target drag eventpublic java.awt.Insets getAutoscrollInsets()
getAutoscrollInsets in interface java.awt.dnd.Autoscrollpublic void autoscroll(java.awt.Point p)
autoscroll in interface java.awt.dnd.Autoscrollp - The cursor pointpublic void run()
run in interface java.lang.Runnablepublic void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked in interface java.awt.event.MouseListenere - The mouse eventpublic void mouseEntered(java.awt.event.MouseEvent e)
mouseEntered in interface java.awt.event.MouseListenere - The mouse eventpublic void mouseExited(java.awt.event.MouseEvent e)
mouseExited in interface java.awt.event.MouseListenere - The mouse eventpublic void mousePressed(java.awt.event.MouseEvent e)
mousePressed in interface java.awt.event.MouseListenere - The mouse eventpublic void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased in interface java.awt.event.MouseListenere - The mouse eventprotected void drawConnectorLine(java.awt.Point dragPoint)
dragPoint - The end of the connector linepublic void mouseDragged(java.awt.event.MouseEvent e)
mouseDragged in interface java.awt.event.MouseMotionListenere - The mouse eventpublic void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved in interface java.awt.event.MouseMotionListenere - The mouse eventpublic java.awt.datatransfer.Transferable getProxy(DiagramWorkflowNode node)
getProxy in interface DnDContainernode - The node to be draggedpublic boolean isDropSupported()
isDropSupported in interface DnDContainerpublic void dropComplete(psdi.webclient.applet.wfcanvas.WorkflowNode sourceNode,
psdi.webclient.applet.wfcanvas.WorkflowNode dropNode)
dropComplete in interface DnDContainersourceNode - The Node being draggeddropNode - The node dropped overpublic void clearCursor()
clearCursor in interface DnDContainer