Class BaseCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>

  • Type Parameters:
    D - The diagram type.
    C - The handled canvas type.
    All Implemented Interfaces:
    org.kie.workbench.common.stunner.core.client.canvas.CanvasHandler<D,​C>, org.kie.workbench.common.stunner.core.client.canvas.listener.HasCanvasListeners<org.kie.workbench.common.stunner.core.client.canvas.listener.CanvasElementListener>, org.kie.workbench.common.stunner.core.client.canvas.listener.HasDomainObjectListeners<org.kie.workbench.common.stunner.core.client.canvas.listener.CanvasDomainObjectListener>
    Direct Known Subclasses:
    CanvasHandlerImpl

    public abstract class BaseCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
    extends AbstractCanvasHandler<D,​C>
    A base canvas handler type that provides implementations for most of the public API methods for the AbstractCanvasHandler super-type. You can use this type if: - You need a custom graph index or graph index builder types. - You need custom rule loading or do not want support for rules and their evaluations. - You need custom draw logics.
    • Constructor Summary

      Constructors 
      Constructor Description
      BaseCanvasHandler​(org.kie.workbench.common.stunner.core.api.DefinitionManager definitionManager, org.kie.workbench.common.stunner.core.graph.util.GraphUtils graphUtils, org.kie.workbench.common.stunner.core.client.api.ShapeManager shapeManager, TextPropertyProviderFactory textPropertyProviderFactory)  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addChild​(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child)
      This method sets the given child instance as children for the given given parent instance.
      void addChild​(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child, int index)
      This method sets the given child instance as children for the given given parent instance at the given index.
      void addShape​(org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void afterDraw​(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void afterElementAdded​(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void afterElementDeleted​(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void afterElementUpdated​(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void applyElementMutation​(org.kie.workbench.common.stunner.core.client.shape.ElementShape graphShape, org.kie.workbench.common.stunner.core.graph.Element candidate, boolean applyPosition, boolean applyProperties, org.kie.workbench.common.stunner.core.client.shape.MutationContext mutationContext)  
      protected void applyElementMutation​(org.kie.workbench.common.stunner.core.client.shape.Shape shape, org.kie.workbench.common.stunner.core.graph.Element candidate)  
      void applyElementMutation​(org.kie.workbench.common.stunner.core.client.shape.Shape shape, org.kie.workbench.common.stunner.core.graph.Element candidate, boolean applyPosition, boolean applyProperties, org.kie.workbench.common.stunner.core.client.shape.MutationContext mutationContext)  
      protected void applyElementTitle​(org.kie.workbench.common.stunner.core.client.shape.ElementShape shape, org.kie.workbench.common.stunner.core.graph.Element candidate, org.kie.workbench.common.stunner.core.client.shape.MutationContext mutationContext)  
      protected void beforeDraw​(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void beforeElementDeleted​(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void beforeElementUpdated​(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected abstract void buildGraphIndex​(org.uberfire.mvp.Command loadCallback)
      Build the graph index instance using any concrete index/builder types.
      void deregister​(org.kie.workbench.common.stunner.core.client.shape.Shape shape, org.kie.workbench.common.stunner.core.graph.Element element, boolean fireEvents)  
      protected void destroyGraph​(org.uberfire.mvp.Command callback)  
      protected abstract void destroyGraphIndex​(org.uberfire.mvp.Command loadCallback)
      Destroys this instance' graph index.
      boolean dock​(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child)
      This method sets the given child instance as docked child for the given given parent instance.
      org.kie.workbench.common.stunner.core.client.canvas.CanvasHandler<D,​C> doClear()
      Subtypes must clear this instance's state here.
      void doDestroy()
      Subtypes must destroy this instance's state here.
      void draw​(D diagram, org.uberfire.mvp.ParameterizedCommand<org.kie.workbench.common.stunner.core.command.CommandResult> loadCallback)  
      abstract void draw​(org.uberfire.mvp.ParameterizedCommand<org.kie.workbench.common.stunner.core.command.CommandResult> loadCallback)
      Delegates the draw behavior to the subtypes.
      C getCanvas()  
      protected String getDefinitionId​(Object definition)  
      org.kie.workbench.common.stunner.core.api.DefinitionManager getDefinitionManager()
      Provides a definition manager instance in this context.
      D getDiagram()  
      protected Optional<org.kie.workbench.common.stunner.core.graph.Element> getElement​(String uuid)  
      Optional<org.kie.workbench.common.stunner.core.graph.Element> getElementAt​(double x, double y)
      Gets the Element at the specified Canvas coordinates
      org.kie.workbench.common.stunner.core.graph.util.GraphUtils getGraphUtils()  
      org.kie.workbench.common.stunner.core.rule.RuleSet getRuleSet()
      Provides the ruleSet instance for this handler.
      org.kie.workbench.common.stunner.core.client.shape.factory.ShapeFactory<Object,​org.kie.workbench.common.stunner.core.client.shape.Shape> getShapeFactory​(String shapeSetId)  
      org.kie.workbench.common.stunner.core.client.api.ShapeManager getShapeManager()  
      TextPropertyProviderFactory getTextPropertyProviderFactory()
      Provides a Text Property Provider Factory instance in this context.
      org.kie.workbench.common.stunner.core.client.canvas.CanvasHandler<D,​C> handle​(C canvas)  
      protected boolean isCanvasRoot​(String pUUID)  
      protected void loadRuleSet​(org.uberfire.mvp.Command callback)  
      void register​(org.kie.workbench.common.stunner.core.client.shape.Shape shape, org.kie.workbench.common.stunner.core.graph.Element<org.kie.workbench.common.stunner.core.graph.content.view.View<?>> candidate, boolean fireEvents)  
      void removeChild​(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child)
      This method removes the given child instance as children for the given given parent instance.
      void removeShape​(org.kie.workbench.common.stunner.core.client.shape.Shape shape)  
      protected void showError​(org.kie.workbench.common.stunner.core.client.service.ClientRuntimeError error)  
      void undock​(org.kie.workbench.common.stunner.core.graph.Element target, org.kie.workbench.common.stunner.core.graph.Element child)
      This method removes the given child instance as docked child for the given given parent instance.
    • Constructor Detail

      • BaseCanvasHandler

        public BaseCanvasHandler​(org.kie.workbench.common.stunner.core.api.DefinitionManager definitionManager,
                                 org.kie.workbench.common.stunner.core.graph.util.GraphUtils graphUtils,
                                 org.kie.workbench.common.stunner.core.client.api.ShapeManager shapeManager,
                                 TextPropertyProviderFactory textPropertyProviderFactory)
    • Method Detail

      • buildGraphIndex

        protected abstract void buildGraphIndex​(org.uberfire.mvp.Command loadCallback)
        Build the graph index instance using any concrete index/builder types. This abstract implementation expects a not null instance for the graph index.
        Parameters:
        loadCallback - Callback to run once load finishes. This kind of indexes could be loaded or cached in/from server side as well.
      • draw

        public abstract void draw​(org.uberfire.mvp.ParameterizedCommand<org.kie.workbench.common.stunner.core.command.CommandResult> loadCallback)
        Delegates the draw behavior to the subtypes.
        Parameters:
        loadCallback - Callback to run once draw has finished. It must provide a result for the draw operation/s.
      • destroyGraphIndex

        protected abstract void destroyGraphIndex​(org.uberfire.mvp.Command loadCallback)
        Destroys this instance' graph index.
        Parameters:
        loadCallback - Callback to run once index has been destroyed.
      • handle

        public org.kie.workbench.common.stunner.core.client.canvas.CanvasHandler<D,​C> handle​(C canvas)
      • draw

        public void draw​(D diagram,
                         org.uberfire.mvp.ParameterizedCommand<org.kie.workbench.common.stunner.core.command.CommandResult> loadCallback)
      • getCanvas

        public C getCanvas()
      • getDiagram

        public D getDiagram()
      • loadRuleSet

        protected void loadRuleSet​(org.uberfire.mvp.Command callback)
      • getShapeFactory

        public org.kie.workbench.common.stunner.core.client.shape.factory.ShapeFactory<Object,​org.kie.workbench.common.stunner.core.client.shape.Shape> getShapeFactory​(String shapeSetId)
        Specified by:
        getShapeFactory in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
      • register

        public void register​(org.kie.workbench.common.stunner.core.client.shape.Shape shape,
                             org.kie.workbench.common.stunner.core.graph.Element<org.kie.workbench.common.stunner.core.graph.content.view.View<?>> candidate,
                             boolean fireEvents)
        Specified by:
        register in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
      • deregister

        public void deregister​(org.kie.workbench.common.stunner.core.client.shape.Shape shape,
                               org.kie.workbench.common.stunner.core.graph.Element element,
                               boolean fireEvents)
        Specified by:
        deregister in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
      • addShape

        public void addShape​(org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • removeShape

        public void removeShape​(org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • applyElementMutation

        public void applyElementMutation​(org.kie.workbench.common.stunner.core.client.shape.Shape shape,
                                         org.kie.workbench.common.stunner.core.graph.Element candidate,
                                         boolean applyPosition,
                                         boolean applyProperties,
                                         org.kie.workbench.common.stunner.core.client.shape.MutationContext mutationContext)
        Specified by:
        applyElementMutation in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
      • applyElementMutation

        protected void applyElementMutation​(org.kie.workbench.common.stunner.core.client.shape.ElementShape graphShape,
                                            org.kie.workbench.common.stunner.core.graph.Element candidate,
                                            boolean applyPosition,
                                            boolean applyProperties,
                                            org.kie.workbench.common.stunner.core.client.shape.MutationContext mutationContext)
      • applyElementMutation

        protected void applyElementMutation​(org.kie.workbench.common.stunner.core.client.shape.Shape shape,
                                            org.kie.workbench.common.stunner.core.graph.Element candidate)
      • applyElementTitle

        protected void applyElementTitle​(org.kie.workbench.common.stunner.core.client.shape.ElementShape shape,
                                         org.kie.workbench.common.stunner.core.graph.Element candidate,
                                         org.kie.workbench.common.stunner.core.client.shape.MutationContext mutationContext)
      • beforeDraw

        protected void beforeDraw​(org.kie.workbench.common.stunner.core.graph.Element element,
                                  org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • afterDraw

        protected void afterDraw​(org.kie.workbench.common.stunner.core.graph.Element element,
                                 org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • addChild

        public void addChild​(org.kie.workbench.common.stunner.core.graph.Element parent,
                             org.kie.workbench.common.stunner.core.graph.Element child)
        Description copied from class: AbstractCanvasHandler
        This method sets the given child instance as children for the given given parent instance. It sets the shape for the child instance as child shape for the parent instance's shape.
        Specified by:
        addChild in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
        Parameters:
        parent - The parent graph element.
        child - The graph element to set as child.
      • addChild

        public void addChild​(org.kie.workbench.common.stunner.core.graph.Element parent,
                             org.kie.workbench.common.stunner.core.graph.Element child,
                             int index)
        Description copied from class: AbstractCanvasHandler
        This method sets the given child instance as children for the given given parent instance at the given index. The default implementation adds the child to the parent and index is unused. The Child's Shape is also set as a sibling of the Parent Shape.
        Specified by:
        addChild in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
        Parameters:
        parent - The parent graph element.
        child - The graph element to set as child.
        index - The index of the child in the parent.
      • removeChild

        public void removeChild​(org.kie.workbench.common.stunner.core.graph.Element parent,
                                org.kie.workbench.common.stunner.core.graph.Element child)
        Description copied from class: AbstractCanvasHandler
        This method removes the given child instance as children for the given given parent instance. It removes the shape for the child instance as child shape for the parent instance's shape.
        Specified by:
        removeChild in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
        Parameters:
        parent - The parent graph element.
        child - The element to remove as a child from the parent.
      • getElementAt

        public Optional<org.kie.workbench.common.stunner.core.graph.Element> getElementAt​(double x,
                                                                                          double y)
        Description copied from class: AbstractCanvasHandler
        Gets the Element at the specified Canvas coordinates
        Specified by:
        getElementAt in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
        Parameters:
        x - The X canvas coordinate
        y - The Y canvas coordinate
        Returns:
        Element at the coordinate
      • getElement

        protected Optional<org.kie.workbench.common.stunner.core.graph.Element> getElement​(String uuid)
      • isCanvasRoot

        protected boolean isCanvasRoot​(String pUUID)
      • dock

        public boolean dock​(org.kie.workbench.common.stunner.core.graph.Element parent,
                            org.kie.workbench.common.stunner.core.graph.Element child)
        Description copied from class: AbstractCanvasHandler
        This method sets the given child instance as docked child for the given given parent instance. It sets the shape for the child instance as a docked child shape for the parent instance's shape.
        Specified by:
        dock in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
        Parameters:
        parent - The parent graph element.
        child - The graph element to set as a docked child.
      • undock

        public void undock​(org.kie.workbench.common.stunner.core.graph.Element target,
                           org.kie.workbench.common.stunner.core.graph.Element child)
        Description copied from class: AbstractCanvasHandler
        This method removes the given child instance as docked child for the given given parent instance. It removes the shape for the child instance as a docked child shape for the parent instance's shape.
        Specified by:
        undock in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
        Parameters:
        target - The parent graph element.
        child - The element to remove as a docked child from the parent.
      • afterElementAdded

        protected void afterElementAdded​(org.kie.workbench.common.stunner.core.graph.Element element,
                                         org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • beforeElementDeleted

        protected void beforeElementDeleted​(org.kie.workbench.common.stunner.core.graph.Element element,
                                            org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • afterElementDeleted

        protected void afterElementDeleted​(org.kie.workbench.common.stunner.core.graph.Element element,
                                           org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • beforeElementUpdated

        protected void beforeElementUpdated​(org.kie.workbench.common.stunner.core.graph.Element element,
                                            org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • afterElementUpdated

        protected void afterElementUpdated​(org.kie.workbench.common.stunner.core.graph.Element element,
                                           org.kie.workbench.common.stunner.core.client.shape.Shape shape)
      • doClear

        public org.kie.workbench.common.stunner.core.client.canvas.CanvasHandler<D,​C> doClear()
        Description copied from class: AbstractCanvasHandler
        Subtypes must clear this instance's state here.
        Specified by:
        doClear in class AbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,​C extends AbstractCanvas>
      • destroyGraph

        protected void destroyGraph​(org.uberfire.mvp.Command callback)
      • showError

        protected void showError​(org.kie.workbench.common.stunner.core.client.service.ClientRuntimeError error)
      • getGraphUtils

        public org.kie.workbench.common.stunner.core.graph.util.GraphUtils getGraphUtils()
      • getShapeManager

        public org.kie.workbench.common.stunner.core.client.api.ShapeManager getShapeManager()
      • getDefinitionId

        protected String getDefinitionId​(Object definition)