Class EdgeRendererRegistry
- Namespace
- FlowGraph.Avalonia.Rendering.EdgeRenderers
- Assembly
- FlowGraph.Avalonia.dll
Registry for custom edge renderers. Maps edge type strings to renderer implementations.
public class EdgeRendererRegistry
- Inheritance
-
EdgeRendererRegistry
- Inherited Members
Examples
var registry = new EdgeRendererRegistry();
// Register specific type
registry.Register("sequence-message", new SequenceMessageRenderer());
// Register wildcard pattern
registry.Register("swimlane-*", new SwimlaneEdgeRenderer());
// Set default renderer
registry.SetDefault(new OrthogonalEdgeRenderer());
Remarks
The registry uses a hierarchical lookup strategy: 1. Exact match on edge's custom type (e.g., "sequence-message") 2. Prefix match with wildcard (e.g., "sequence-*" matches "sequence-message") 3. Fall back to default renderer
Edge type is determined from the edge's Type property when set to Custom, combined with a custom type string stored in edge metadata.
Methods
Clear()
Clears all registered custom renderers.
public void Clear()
GetRenderer(Edge)
Gets the appropriate renderer for an edge.
public IEdgeRenderer? GetRenderer(Edge edge)
Parameters
edgeEdgeThe edge to get a renderer for.
Returns
- IEdgeRenderer
The matching renderer, or null to use built-in rendering.
GetRendererByKey(string)
Gets a renderer for a specific string type key. This allows Pro features to use custom type strings without modifying core Edge.
public IEdgeRenderer? GetRendererByKey(string typeKey)
Parameters
typeKeystringThe custom type key.
Returns
- IEdgeRenderer
The registered renderer, or null if not found.
HasRenderer(string)
Checks if a custom renderer is registered for the given edge type.
public bool HasRenderer(string edgeType)
Parameters
edgeTypestringThe edge type to check.
Returns
- bool
True if a custom renderer exists.
Register(string, IEdgeRenderer)
Registers a renderer for a specific edge type.
public void Register(string edgeType, IEdgeRenderer renderer)
Parameters
edgeTypestringThe edge type string to match.
rendererIEdgeRendererThe renderer to use for this type.
SetDefault(IEdgeRenderer?)
Sets the default renderer used when no specific match is found.
public void SetDefault(IEdgeRenderer? renderer)
Parameters
rendererIEdgeRendererThe default renderer, or null to use built-in rendering.
Unregister(string)
Unregisters a renderer for a specific edge type.
public bool Unregister(string edgeType)
Parameters
edgeTypestringThe edge type to unregister.
Returns
- bool
True if the renderer was removed, false if not found.