skip navigation
  • Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • AI Coding Assistants
    • Embedded Reporting
    • Document Processing Libraries
    • SSO Account Sign-in

    Web

    Kendo UI UI for Angular UI for Vue UI for jQuery KendoReact UI for Blazor UI for ASP.NET Core UI for ASP.NET MVC UI for ASP.NET AJAX

    Mobile

    UI for .NET MAUI

    Document Management

    Telerik Document Processing

    Desktop

    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF

    Reporting

    Telerik Reporting Telerik Report Server

    Testing & Mocking

    Test Studio Telerik JustMock

    CMS

    Sitefinity

    AI Productivity Tools

    AI Coding Assistants

    UI/UX Tools

    ThemeBuilder Design System Kit Templates and Building Blocks

    Debugging

    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Everywhere Reporter FiddlerCore

    Free Tools

    KendoReact Free VB.NET to C# Converter Testing Framework
    View all products
  • Overview
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Support and Learning

    • Support and Learning Hub
    • First Steps
    • Docs
    • Demos
    • Virtual Classroom
    • Forums
    • Videos
    • Blogs
    • Accessibility
    • Submit a Ticket

    Productivity and Design Tools

    • Visual Studio Extensions
    • Visual Studio Templates
    • Embedded Reporting
  • Pricing
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Downloads
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

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.

Inheritance
System.Object
DiagramToHyperTreeAdapter<TNodeData, TLinkData>
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: Telerik.Windows.Diagrams.Core
Assembly: Telerik.WinControls.RadDiagram.dll

Syntax

public sealed class DiagramToHyperTreeAdapter<TNodeData, TLinkData>
    where TNodeData : new()
    where TLinkData : new()
Type Parameters
TNodeData

The type of the node data.

TLinkData

The type of the link data.

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
IGraph diagramControl

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

GraphAnalysisSettings 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
System.Collections.Generic.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
public IList<IShape> IgnoredShapes { get; }
Property Value
System.Collections.Generic.IList<IShape>

Links

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

Declaration
public IList<Edge<TNodeData, TLinkData>> Links { get; }
Property Value
System.Collections.Generic.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
public IList<Node<TNodeData, TLinkData>> Nodes { get; }
Property Value
System.Collections.Generic.IList<Node<TNodeData, TLinkData>>

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
System.Collections.Generic.Dictionary<IShape, IContainerShape>

Methods

Convert(IGraph, GraphAnalysisSettings)

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

Declaration
public void Convert(IGraph diagram = null, GraphAnalysisSettings newSettings = null)
Parameters
IGraph diagram

The diagram from which graph analytical information should be extracted.

GraphAnalysisSettings newSettings

The settings used to convert the diagram to a graph.

Remarks

The Telerik.Windows.Diagrams.Core.DiagramToHyperTreeAdapter`2.hyperTree 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
public Node<TNodeData, TLinkData> GetNode(IShape shape)
Parameters
IShape shape

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
public Edge<TNodeData, TLinkData> Map(IConnection connection)
Parameters
IConnection connection

The connection.

Returns
Edge<TNodeData, TLinkData>

Map(IShape)

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

Declaration
public Node<TNodeData, TLinkData> Map(IShape shape)
Parameters
IShape shape

The shape.

Returns
Node<TNodeData, TLinkData>

Extension Methods

SvgExtentions.Traverse<T>(T, Func<T, IEnumerable<T>>)
SvgExtentions.TraverseDepthFirst<T>(T, Func<T, IEnumerable<T>>)
Getting Started
  • Install Now
  • Demos
  • Step-by-Step Tutorial
  • Sample Applications
  • SDK Samples
  • Visual Studio Extensions
Support Resources
  • Code Library
  • Knowledge Base
  • Videos
Community
  • Forums
  • Blogs
  • Feedback Portal
  • Document Processing Feedback Portal

Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.