/// <summary> /// Draw new shape /// </summary> /// <param name="centerLocation"></param> /// <param name="id"></param> /// <returns></returns> private Microsoft.Msagl.Drawing.Node Draw(Microsoft.Msagl.Core.Geometry.Point centerLocation) { graph = gViewer.Graph; var id = drawForm.ShapeId; Microsoft.Msagl.Drawing.Node node = graph.AddNode(id); node.Label.Text = drawForm.ShapeLabel; node.Attr.Shape = drawForm.ChosenShape; node.Attr.Color = Color.Black; node.Attr.FillColor = new Microsoft.Msagl.Drawing.Color(drawForm.ChosenColor.A, drawForm.ChosenColor.R, drawForm.ChosenColor.G, drawForm.ChosenColor.B); node.Attr.LineWidth = MinSize / 5; node.Attr.XRadius = node.Attr.YRadius = MinSize / 2; node.Label.FontColor = Color.Black; node.Label.FontSize = drawForm.FontSize; NodeWidth = drawForm.ShapeWidth; NodeHeight = drawForm.ShapeHeight; NodeCenter = centerLocation; node.NodeBoundaryDelegate = new DelegateToSetNodeBoundary(DrawCurve); //if (drawForm.BackgroundNode) //{ // node.NodeBoundaryDelegate = new DelegateToSetNodeBoundary(GetNodeBoundary); // node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(DrawImageNode); // drawForm.BackgroundNode = false; //} IViewerNode dNode = gViewer.CreateIViewerNode(node, centerLocation, null); gViewer.AddNode(dNode, true); // gViewer.ResizeNodeToLabel(node); return(node); }
internal virtual Node InsertNode(MSAGLPoint center, string id) { var node = new Node(id); node.Label.Text = "default"; node.Attr.FillColor = MSAGLColor.Black; node.Label.FontColor = MSAGLColor.White; node.Label.FontSize = 10; node.Attr.Shape = Shape.Circle; string s = "User Data object"; node.UserData = s; IViewerNode dNode = gViewer.CreateIViewerNode(node, center, null); gViewer.AddNode(dNode, true); gViewer.Invalidate(dNode); //NodeInsertedByUser(this, new NodeInsertedByUserEventArgs(node)); return(node); }
/// <summary> /// Inserts a new node at the selected point, with standard attributes, and displays it. /// </summary> /// <param name="center">The location of the node on the graph</param> /// <param name="nte">The NodeTypeEntry structure containing the initial aspect of the node</param> /// <param name="id">The id for the node</param> /// <returns>The new node</returns> internal virtual DrawingNode InsertNode(Point center, NodeTypeEntry nte, string id) { var node = new DrawingNode(id); node.Label.Text = nte.DefaultLabel; node.Attr.FillColor = nte.FillColor; node.Label.FontColor = nte.FontColor; node.Label.FontSize = nte.FontSize; node.Attr.Shape = nte.Shape; string s = nte.UserData; node.UserData = s; IViewerNode dNode = gViewer.CreateIViewerNode(node, center, null); gViewer.AddNode(dNode, true); return(node); }
private void InitPalette() { foreach (var type in graph.GetNodeTypes()) { var button = new Button { Text = type.Name, Dock = DockStyle.Bottom }; button.Click += (sender, args) => { var node = graph.CreateNewNode(type); node.GeometryNode = GeometryGraphCreator.CreateGeometryNode(viewer.Graph, viewer.Graph.GeometryGraph, node, ConnectionToGraph.Disconnected); var viewNode = viewer.CreateIViewerNode(node, viewer.Graph.Nodes.ToList()[0].Pos - new Point(250, 0), null); viewer.AddNode(viewNode, true); viewer.Graph.AddNode(node); viewer.Invalidate(); }; button.Font = new Font(button.Font.FontFamily, fontSize); button.Size = new Size(button.Width, button.Height + 10); paletteGrid.Controls.Add(button, 0, paletteGrid.RowCount - 1); ++paletteGrid.RowCount; } }