I

INodeStyleRenderer

Interface used by INodeStyle implementations that can be used to query the actual IVisualCreator, IBoundsProvider, IHitTestable, IMarqueeTestable, and ILassoTestable implementations for a node and an associated style.
Inheritance Hierarchy

Remarks

Implementations of this interface should be designed to be shareable between multiple style instances and should therefore not contain style-specific state.

See Also

Developer's Guide

API

INodeStyle, INode, IEdgeStyleRenderer, ILabelStyleRenderer, IPortStyleRenderer

Members

No filters for this type

Methods

Gets an implementation of the IBoundsProvider interface that can handle the provided node and its associated style.
This method may return a flyweight implementation.
abstract

Parameters

node: INode
The node to provide an instance for
style: INodeStyle
The style to use for calculating the rendering bounds

Return Value

IBoundsProvider
An implementation that may be used to subsequently query the node's rendering bounds. Clients should not cache this instance and must always call this method immediately before using the value returned. This enables the use of the flyweight design pattern for implementations
Gets a temporary context instance that can be used to query additional information for the node's style.

Implementations may return ILookup.EMPTY if they do not support this, but may not return null.

The main purpose of this context lookup is to provide a way for style implementations to customize behavior that is not associated to one of the interfaces that are directly available from the INodeStyleRenderer interface. E.g. the context lookup of a custom style implementation might return a custom ISelectionRenderer<Object> implementation to change the visualization of the selected state for nodes that use said custom style.

Returning null from this context lookup for a queried type cannot be used to "turn off" the default behavior for said type. To turn off the default behavior, either return an implementation of the required type that "does nothing" or LookupDecorator<TDecoratedType, TInterface>.hide the default implementation using an appropriate predicate.

abstract

Parameters

node: INode
The node to provide a context instance for.
style: INodeStyle
The style to use for the context.

Return Value

ILookup
A non-null lookup implementation.

See Also

API
ILookup
Gets an implementation of the IHitTestable interface that can handle the provided node and its associated style.
This method may return a flyweight implementation.
abstract

Parameters

node: INode
The node to provide an instance for
style: INodeStyle
The style to use for calculating hit tests

Return Value

IHitTestable
An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must always call this method immediately before using the value returned. This enables the use of the flyweight design pattern for implementations. This method may return null to indicate that the node cannot be hit tested.
Gets an implementation of the ILassoTestable interface that can handle the provided node and its associated style.
This method may return a flyweight implementation.
abstract

Parameters

node: INode
The node to provide an instance for
style: INodeStyle
The style to use for calculating lasso intersection tests

Return Value

ILassoTestable
An implementation that may be used to subsequently query if the item is deemed to be inside a lasso selection path. Clients should not cache this instance and must always call this method immediately before using the value returned. This enables the use of the flyweight design pattern for implementations
Gets an implementation of the IMarqueeTestable interface that can handle the provided node and its associated style.
This method may return a flyweight implementation.
abstract

Parameters

node: INode
The node to provide an instance for
style: INodeStyle
The style to use for calculating marquee intersection tests

Return Value

IMarqueeTestable
An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this instance and must always call this method immediately before using the value returned. This enables the use of the flyweight design pattern for implementations
Gets an implementation of the IShapeGeometry interface that can handle the provided node and its associated style.
This method may return a flyweight implementation.
abstract

Parameters

node: INode
The node to provide an instance for
style: INodeStyle
The style to use for calculating the path geometry

Return Value

IShapeGeometry
An implementation that may be used to subsequently query geometry information from. Clients should not cache this instance and must always call this method immediately before using the value returned. This enables the use of the flyweight design pattern for implementations
Gets an implementation of the IVisibilityTestable interface that can handle the provided node and its associated style.
This method may return a flyweight implementation.
abstract

Parameters

node: INode
The node to provide an instance for
style: INodeStyle
The style to use for testing the visibility

Return Value

IVisibilityTestable
An implementation that may be used to subsequently query the node's visibility. Clients should not cache this instance and must always call this method immediately before using the value returned. This enables the use of the flyweight design pattern for implementations
Gets an implementation of the IVisualCreator interface that can handle the provided node and its associated style.
This method may return a flyweight implementation, but never null.
abstract

Parameters

node: INode
The node to provide an instance for
style: INodeStyle
The style to use for creating the node visualization

Return Value

IVisualCreator
An implementation that may be used to subsequently create or update the visual for the node. Clients should not cache this instance and must always call this method immediately before using the value returned. This enables the use of the flyweight design pattern for implementations. This method may not return null but should yield a void implementation instead.