Find 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):

Continue reading

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.

Continue reading

Custom diagram canvas pagination

In this post we’ll show how to implement Visio-like dynamic pagination of the diagram canvas, expanding or shrinking it while users draw nodes interactively, and rendering custom page borders. This is demonstrated using MindFusion Windows Forms Diagram control, but equivalent APIs are provided by MindFusion diagramming libraries for other platforms.

Continue reading

MindFusion.Diagramming for Blazor preview

We are soon releasing Blazor / WebAssembly flow diagramming library. First version implements most of the features of core MindFusion.Diagramming namespace from our WinForms desktop component, including layout and link routing algorithms. The library also includes NodeListView component for creating nodes via drag-and-drop. Import/export classes and other UI controls such as Ruler/Overview will be added with future releases.

If anyone is interested in trying out the beta version, please download this archive containing assemblies and sample projects:

https://mindfusion.eu/BlazorDiagram.zip

Continue reading