Class
DiagramToHyperTreeAdapter<TNodeData, TLinkData>

Adapter between the diagram control and the graph representation. It converts shape and connections to nodes and edges taking into the containers and their collapse state, the visibility of items and more. If the LayoutContainerChildren is true a hypertree is constructed which holds the hierarchy of containers and many conditions are analyzed to investigate how the effective graph structure looks like and how the layout has to be performed.

Definition

Namespace:Telerik.Windows.Diagrams.Core

Assembly:Telerik.Windows.Diagrams.Core.dll

Type Parameters:

TNodeData

The type of the node data.

TLinkData

The type of the link data.

Syntax:

cs-api-definition
public sealed class DiagramToHyperTreeAdapter<TNodeData, TLinkData> where TNodeData : new() where TLinkData : new()

Inheritance: objectDiagramToHyperTreeAdapter<TNodeData, TLinkData>

Constructors

DiagramToHyperTreeAdapter()

Initializes a new instance of the DiagramToHyperTreeAdapter<TNodeData, TLinkData> class.

Declaration

cs-api-definition
public DiagramToHyperTreeAdapter()

DiagramToHyperTreeAdapter(IGraph, GraphAnalysisSettings)

Initializes a new instance of the DiagramToHyperTreeAdapter<TNodeData, TLinkData> class.

Declaration

cs-api-definition
public DiagramToHyperTreeAdapter(IGraph diagramControl, GraphAnalysisSettings settings = null)

Parameters

diagramControl

IGraph

The diagram control which should be mapped to its graph-analytical analog.

settings

GraphAnalysisSettings

The settings used to convert the diagram to a graph.

Properties

HyperTree

Gets the hypertree when LayoutContainerChildren is true. This represents the hierarchy of containers and their content graph. If LayoutContainerChildren is false this property will return null.

Declaration

cs-api-definition
public HyperTree<TNodeData, TLinkData> HyperTree { get; }

Property Value

HyperTree<TNodeData, TLinkData>

IgnoredConnections

Gets the connections which are being ignored because of graph analytical reasons.

Declaration

cs-api-definition
public IList<IConnection> IgnoredConnections { get; }

Property Value

IList<IConnection>

IgnoredShapes

Gets the shapes which are being ignored because of graph analytical reasons. Ignored shapes are not mapped to a Node<TNodeData, TLinkData>. An ignored shape can however have a mapped shape (container) when it sits in a collapsed container. In this case the ShapeMap maps the shape to the container.

Declaration

cs-api-definition
public IList<IShape> IgnoredShapes { get; }

Property Value

IList<IShape>

Gets the collection of Edge<TNodeData, TLinkData> items corresponding to the Connections items.

Declaration

cs-api-definition
[SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public IList<Edge<TNodeData, TLinkData>> Links { get; }

Property Value

IList<Edge<TNodeData, TLinkData>>

Remarks

Note that the this collection can be a reduced set of the original Connections set. The omitted items can be found in the IgnoredConnections collection.

Nodes

Gets the collection of Node<TNodeData, TLinkData> items corresponding to the Shapes items.

Declaration

cs-api-definition
[SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public IList<Node<TNodeData, TLinkData>> Nodes { get; }

Property Value

IList<Node<TNodeData, TLinkData>>

ShapeMap

Gets the mapping of a shape to a container in case the shape sits in a collapsed container.

Declaration

cs-api-definition
public Dictionary<IShape, IContainerShape> ShapeMap { get; }

Property Value

Dictionary<IShape, IContainerShape>

Methods

Convert(IGraph, GraphAnalysisSettings)

Converts the given diagram to a Graph<TNodeData, TLinkData>.

Declaration

cs-api-definition
public void Convert(IGraph diagram = null, GraphAnalysisSettings newSettings = null)

Parameters

diagram

IGraph

The diagram from which graph analytical information should be extracted.

newSettings

GraphAnalysisSettings

The settings used to convert the diagram to a graph.

Remarks

The is used when the LayoutContainerChildren is true. It contains the hierarchy of containers whereby each node is a ContainerGraph<TNodeData, TLinkData>. This type of node has a Container reference to the container which holds the Graph items. There are three possible situations during the conversion process:

  • Ignore the containers: the container are non-existent and only normal shapes are mapped. If a shape has a connection to a container it will be ignored as well since there is no node mapped for the container.
  • Do not ignore the containers and leave the content of the containers untouched: the top-level elements are being mapped and the children within a container are not altered.
  • Do not ignore the containers and organize the content of the containers as well: the hypertree is constructed and there is a partitioning of all nodes and connections into the hypertree. The only reason a connection or node is not being mapped might be due to the visibility, which includes the visibility change through a collapsed parent container.

GetNode(IShape)

Creates a Node<TNodeData, TLinkData> from a given IShape.

Declaration

cs-api-definition
public Node<TNodeData, TLinkData> GetNode(IShape shape)

Parameters

shape

IShape

The shape which should be mapped to a Node<TNodeData, TLinkData>.

Returns

Node<TNodeData, TLinkData>

The Node<TNodeData, TLinkData> corresponding to the given shape.

Map(IConnection)

Maps the specified connection to an edge of the graph deduced from the given diagram.

Declaration

cs-api-definition
public Edge<TNodeData, TLinkData> Map(IConnection connection)

Parameters

connection

IConnection

The connection.

Returns

Edge<TNodeData, TLinkData>

Map(IShape)

Maps the specified shape to a node of the graph deduced from the given diagram.

Declaration

cs-api-definition
public Node<TNodeData, TLinkData> Map(IShape shape)

Parameters

shape

IShape

The shape.

Returns

Node<TNodeData, TLinkData>