public class ProcessEditor extends javax.swing.JPanel implements ProcessModelListener, ProcessEditorInterface, java.awt.print.Printable
javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
protected boolean |
animationEnabled
Animation enabled
|
protected AnimationFacade |
animator
A runner thread
|
protected javax.swing.JPopupMenu |
contextMenu
The context pop-up menu
|
protected java.util.Map<java.lang.Class<?>,java.util.LinkedList<javax.swing.JMenuItem>> |
customContextItems
Additional (external) context pop-up menu entries
|
protected java.util.LinkedList<javax.swing.JMenuItem> |
customMenuItems
Additional (external) pop-up menu entries
|
static int |
DELETE_FADE_TIME
The fade-out time for deletion of Elements
|
protected Dragable |
dragableObject
The last selected Dragable
|
protected boolean |
drawBackground
A flag that denotes if the background should be drawn by the editor
|
protected ProcessEditorExternalizeableActionHandler |
extHandler
An external action handler
|
protected int |
horizontalAlignmentRuler
The horizontal alignment ruler
|
protected float |
invisibleAlpha
The alpha value for invisible objects
|
protected ProcessMergeAnimator |
mergeAnimator
offers advanced, synchronized animations transforming the whole model
|
static double |
MIN_DIAGRAM_SCALE
The minimum diagram scalle
|
protected ProcessEditorMouseListener |
mouseListener
The mouse listener
|
static int |
NEW_FADE_TIME
The fade-in time for new Elements
|
protected javax.swing.JPopupMenu |
popupMenu
The pop-up menu
|
protected java.util.HashSet<ProcessHelper> |
processHelpers
A list of ProcessHelper, transient ProcessObjects
|
protected ProcessEdge |
selectedEdge
The last selected edge
|
protected SelectionHandler |
selectionHandler
The selection handler
|
protected boolean |
topologicalRendering
A flag if topological rendering should be used (default = false)
|
protected int |
verticalAlignmentRuler
The vertical alignment ruler
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
ProcessEditor()
Creates a new ProcessEditor with a sample model.
|
ProcessEditor(ProcessModel model)
Creates a new ProcessEditor with a given model.
|
Modifier and Type | Method and Description |
---|---|
void |
addCustomContextMenuItem(java.lang.Class<?> nodeType,
javax.swing.JMenuItem item)
Adds a customer context-menu for a specific node type.
|
void |
addCustomPopUpMenuItem(javax.swing.JMenuItem item)
Adds a custome pop-up menu item.
|
boolean |
addLayoutMenu(javax.swing.JPopupMenu pmenu) |
void |
addListener(ProcessEditorListener l)
Adds a listener to this ProcessEditor.
|
void |
addProcessHelper(ProcessHelper helper)
Adds a transient ProcessHelper to the ProcessEditor.
|
void |
continueLayoutEdges() |
ProcessModel |
createExample()
Returns a sample ProcessModel in BPMN (might be overwritten).
|
protected void |
customInitialization()
Initializes a custom context menu
|
ProcessObject |
detectProcessEdge(java.awt.Point p)
part of detectProcessObject, but only checks for edges (no nodes, no helpers)
|
ProcessObject |
detectProcessObject(java.awt.Point p) |
void |
dispose()
Stops all Threads belonging to this Editor.
|
void |
endProcessEditorListenerUpdate()
needed to avoid concurrent modifications exceptions when someone wants to remove
a listener while being notified
|
AnimationFacade |
getAnimator() |
javax.swing.JPopupMenu |
getContextMenu() |
java.util.Map<java.lang.Class<?>,java.util.LinkedList<javax.swing.JMenuItem>> |
getCustomContextMenuItems() |
java.util.LinkedList<javax.swing.JMenuItem> |
getCustomContextMenuItems(java.lang.Class<? extends ProcessObject> class1)
returns all custom menu items for the given class or its subclasses!
|
Dragable |
getDragableObject() |
ProcessEditorExternalizeableActionHandler |
getExtHandler() |
float |
getInvisibleAlpha() |
ProcessObject |
getLastSelectedNode() |
java.util.Set<ProcessEditorListener> |
getListeners()
Returns the currently registered ProcessEditorListeners.
|
ProcessMergeAnimator |
getMergeAnimator() |
ProcessModel |
getModel() |
java.awt.Point |
getMouseClickLocation(java.awt.Point p)
applies scaling and transformations to the
Point so it represents the "real" click location
in the editor
|
NodeOnSelectMenuBasis |
getOnSelectMenu(ProcessNode processNode)
returns an instance on an NodeOnSelectMenu.
|
javax.swing.JPopupMenu |
getPopupMenu() |
java.awt.Dimension |
getPreferredSize() |
ProcessEditorMouseListener |
getProcessEditorMouseListener() |
java.util.HashSet<ProcessHelper> |
getProcessHelpers() |
double |
getScale() |
ProcessModel |
getSelectedModel()
Returns the currently selected model of the ProcessEditor.
|
SelectionHandler |
getSelectionHandler() |
boolean |
isAnimationEnabled() |
boolean |
isDrawBackground() |
boolean |
isEditable()
Returns whether this editor is editable or not.
|
boolean |
isLayoutEdges() |
boolean |
isTopologicalRendering() |
boolean |
isVirginEditor() |
static void |
main(java.lang.String[] args) |
ProcessEditor |
openNewModel(ProcessModel model)
Opens a new model.
|
void |
paintComponent(java.awt.Graphics g) |
void |
pauseLayoutEdges() |
int |
print(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
Printable Interface implementation follows.
|
void |
processEdgeAdded(ProcessEdge edge)
Is called if a ProcessEdge is added to the model.
|
void |
processEdgeRemoved(ProcessEdge edge)
Is called if a ProcessEdge is removed from the model.
|
void |
processModelOpened(ProcessModel model)
Called if a new ProcessModel has been opened.
|
void |
processModelSaved(ProcessModel model,
java.io.File f)
Called if a ProcessModel has been saved.
|
void |
processNodeAdded(ProcessNode newNode)
ProcessModelListener for updating the UI corresponding to model changes.
|
void |
processNodeRemoved(ProcessNode remNode)
Is called if a ProcessNode is removed from the model.
|
void |
processObjectPropertyChange(ProcessObject obj,
java.lang.String name,
java.lang.String oldValue,
java.lang.String newValue)
Is called each time a property of a contained ProcessObject changes.
|
void |
removeListener(ProcessEditorListener l)
Removes a listener from this ProcessEditor.
|
void |
removeProcessHelper(ProcessHelper helper)
Removes a ProcessHelper from the ProcessEditor.
|
void |
removeProcessHelperClass(java.lang.Class<? extends ProcessHelper> cl)
Removes all ProcessHelpers of a certain kind.
|
void |
setAlignmentRuler(int x,
int y)
Sets the position of the alignment rulers.
|
void |
setAnimationEnabled(boolean animationEnabled) |
void |
setDragableObject(Dragable dragableObject) |
void |
setDrawBackground(boolean drawBackground) |
void |
setEditable(boolean edit)
Defines if this editor is editable or not.
|
void |
setEnabled(boolean enabled) |
void |
setExtHandler(ProcessEditorExternalizeableActionHandler extHandler) |
void |
setInvisibleAlpha(float invisibleAlpha) |
void |
setLayoutEdges(boolean layoutEdges) |
void |
setModel(ProcessModel model) |
void |
setNodeOnSelectMenu(NodeOnSelectMenuBasis menu) |
void |
setScale(double scale) |
void |
setTopologicalRendering(boolean topologicalRendering)
Sets topological rendering.
|
void |
setVirginEditor(boolean virginEditor) |
void |
startProcessEditorListenerUpdate()
needed to avoid concurrent modifications exceptions when someone wants to remove
a listener when being notified
|
void |
zoomToFit()
sets the scale in the ProcessEditor so that the whole model is visible
|
void |
zoomToFit(ProcessModel model)
sets the scale in the ProcessEditor so that the whole model is visible.
|
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, 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 javax.swing.JPopupMenu popupMenu
protected javax.swing.JPopupMenu contextMenu
protected java.util.LinkedList<javax.swing.JMenuItem> customMenuItems
protected java.util.Map<java.lang.Class<?>,java.util.LinkedList<javax.swing.JMenuItem>> customContextItems
protected SelectionHandler selectionHandler
protected ProcessEdge selectedEdge
protected AnimationFacade animator
protected boolean animationEnabled
public static final double MIN_DIAGRAM_SCALE
protected ProcessMergeAnimator mergeAnimator
protected Dragable dragableObject
protected ProcessEditorMouseListener mouseListener
protected int verticalAlignmentRuler
protected int horizontalAlignmentRuler
protected float invisibleAlpha
protected boolean drawBackground
protected java.util.HashSet<ProcessHelper> processHelpers
public static final int NEW_FADE_TIME
public static final int DELETE_FADE_TIME
protected ProcessEditorExternalizeableActionHandler extHandler
protected boolean topologicalRendering
public ProcessEditor()
public ProcessEditor(ProcessModel model)
model
- protected void customInitialization()
public boolean isTopologicalRendering()
public void setTopologicalRendering(boolean topologicalRendering)
topologicalRendering
- public void addCustomPopUpMenuItem(javax.swing.JMenuItem item)
item
- public void addCustomContextMenuItem(java.lang.Class<?> nodeType, javax.swing.JMenuItem item)
nodeType
- item
- public java.util.Map<java.lang.Class<?>,java.util.LinkedList<javax.swing.JMenuItem>> getCustomContextMenuItems()
public java.util.LinkedList<javax.swing.JMenuItem> getCustomContextMenuItems(java.lang.Class<? extends ProcessObject> class1)
class1
- public boolean addLayoutMenu(javax.swing.JPopupMenu pmenu)
public void addProcessHelper(ProcessHelper helper)
helper
- public void removeProcessHelper(ProcessHelper helper)
helper
- public ProcessEditorMouseListener getProcessEditorMouseListener()
public java.util.HashSet<ProcessHelper> getProcessHelpers()
public void removeProcessHelperClass(java.lang.Class<? extends ProcessHelper> cl)
cl
- public ProcessObject getLastSelectedNode()
public java.awt.Dimension getPreferredSize()
getPreferredSize
in class javax.swing.JComponent
public void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
public double getScale()
public void setScale(double scale)
public float getInvisibleAlpha()
public void setInvisibleAlpha(float invisibleAlpha)
public ProcessObject detectProcessObject(java.awt.Point p)
public ProcessObject detectProcessEdge(java.awt.Point p)
p
- public Dragable getDragableObject()
public void setDragableObject(Dragable dragableObject)
public ProcessModel createExample()
public boolean isEditable()
public void setEditable(boolean edit)
edit
- public void setEnabled(boolean enabled)
setEnabled
in class javax.swing.JComponent
public SelectionHandler getSelectionHandler()
public boolean isAnimationEnabled()
public void setAnimationEnabled(boolean animationEnabled)
public void addListener(ProcessEditorListener l)
l
- public java.util.Set<ProcessEditorListener> getListeners()
public void removeListener(ProcessEditorListener l)
l
- public java.awt.Point getMouseClickLocation(java.awt.Point p)
p
- public ProcessModel getModel()
public void setModel(ProcessModel model)
public javax.swing.JPopupMenu getPopupMenu()
public AnimationFacade getAnimator()
public ProcessMergeAnimator getMergeAnimator()
public javax.swing.JPopupMenu getContextMenu()
public boolean isVirginEditor()
public void setVirginEditor(boolean virginEditor)
public boolean isDrawBackground()
public void setDrawBackground(boolean drawBackground)
public void setAlignmentRuler(int x, int y)
x
- y
- public void endProcessEditorListenerUpdate()
public void startProcessEditorListenerUpdate()
public void zoomToFit()
public void zoomToFit(ProcessModel model)
public void dispose()
public static void main(java.lang.String[] args)
public void processNodeAdded(ProcessNode newNode)
processNodeAdded
in interface ProcessModelListener
public void processNodeRemoved(ProcessNode remNode)
ProcessModelListener
processNodeRemoved
in interface ProcessModelListener
public void processEdgeAdded(ProcessEdge edge)
ProcessModelListener
processEdgeAdded
in interface ProcessModelListener
public void processEdgeRemoved(ProcessEdge edge)
ProcessModelListener
processEdgeRemoved
in interface ProcessModelListener
public void processObjectPropertyChange(ProcessObject obj, java.lang.String name, java.lang.String oldValue, java.lang.String newValue)
ProcessModelListener
processObjectPropertyChange
in interface ProcessModelListener
public void processModelOpened(ProcessModel model)
ProcessEditorInterface
processModelOpened
in interface ProcessEditorInterface
public ProcessModel getSelectedModel()
ProcessEditorInterface
getSelectedModel
in interface ProcessEditorInterface
public void processModelSaved(ProcessModel model, java.io.File f)
ProcessEditorInterface
processModelSaved
in interface ProcessEditorInterface
public int print(java.awt.Graphics graphics, java.awt.print.PageFormat pageFormat, int pageIndex) throws java.awt.print.PrinterException
print
in interface java.awt.print.Printable
java.awt.print.PrinterException
public NodeOnSelectMenuBasis getOnSelectMenu(ProcessNode processNode)
processNode
- po
- editor
- public void setNodeOnSelectMenu(NodeOnSelectMenuBasis menu)
public ProcessEditorExternalizeableActionHandler getExtHandler()
public void setExtHandler(ProcessEditorExternalizeableActionHandler extHandler)
public ProcessEditor openNewModel(ProcessModel model)
model
- public boolean isLayoutEdges()
public void setLayoutEdges(boolean layoutEdges)
public void pauseLayoutEdges()
public void continueLayoutEdges()