A frequent requirement for many kinds of diagrams is to keep their underlying graphs acyclic. If your application lets users draw diagrams interactively, you could prevent forming a cycle by rejecting new link between a pair of nodes that are already connected by a path.
Continue readingFind descendant nodes in MindFusion diagrams
This post demonstrates MindFusion.Diagramming API functionality that let you traverse connected diagram elements (following incident edges and adjacent nodes in graph-theory terminology). A diagram is treated as directed graph, where each node exposes incomingLinks and outgoingLinks collection properties, and respectively each link exposes origin and destination node properties. Thus the classic breadth-first search algorithm can be implemented like this for a diagram, with the callback parameter being invoked for each node, also reporting visit order and distance from initial node (as in length of shortest path in the graph):
Save and Load Part of Diagram Data to/from JSON Files
In this blog post we will demonstrate how you can implement methods that save and load part of the information that a diagram renders into JSON format. The Diagram class has built-in toJson and fromJson methods. They serialize completely the diagram with every detail so you can restore it completely, exactly the way you see it. What we are going to do is write custom save and load methods that use only part of the information – namely the size and location of nodes and links as well as their text.
Building ListView-like TableNode-s with Blazor Diagram
In this blog post we look how you can create TableNode that render their cells following the logic of a list view: the tables have as many table columns and rows as needed in order to fit their content. The width of each column is fixed. When necessary, tables can be scrolled vertically. This is the final result:
A Dougnut Chart in .NET Blazor
In this blog post we are going to walk through the steps necessary to build the beautiful doughnut chart that you see at the image below:
We are going to use MindFusion Charting library for Blazor and Visual Studio as the IDE for the project.