private void InitDocument() { // create a random tree NGenericTreeTemplate treeTemplate = new NGenericTreeTemplate(); treeTemplate.BranchNodes = 3; treeTemplate.VerticesSize = new NSizeF(90, 90); treeTemplate.Balanced = false; treeTemplate.Levels = 5; treeTemplate.Create(document); // add show-hide subtree decorator for each shape that has children foreach (NShape shape in document.ActiveLayer.Children(NFilters.Shape2D)) { if (shape.GetOutgoingShapes().Count == 0) { continue; } // create the decorators collection shape.CreateShapeElements(ShapeElementsMask.Decorators); NShowHideSubtreeDecorator decorator = new NShowHideSubtreeDecorator(); decorator.Offset = new NSizeF(-11, 11); decorator.Alignment = new NContentAlignment(ContentAlignment.TopLeft); shape.Decorators.AddChild(decorator); } document.AutoBoundsMinSize = new NSizeF(400, 400); DoLayout(); }
private void AddShowHideSubtree(NGroup group) { group.CreateShapeElements(ShapeElementsMask.Decorators); NShowHideSubtreeDecorator decorator = new NShowHideSubtreeDecorator(); decorator.Offset = new NSizeF(group.Width - decorator.Size.Width / 2, -group.Height / 2); decorator.Background.Shape = ToggleDecoratorBackgroundShape.Ellipse; group.Decorators.AddChild(decorator); }
private void InitDocument() { NDrawingDocument document = NDrawingView1.Document; // remove the standard frame document.BackgroundStyle.FrameStyle.Visible = false; // set up visual formatting document.Style.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant3, Color.FromArgb(192, 194, 194), Color.FromArgb(129, 133, 133)); document.Style.StrokeStyle = new NStrokeStyle(1, Color.FromArgb(68, 90, 108)); // create a stylesheet for the edges NStyleSheet sheet = new NStyleSheet("edges"); sheet.Style.StartArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); sheet.Style.EndArrowheadStyle = new NArrowheadStyle(ArrowheadShape.None, "", NSizeL.Empty, document.Style.FillStyle, document.Style.StrokeStyle); document.StyleSheets.AddChild(sheet); // generate a simple tree NGenericTreeTemplate tree = new NGenericTreeTemplate(); tree.VerticesSize = new NSizeF(80, 80); tree.EdgesStyleSheetName = "edges"; tree.Create(document); // create a show/hide decorator for all shapes that have children NNodeList shapes = document.ActiveLayer.Descendants(NFilters.Shape2D, -1); int i, count = shapes.Count; for (i = 0; i < count; i++) { NShape shape = (NShape)shapes[i]; if (shape.GetOutgoingShapes().Count == 0) { continue; } shape.CreateShapeElements(ShapeElementsMask.Decorators); NShowHideSubtreeDecorator decorator = new NShowHideSubtreeDecorator(); decorator.Name = "ShowHideSubtree"; shape.Decorators.AddChild(new NShowHideSubtreeDecorator()); } // size the document to the content document.SizeToContent(); }