ClassDiagramToHyperTreeAdapter<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:
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
public DiagramToHyperTreeAdapter()
DiagramToHyperTreeAdapter(IGraph, GraphAnalysisSettings)
Initializes a new instance of the DiagramToHyperTreeAdapter<TNodeData, TLinkData> class.
Declaration
public DiagramToHyperTreeAdapter(IGraph diagramControl, GraphAnalysisSettings settings = null)
Parameters
diagramControl
The diagram control which should be mapped to its graph-analytical analog.
settings
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
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
public IList<IConnection> IgnoredConnections { get; }
Property Value
IgnoredShapes
Links
Gets the collection of Edge<TNodeData, TLinkData> items corresponding to the Connections items.
Declaration
[SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public IList<Edge<TNodeData, TLinkData>> Links { get; }
Property Value
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.
ShapeMap
Gets the mapping of a shape to a container in case the shape sits in a collapsed container.
Declaration
public Dictionary<IShape, IContainerShape> ShapeMap { get; }
Property Value
Methods
Convert(IGraph, GraphAnalysisSettings)
Converts the given diagram to a Graph<TNodeData, TLinkData>.
Declaration
public void Convert(IGraph diagram = null, GraphAnalysisSettings newSettings = null)
Parameters
diagram
The diagram from which graph analytical information should be extracted.
newSettings
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.
Map(IConnection)
Maps the specified connection to an edge of the graph deduced from the given diagram.
Declaration
public Edge<TNodeData, TLinkData> Map(IConnection connection)
Parameters
connection
The connection.
Returns
Edge<TNodeData, TLinkData>
Map(IShape)
Maps the specified shape to a node of the graph deduced from the given diagram.