Class BaseCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,C extends AbstractCanvas>
- java.lang.Object
-
- org.kie.workbench.common.stunner.core.client.canvas.AbstractCanvasHandler<D,C>
-
- org.kie.workbench.common.stunner.core.client.canvas.BaseCanvasHandler<D,C>
-
- 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 theAbstractCanvasHandlersuper-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 voidaddChild(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child)This method sets the givenchildinstance as children for the given givenparentinstance.voidaddChild(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child, int index)This method sets the givenchildinstance as children for the given givenparentinstance at the givenindex.voidaddShape(org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidafterDraw(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidafterElementAdded(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidafterElementDeleted(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidafterElementUpdated(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidapplyElementMutation(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 voidapplyElementMutation(org.kie.workbench.common.stunner.core.client.shape.Shape shape, org.kie.workbench.common.stunner.core.graph.Element candidate)voidapplyElementMutation(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 voidapplyElementTitle(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 voidbeforeDraw(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidbeforeElementDeleted(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidbeforeElementUpdated(org.kie.workbench.common.stunner.core.graph.Element element, org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected abstract voidbuildGraphIndex(org.uberfire.mvp.Command loadCallback)Build the graph index instance using any concrete index/builder types.voidderegister(org.kie.workbench.common.stunner.core.client.shape.Shape shape, org.kie.workbench.common.stunner.core.graph.Element element, boolean fireEvents)protected voiddestroyGraph(org.uberfire.mvp.Command callback)protected abstract voiddestroyGraphIndex(org.uberfire.mvp.Command loadCallback)Destroys this instance' graph index.booleandock(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child)This method sets the givenchildinstance as docked child for the given givenparentinstance.org.kie.workbench.common.stunner.core.client.canvas.CanvasHandler<D,C>doClear()Subtypes must clear this instance's state here.voiddoDestroy()Subtypes must destroy this instance's state here.voiddraw(D diagram, org.uberfire.mvp.ParameterizedCommand<org.kie.workbench.common.stunner.core.command.CommandResult> loadCallback)abstract voiddraw(org.uberfire.mvp.ParameterizedCommand<org.kie.workbench.common.stunner.core.command.CommandResult> loadCallback)Delegates the draw behavior to the subtypes.CgetCanvas()protected StringgetDefinitionId(Object definition)org.kie.workbench.common.stunner.core.api.DefinitionManagergetDefinitionManager()Provides a definition manager instance in this context.DgetDiagram()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 coordinatesorg.kie.workbench.common.stunner.core.graph.util.GraphUtilsgetGraphUtils()org.kie.workbench.common.stunner.core.rule.RuleSetgetRuleSet()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.ShapeManagergetShapeManager()TextPropertyProviderFactorygetTextPropertyProviderFactory()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 booleanisCanvasRoot(String pUUID)protected voidloadRuleSet(org.uberfire.mvp.Command callback)voidregister(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)voidremoveChild(org.kie.workbench.common.stunner.core.graph.Element parent, org.kie.workbench.common.stunner.core.graph.Element child)This method removes the givenchildinstance as children for the given givenparentinstance.voidremoveShape(org.kie.workbench.common.stunner.core.client.shape.Shape shape)protected voidshowError(org.kie.workbench.common.stunner.core.client.service.ClientRuntimeError error)voidundock(org.kie.workbench.common.stunner.core.graph.Element target, org.kie.workbench.common.stunner.core.graph.Element child)This method removes the givenchildinstance as docked child for the given givenparentinstance.-
Methods inherited from class org.kie.workbench.common.stunner.core.client.canvas.AbstractCanvasHandler
addDomainObjectListener, addRegistrationListener, applyElementMutation, applyElementMutation, clear, clearCanvas, clearDomainObjectListeners, clearRegistrationListeners, deregister, deregister, destroy, doBatchUpdate, equals, getAbstractCanvas, getGraphExecutionContext, getGraphIndex, getRuleManager, getUuid, hashCode, isCanvasRoot, notifyCanvasClear, notifyCanvasDomainObjectAdded, notifyCanvasDomainObjectClear, notifyCanvasDomainObjectRemoved, notifyCanvasDomainObjectUpdated, notifyCanvasElementAdded, notifyCanvasElementRemoved, notifyCanvasElementUpdated, register, register, removeDomainObjectListener, removeRegistrationListener, setGraphExecutionContext, setStaticContext, toString, updateElementPosition, updateElementProperties
-
-
-
-
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)
-
getRuleSet
public org.kie.workbench.common.stunner.core.rule.RuleSet getRuleSet()
Description copied from class:AbstractCanvasHandlerProvides the ruleSet instance for this handler.- Specified by:
getRuleSetin classAbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,C extends AbstractCanvas>
-
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:
getShapeFactoryin classAbstractCanvasHandler<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:
registerin classAbstractCanvasHandler<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:
deregisterin classAbstractCanvasHandler<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:
applyElementMutationin classAbstractCanvasHandler<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:AbstractCanvasHandlerThis method sets the givenchildinstance as children for the given givenparentinstance. It sets the shape for thechildinstance as child shape for theparentinstance's shape.- Specified by:
addChildin classAbstractCanvasHandler<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:AbstractCanvasHandlerThis method sets the givenchildinstance as children for the given givenparentinstance at the givenindex. 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:
addChildin classAbstractCanvasHandler<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:AbstractCanvasHandlerThis method removes the givenchildinstance as children for the given givenparentinstance. It removes the shape for thechildinstance as child shape for theparentinstance's shape.- Specified by:
removeChildin classAbstractCanvasHandler<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:AbstractCanvasHandlerGets the Element at the specified Canvas coordinates- Specified by:
getElementAtin classAbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,C extends AbstractCanvas>- Parameters:
x- The X canvas coordinatey- 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:AbstractCanvasHandlerThis method sets the givenchildinstance as docked child for the given givenparentinstance. It sets the shape for thechildinstance as a docked child shape for theparentinstance's shape.- Specified by:
dockin classAbstractCanvasHandler<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:AbstractCanvasHandlerThis method removes the givenchildinstance as docked child for the given givenparentinstance. It removes the shape for thechildinstance as a docked child shape for theparentinstance's shape.- Specified by:
undockin classAbstractCanvasHandler<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:AbstractCanvasHandlerSubtypes must clear this instance's state here.- Specified by:
doClearin classAbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,C extends AbstractCanvas>
-
doDestroy
public void doDestroy()
Description copied from class:AbstractCanvasHandlerSubtypes must destroy this instance's state here.- Specified by:
doDestroyin classAbstractCanvasHandler<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)
-
getDefinitionManager
public org.kie.workbench.common.stunner.core.api.DefinitionManager getDefinitionManager()
Description copied from class:AbstractCanvasHandlerProvides a definition manager instance in this context.- Specified by:
getDefinitionManagerin classAbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,C extends AbstractCanvas>
-
getTextPropertyProviderFactory
public TextPropertyProviderFactory getTextPropertyProviderFactory()
Description copied from class:AbstractCanvasHandlerProvides a Text Property Provider Factory instance in this context.- Specified by:
getTextPropertyProviderFactoryin classAbstractCanvasHandler<D extends org.kie.workbench.common.stunner.core.diagram.Diagram,C extends AbstractCanvas>
-
getGraphUtils
public org.kie.workbench.common.stunner.core.graph.util.GraphUtils getGraphUtils()
-
getShapeManager
public org.kie.workbench.common.stunner.core.client.api.ShapeManager getShapeManager()
-
-