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.AccessibleJPanel
javax.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, workflow
listenerList, 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, setLinePositions
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
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, 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, update
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, transferFocusDownCycle, validate, validateTree
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, 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, transferFocusUpCycle
protected 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 Diagram
workflow
- 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 Diagram
public 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 Diagram
node
- 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.Exception
public 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.Exception
public 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 WorkflowEditListener
e
- The WorkflowEditEvent eventpublic java.awt.Dimension getPreferredSize()
getPreferredSize
in class Diagram
public 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 Diagram
g
- The graphics contextpublic void dragEnter(java.awt.dnd.DropTargetDragEvent event)
dragEnter
in interface java.awt.dnd.DropTargetListener
event
- The drop target drag eventpublic void dragExit(java.awt.dnd.DropTargetEvent event)
dragExit
in interface java.awt.dnd.DropTargetListener
event
- The drop target drag eventpublic void dragOver(java.awt.dnd.DropTargetDragEvent event)
dragOver
in interface java.awt.dnd.DropTargetListener
event
- The drop target drag eventpublic void drop(java.awt.dnd.DropTargetDropEvent event)
drop
in interface java.awt.dnd.DropTargetListener
event
- The drop target drop eventpublic void dropActionChanged(java.awt.dnd.DropTargetDragEvent event)
dropActionChanged
in interface java.awt.dnd.DropTargetListener
event
- The drop target drag eventpublic java.awt.Insets getAutoscrollInsets()
getAutoscrollInsets
in interface java.awt.dnd.Autoscroll
public void autoscroll(java.awt.Point p)
autoscroll
in interface java.awt.dnd.Autoscroll
p
- The cursor pointpublic void run()
run
in interface java.lang.Runnable
public void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked
in interface java.awt.event.MouseListener
e
- The mouse eventpublic void mouseEntered(java.awt.event.MouseEvent e)
mouseEntered
in interface java.awt.event.MouseListener
e
- The mouse eventpublic void mouseExited(java.awt.event.MouseEvent e)
mouseExited
in interface java.awt.event.MouseListener
e
- The mouse eventpublic void mousePressed(java.awt.event.MouseEvent e)
mousePressed
in interface java.awt.event.MouseListener
e
- The mouse eventpublic void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased
in interface java.awt.event.MouseListener
e
- 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.MouseMotionListener
e
- The mouse eventpublic void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved
in interface java.awt.event.MouseMotionListener
e
- The mouse eventpublic java.awt.datatransfer.Transferable getProxy(DiagramWorkflowNode node)
getProxy
in interface DnDContainer
node
- The node to be draggedpublic boolean isDropSupported()
isDropSupported
in interface DnDContainer
public void dropComplete(psdi.webclient.applet.wfcanvas.WorkflowNode sourceNode, psdi.webclient.applet.wfcanvas.WorkflowNode dropNode)
dropComplete
in interface DnDContainer
sourceNode
- The Node being draggeddropNode
- The node dropped overpublic void clearCursor()
clearCursor
in interface DnDContainer