GoDigram for .NET Framework and .NET Core
Northwoods.Go.Layout Namespace / GoLayoutTree Class
Members Example
In This Topic
    GoLayoutTree Class
    In This Topic
    Position nodes in a tree-like arrangement.
    Syntax
    [DesignerCategory("Component")]
    [Serializable()]
    public class GoLayoutTree : GoLayout 
    Example
    Typical usage: To lay out only a portion of a document, you will need to construct a GoLayoutTreeNetwork, initialize it with just the nodes and links that you want to use, and set the Network property. Read the GoLayout User Guide for more details.
    GoDocument doc = goView1.Document;
    doc.StartTransaction();
    GoLayoutTree layout = new GoLayoutTree();
    layout.Document = doc;
    layout.Angle = 90;
    layout.NodeSpacing = 15;
    layout.LayerSpacing = 40;
    // ...maybe set other properties, such as those of layout.AlternateDefaults ...
    layout.PerformLayout();
    doc.FinishTransaction("layout");
    GoDocument doc = goView1.Document;
    doc.StartTransaction();
    GoLayoutTree layout = new GoLayoutTree();
    layout.Document = doc;
    layout.Network = layout.CreateNetwork();
    // if you want to start off with the network representing the complete document,
    // and then remove the nodes (or links) that you don't want:
    layout.Network.AddNodesAndLinksFromCollection(doc, true);
    foreach (GoObject obj in doc) {
      if (...obj is a node that you want to exclude from the layout...) {
        layout.Network.DeleteNode(obj);  // there is also a DeleteLink method
      }
    }
    layout.Angle = 90;
    layout.NodeSpacing = 15;
    layout.LayerSpacing = 40;
    // ...maybe set other properties...
    layout.PerformLayout();
    doc.FinishTransaction("layout");
    See Also