A foundational abstract implementation of IEdgeStyle that delegates its behavior to pre-configured style instances.
Implements
- I
- I
Remarks
This class supports three primary use cases:
- Wrapping another style with a customized API. This is ideal for providing a simpler or domain-specific API by mapping properties from a subclass to the corresponding values of the delegated style. Subclasses typically return the preconfigured instance from getStyle and modify it in the constructor or through custom property setters.
- Dynamically reconfiguring a style based on the target edge. In this scenario, the implementation keeps one or more style instances as fields and switches between them in getStyle, depending on attributes of the edge, such as its tag property. This approach may also involve dynamically reconfiguring the style instance for specific edge instances. When appropriate, implementations may override clone to simply return
this. - Replacing one part of the implementation of another style. Instead of subclassing another style, the implementation delegates to all but a subset of the various aspects to an existing implementation and provides its own implementation, otherwise, via overriding specific methods of the base EdgeStyleBase<TVisual> class.
Subclasses must implement getStyle and should ensure that it executes quickly and without allocations.
See Also
Developer's Guide
API
- getStyle
Members
Show:
Constructors
Properties
Gets the renderer implementation for this instance.
Gets the renderer implementation for this instance.
The private implementation will delegate all API calls back to this instance.
readonlyfinal
Defined in
EdgeStyleBase.rendererMethods
protected
Parameters
- context: IRenderContext
- The context for the rendering.
- group: SVGGElement
- The container to which the arrows should be added.
- edge: IEdge
- The edge that is being rendered.
- edgePath: GeneralPath
- The edge path.
- sourceArrow: IArrow
- The source arrow.
- targetArrow: IArrow
- The target arrow.
Defined in
EdgeStyleBase.addArrowsReturns a memberwise clone.
Returns a memberwise clone.
Note that stateless subclasses that implement the flyweight pattern and do not carry any state can override this method and return
this, instead, as the base implementation is completely stateless.Return Value
- Object
- A clone of this instance.
Overrides
EdgeStyleBase.cloneprotected
Parameters
- context: IRenderContext
- The render context.
- edge: IEdge
- The edge to which this style instance is assigned.
Return Value
- Visual
- The visual as required by the createVisual interface.
See Also
API
- updateVisual
Overrides
EdgeStyleBase.createVisualCrops the edge's path at the nodes.
Crops the edge's path at the nodes.
This implementation uses the IEdgePathCropper instances found in the lookup of the source and target port of the edge to perform the actual cropping.
protected
Parameters
- edge: IEdge
- The edge that is being rendered.
- sourceArrow: IArrow
- The source arrow instance.
- targetArrow: IArrow
- The target arrow instance.
- path: GeneralPath
- The path that should be cropped.
Return Value
- GeneralPath
- The cropped path. This can be either the same instance of the given path or a newly created instance.
Defined in
EdgeStyleBase.cropPathprotected
Parameters
- context: ICanvasContext
- The canvas context.
- edge: IEdge
- The edge to which this style instance is assigned.
Return Value
- Rect
- The visual bounds of the visual representation.
Overrides
EdgeStyleBase.getBoundsOverriding this method allows for advanced customizations such as using a SimpleEdge with modified bends and use it for rendering while preserving the original edge's structure.
protected
Parameters
- edge: IEdge
- The original edge to be rendered.
Return Value
- IEdge
- The edge used for rendering. By default, this method returns the provided
edge. Subclasses can override this method to return a different edge, such as a SimpleEdge, to customize rendering behavior.
protected
Parameters
- edge: IEdge
- The edge.
Return Value
- GeneralPath
- The path.
Overrides
EdgeStyleBase.getPathprotected
Parameters
- edge: IEdge
- The edge.
Return Value
- number
- The segment count.
Overrides
EdgeStyleBase.getSegmentCountCalculates the source arrow anchor and direction for a given arrow and path.
Calculates the source arrow anchor and direction for a given arrow and path.
protected
Parameters
- path: GeneralPath
- The path of the edge.
- arrow: IArrow
- The arrow.
Return Value
- Tangent
- The anchor and directional vector of the arrow, if any exist.
Defined in
EdgeStyleBase.getSourceArrowAnchorProvides the core implementation of this style, returning the instance to delegate rendering logic.
Provides the core implementation of this style, returning the instance to delegate rendering logic.
This method should ideally return the same instance for identical items to ensure optimal performance. It should avoid performing expensive operations as it will be invoked frequently during rendering and other operations like hit-testing. Ideally, it should be implemented allocation-free.
protectedabstract
Parameters
- edge: IEdge
- The edge for which the style instance should be returned and applied.
Return Value
- IEdgeStyle
- The IEdgeStyle instance responsible for handling all related requests.
protected
Parameters
- edge: IEdge
- The edge.
- ratio: number
- A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the edge path.
Return Value
- Tangent
- The tangent, if it exists.
Overrides
EdgeStyleBase.getTangentprotected
Parameters
- edge: IEdge
- The edge.
- segmentIndex: number
- Index of the edge segment.
- ratio: number
- A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the edge segment.
Return Value
- Tangent
- The tangent, if it exists.
Overrides
EdgeStyleBase.getTangentForSegmentCalculates the target arrow anchor and direction for a given arrow and path.
Calculates the target arrow anchor and direction for a given arrow and path.
protected
Parameters
- path: GeneralPath
- The path of the edge.
- arrow: IArrow
- The arrow.
Return Value
- Tangent
- The anchor and directional vector of the arrow, if any exist.
Defined in
EdgeStyleBase.getTargetArrowAnchorprotected
Parameters
- context: IInputModeContext
- The input mode context.
- location: Point
- The point to test.
- edge: IEdge
- The edge to which this style instance is assigned.
Return Value
- boolean
trueif the specified edge is hit;falseotherwise.
Overrides
EdgeStyleBase.isHitprotected
Parameters
- context: IInputModeContext
- The input mode context.
- rectangle: Rect
- The marquee selection box.
- edge: IEdge
- The edge to which this style instance is assigned.
Return Value
- boolean
trueif the specified edge is visible and selected by the marquee rectangle;falseotherwise.
Overrides
EdgeStyleBase.isInBoxprotected
Parameters
- context: IInputModeContext
- The input mode context.
- path: GeneralPath
- The lasso selection path.
- edge: IEdge
- The edge to which this style instance is assigned.
Return Value
- boolean
trueif the specified edge is visible and selected by the lasso path;falseotherwise.
Overrides
EdgeStyleBase.isInPathprotected
Parameters
- context: ICanvasContext
- The canvas context.
- rectangle: Rect
- The clipping rectangle.
- edge: IEdge
- The edge to which this style instance is assigned.
Return Value
- boolean
trueif the specified edge is visible in the clipping rectangle;falseotherwise.
Overrides
EdgeStyleBase.isVisibleprotected
Parameters
- edge: IEdge
- The edge to use for the context lookup.
- type: Constructor
- The type to query.
Return Value
- any
- An implementation of the
typeornull.
Overrides
EdgeStyleBase.lookupprotected
Parameters
- context: IRenderContext
- The context for the rendering.
- group: SVGGElement
- The container to which the arrows should be added.
- edge: IEdge
- The edge that is being rendered.
- edgePath: GeneralPath
- The edge path.
- sourceArrow: IArrow
- The source arrow.
- targetArrow: IArrow
- The target arrow.
Defined in
EdgeStyleBase.updateArrowsprotected
Parameters
- context: IRenderContext
- The render context.
- oldVisual: Visual
- The visual that has been created in the call to createVisual.
- edge: IEdge
- The edge to which this style instance is assigned.
Return Value
- Visual
- The visual as required by the createVisual interface.
See Also
API
- createVisual