Class DefaultProcessDiagramCanvas


  • public class DefaultProcessDiagramCanvas
    extends java.lang.Object
    Represents a canvas on which BPMN 2.0 constructs can be drawn.

    See Also:
    DefaultProcessDiagramGenerator
    • Field Detail

      • LOGGER

        protected static final org.slf4j.Logger LOGGER
      • CONDITIONAL_INDICATOR_WIDTH

        protected static final int CONDITIONAL_INDICATOR_WIDTH
        See Also:
        Constant Field Values
      • DEFAULT_INDICATOR_WIDTH

        protected static final int DEFAULT_INDICATOR_WIDTH
        See Also:
        Constant Field Values
      • ANNOTATION_TEXT_PADDING

        protected static final int ANNOTATION_TEXT_PADDING
        See Also:
        Constant Field Values
      • TASK_BOX_COLOR

        protected static java.awt.Color TASK_BOX_COLOR
      • SUBPROCESS_BOX_COLOR

        protected static java.awt.Color SUBPROCESS_BOX_COLOR
      • EVENT_COLOR

        protected static java.awt.Color EVENT_COLOR
      • CONNECTION_COLOR

        protected static java.awt.Color CONNECTION_COLOR
      • CONDITIONAL_INDICATOR_COLOR

        protected static java.awt.Color CONDITIONAL_INDICATOR_COLOR
      • HIGHLIGHT_COLOR

        protected static java.awt.Color HIGHLIGHT_COLOR
      • LABEL_COLOR

        protected static java.awt.Color LABEL_COLOR
      • TASK_BORDER_COLOR

        protected static java.awt.Color TASK_BORDER_COLOR
      • EVENT_BORDER_COLOR

        protected static java.awt.Color EVENT_BORDER_COLOR
      • SUBPROCESS_BORDER_COLOR

        protected static java.awt.Color SUBPROCESS_BORDER_COLOR
      • LABEL_FONT

        protected static java.awt.Font LABEL_FONT
      • ANNOTATION_FONT

        protected static java.awt.Font ANNOTATION_FONT
      • THICK_TASK_BORDER_STROKE

        protected static java.awt.Stroke THICK_TASK_BORDER_STROKE
      • GATEWAY_TYPE_STROKE

        protected static java.awt.Stroke GATEWAY_TYPE_STROKE
      • END_EVENT_STROKE

        protected static java.awt.Stroke END_EVENT_STROKE
      • MULTI_INSTANCE_STROKE

        protected static java.awt.Stroke MULTI_INSTANCE_STROKE
      • EVENT_SUBPROCESS_STROKE

        protected static java.awt.Stroke EVENT_SUBPROCESS_STROKE
      • NON_INTERRUPTING_EVENT_STROKE

        protected static java.awt.Stroke NON_INTERRUPTING_EVENT_STROKE
      • HIGHLIGHT_FLOW_STROKE

        protected static java.awt.Stroke HIGHLIGHT_FLOW_STROKE
      • ANNOTATION_STROKE

        protected static java.awt.Stroke ANNOTATION_STROKE
      • ASSOCIATION_STROKE

        protected static java.awt.Stroke ASSOCIATION_STROKE
      • ICON_PADDING

        protected static int ICON_PADDING
      • USERTASK_IMAGE

        protected static TaskIconType USERTASK_IMAGE
      • SCRIPTTASK_IMAGE

        protected static TaskIconType SCRIPTTASK_IMAGE
      • SERVICETASK_IMAGE

        protected static TaskIconType SERVICETASK_IMAGE
      • RECEIVETASK_IMAGE

        protected static TaskIconType RECEIVETASK_IMAGE
      • SENDTASK_IMAGE

        protected static TaskIconType SENDTASK_IMAGE
      • MANUALTASK_IMAGE

        protected static TaskIconType MANUALTASK_IMAGE
      • BUSINESS_RULE_TASK_IMAGE

        protected static TaskIconType BUSINESS_RULE_TASK_IMAGE
      • TIMER_IMAGE

        protected static IconType TIMER_IMAGE
      • COMPENSATE_THROW_IMAGE

        protected static IconType COMPENSATE_THROW_IMAGE
      • COMPENSATE_CATCH_IMAGE

        protected static IconType COMPENSATE_CATCH_IMAGE
      • ERROR_THROW_IMAGE

        protected static IconType ERROR_THROW_IMAGE
      • ERROR_CATCH_IMAGE

        protected static IconType ERROR_CATCH_IMAGE
      • MESSAGE_CATCH_IMAGE

        protected static IconType MESSAGE_CATCH_IMAGE
      • SIGNAL_CATCH_IMAGE

        protected static IconType SIGNAL_CATCH_IMAGE
      • SIGNAL_THROW_IMAGE

        protected static IconType SIGNAL_THROW_IMAGE
      • canvasWidth

        protected int canvasWidth
      • canvasHeight

        protected int canvasHeight
      • minX

        protected int minX
      • minY

        protected int minY
      • fontMetrics

        protected java.awt.FontMetrics fontMetrics
      • closed

        protected boolean closed
      • activityFontName

        protected java.lang.String activityFontName
      • labelFontName

        protected java.lang.String labelFontName
      • annotationFontName

        protected java.lang.String annotationFontName
    • Constructor Detail

      • DefaultProcessDiagramCanvas

        public DefaultProcessDiagramCanvas​(int width,
                                           int height,
                                           int minX,
                                           int minY,
                                           java.lang.String activityFontName,
                                           java.lang.String labelFontName,
                                           java.lang.String annotationFontName)
        Creates an empty canvas with given width and height.

        Allows to specify minimal boundaries on the left and upper side of the canvas. This is useful for diagrams that have white space there. Everything beneath these minimum values will be cropped. It's also possible to pass a specific font name and a class loader for the icon images.

      • DefaultProcessDiagramCanvas

        public DefaultProcessDiagramCanvas​(int width,
                                           int height,
                                           int minX,
                                           int minY)
        Creates an empty canvas with given width and height.

        Allows to specify minimal boundaries on the left and upper side of the canvas. This is useful for diagrams that have white space there (eg Signavio). Everything beneath these minimum values will be cropped.

        Parameters:
        minX - Hint that will be used when generating the image. Parts that fall below minX on the horizontal scale will be cropped.
        minY - Hint that will be used when generating the image. Parts that fall below minX on the horizontal scale will be cropped.
    • Method Detail

      • initialize

        public void initialize()
      • generateImage

        public java.io.InputStream generateImage()
        Generates an image of what currently is drawn on the canvas.

        Throws an ActivitiImageException when close() is already called.

      • close

        public void close()
        Closes the canvas which dissallows further drawing and releases graphical resources.
      • drawNoneStartEvent

        public void drawNoneStartEvent​(java.lang.String id,
                                       org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawTimerStartEvent

        public void drawTimerStartEvent​(java.lang.String id,
                                        org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawSignalStartEvent

        public void drawSignalStartEvent​(java.lang.String id,
                                         org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawMessageStartEvent

        public void drawMessageStartEvent​(java.lang.String id,
                                          org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawStartEvent

        public void drawStartEvent​(java.lang.String id,
                                   org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                   IconType icon)
      • drawNoneEndEvent

        public void drawNoneEndEvent​(java.lang.String id,
                                     java.lang.String name,
                                     org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawErrorEndEvent

        public void drawErrorEndEvent​(java.lang.String id,
                                      java.lang.String name,
                                      org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawErrorStartEvent

        public void drawErrorStartEvent​(java.lang.String id,
                                        org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawCatchingEvent

        public void drawCatchingEvent​(java.lang.String id,
                                      org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                      boolean isInterrupting,
                                      IconType icon,
                                      java.lang.String eventType)
      • drawCatchingCompensateEvent

        public void drawCatchingCompensateEvent​(java.lang.String id,
                                                java.lang.String name,
                                                org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                                boolean isInterrupting)
      • drawCatchingCompensateEvent

        public void drawCatchingCompensateEvent​(java.lang.String id,
                                                org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                                boolean isInterrupting)
      • drawCatchingTimerEvent

        public void drawCatchingTimerEvent​(java.lang.String id,
                                           java.lang.String name,
                                           org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                           boolean isInterrupting)
      • drawCatchingTimerEvent

        public void drawCatchingTimerEvent​(java.lang.String id,
                                           org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                           boolean isInterrupting)
      • drawCatchingErrorEvent

        public void drawCatchingErrorEvent​(java.lang.String id,
                                           java.lang.String name,
                                           org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                           boolean isInterrupting)
      • drawCatchingErrorEvent

        public void drawCatchingErrorEvent​(java.lang.String id,
                                           org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                           boolean isInterrupting)
      • drawCatchingSignalEvent

        public void drawCatchingSignalEvent​(java.lang.String id,
                                            java.lang.String name,
                                            org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                            boolean isInterrupting)
      • drawCatchingSignalEvent

        public void drawCatchingSignalEvent​(java.lang.String id,
                                            org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                            boolean isInterrupting)
      • drawCatchingMessageEvent

        public void drawCatchingMessageEvent​(java.lang.String id,
                                             org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                             boolean isInterrupting)
      • drawCatchingMessageEvent

        public void drawCatchingMessageEvent​(java.lang.String id,
                                             java.lang.String name,
                                             org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                             boolean isInterrupting)
      • drawThrowingCompensateEvent

        public void drawThrowingCompensateEvent​(java.lang.String id,
                                                org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawThrowingSignalEvent

        public void drawThrowingSignalEvent​(java.lang.String id,
                                            org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawThrowingNoneEvent

        public void drawThrowingNoneEvent​(java.lang.String id,
                                          org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawSequenceflow

        public void drawSequenceflow​(int srcX,
                                     int srcY,
                                     int targetX,
                                     int targetY,
                                     boolean conditional)
      • drawSequenceflow

        public void drawSequenceflow​(int srcX,
                                     int srcY,
                                     int targetX,
                                     int targetY,
                                     boolean conditional,
                                     boolean highLighted)
      • drawAssociation

        public void drawAssociation​(int[] xPoints,
                                    int[] yPoints,
                                    org.activiti.bpmn.model.AssociationDirection associationDirection,
                                    boolean highLighted)
      • drawSequenceflow

        public void drawSequenceflow​(int[] xPoints,
                                     int[] yPoints,
                                     boolean conditional,
                                     boolean isDefault,
                                     boolean highLighted)
      • drawConnection

        public void drawConnection​(int[] xPoints,
                                   int[] yPoints,
                                   boolean conditional,
                                   boolean isDefault,
                                   java.lang.String connectionType,
                                   org.activiti.bpmn.model.AssociationDirection associationDirection,
                                   boolean highLighted)
      • drawSequenceflowWithoutArrow

        public void drawSequenceflowWithoutArrow​(int srcX,
                                                 int srcY,
                                                 int targetX,
                                                 int targetY,
                                                 boolean conditional)
      • drawSequenceflowWithoutArrow

        public void drawSequenceflowWithoutArrow​(int srcX,
                                                 int srcY,
                                                 int targetX,
                                                 int targetY,
                                                 boolean conditional,
                                                 boolean highLighted)
      • drawArrowHead

        public void drawArrowHead​(java.awt.geom.Line2D.Double line)
      • drawDefaultSequenceFlowIndicator

        public void drawDefaultSequenceFlowIndicator​(java.awt.geom.Line2D.Double line)
      • drawConditionalSequenceFlowIndicator

        public void drawConditionalSequenceFlowIndicator​(java.awt.geom.Line2D.Double line)
      • drawTask

        public void drawTask​(TaskIconType icon,
                             java.lang.String id,
                             java.lang.String name,
                             org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawTask

        public void drawTask​(java.lang.String id,
                             java.lang.String name,
                             org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawPoolOrLane

        public void drawPoolOrLane​(java.lang.String id,
                                   java.lang.String name,
                                   org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawTask

        protected void drawTask​(java.lang.String id,
                                java.lang.String name,
                                org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                boolean thickBorder)
      • drawMultilineCentredText

        protected void drawMultilineCentredText​(java.lang.String text,
                                                int x,
                                                int y,
                                                int boxWidth,
                                                int boxHeight)
      • drawMultilineAnnotationText

        protected void drawMultilineAnnotationText​(java.lang.String text,
                                                   int x,
                                                   int y,
                                                   int boxWidth,
                                                   int boxHeight)
      • drawMultilineText

        protected void drawMultilineText​(java.lang.String text,
                                         int x,
                                         int y,
                                         int boxWidth,
                                         int boxHeight,
                                         boolean centered)
      • fitTextToWidth

        protected java.lang.String fitTextToWidth​(java.lang.String original,
                                                  int width)
      • drawUserTask

        public void drawUserTask​(java.lang.String id,
                                 java.lang.String name,
                                 org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawScriptTask

        public void drawScriptTask​(java.lang.String id,
                                   java.lang.String name,
                                   org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawServiceTask

        public void drawServiceTask​(java.lang.String id,
                                    java.lang.String name,
                                    org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawReceiveTask

        public void drawReceiveTask​(java.lang.String id,
                                    java.lang.String name,
                                    org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawSendTask

        public void drawSendTask​(java.lang.String id,
                                 java.lang.String name,
                                 org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawManualTask

        public void drawManualTask​(java.lang.String id,
                                   java.lang.String name,
                                   org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawBusinessRuleTask

        public void drawBusinessRuleTask​(java.lang.String id,
                                         java.lang.String name,
                                         org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawExpandedSubProcess

        public void drawExpandedSubProcess​(java.lang.String id,
                                           java.lang.String name,
                                           org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                           java.lang.Class<?> type)
      • drawCollapsedSubProcess

        public void drawCollapsedSubProcess​(java.lang.String id,
                                            java.lang.String name,
                                            org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                            java.lang.Boolean isTriggeredByEvent)
      • drawCollapsedCallActivity

        public void drawCollapsedCallActivity​(java.lang.String id,
                                              java.lang.String name,
                                              org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawCollapsedTask

        protected void drawCollapsedTask​(java.lang.String id,
                                         java.lang.String name,
                                         org.activiti.bpmn.model.GraphicInfo graphicInfo,
                                         boolean thickBorder)
      • drawCollapsedMarker

        public void drawCollapsedMarker​(int x,
                                        int y,
                                        int width,
                                        int height)
      • drawActivityMarkers

        public void drawActivityMarkers​(int x,
                                        int y,
                                        int width,
                                        int height,
                                        boolean multiInstanceSequential,
                                        boolean multiInstanceParallel,
                                        boolean collapsed)
      • drawGateway

        public void drawGateway​(org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawParallelGateway

        public void drawParallelGateway​(java.lang.String id,
                                        org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawExclusiveGateway

        public void drawExclusiveGateway​(java.lang.String id,
                                         org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawInclusiveGateway

        public void drawInclusiveGateway​(java.lang.String id,
                                         org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawEventBasedGateway

        public void drawEventBasedGateway​(java.lang.String id,
                                          org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawMultiInstanceMarker

        public void drawMultiInstanceMarker​(boolean sequential,
                                            int x,
                                            int y,
                                            int width,
                                            int height)
      • drawHighLight

        public void drawHighLight​(int x,
                                  int y,
                                  int width,
                                  int height)
      • drawTextAnnotation

        public void drawTextAnnotation​(java.lang.String id,
                                       java.lang.String text,
                                       org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawLabel

        public void drawLabel​(java.lang.String text,
                              org.activiti.bpmn.model.GraphicInfo graphicInfo)
      • drawLabel

        public void drawLabel​(java.lang.String text,
                              org.activiti.bpmn.model.GraphicInfo graphicInfo,
                              boolean centered)
      • connectionPerfectionizer

        public java.util.List<org.activiti.bpmn.model.GraphicInfo> connectionPerfectionizer​(DefaultProcessDiagramCanvas.SHAPE_TYPE sourceShapeType,
                                                                                            DefaultProcessDiagramCanvas.SHAPE_TYPE targetShapeType,
                                                                                            org.activiti.bpmn.model.GraphicInfo sourceGraphicInfo,
                                                                                            org.activiti.bpmn.model.GraphicInfo targetGraphicInfo,
                                                                                            java.util.List<org.activiti.bpmn.model.GraphicInfo> graphicInfoList)
        This method makes coordinates of connection flow better.
        Parameters:
        sourceShapeType -
        targetShapeType -
        sourceGraphicInfo -
        targetGraphicInfo -
        graphicInfoList -