/// <summary> /// Retrieves the persistable properties of <see cref="T:Dataweb.NShape.Advanced.TextBase" />. /// </summary> new public static IEnumerable <EntityPropertyDefinition> GetPropertyDefinitions(int version) { foreach (EntityPropertyDefinition pi in RectangleBase.GetPropertyDefinitions(version)) { yield return(pi); } yield return(new EntityFieldDefinition("AutoSize", typeof(bool))); }
public void RemoveAction(int id) { RectangleBase act = acts[id]; circleOuter.Children.Remove(act); acts.Remove(id); // ChangePropCount(); }
/// <summary> /// Retrieves the persistable properties of <see cref="T:Dataweb.NShape.Advanced.ThickArrow" />. /// </summary> new public static IEnumerable <EntityPropertyDefinition> GetPropertyDefinitions(int version) { foreach (EntityPropertyDefinition pi in RectangleBase.GetPropertyDefinitions(version)) { yield return(pi); } yield return(new EntityFieldDefinition("HeadWidth", typeof(int))); yield return(new EntityFieldDefinition("BodyHeight", typeof(int))); }
public RectangleBase AddAction(int id) { RectangleBase act = (RectangleBase)ActionType.CreateInstance(); act.IsToolbarHidden = true; acts.Add(id, act); circleOuter.Children.Add(act); // ChangePropCount(); return(act); }
/// <summary> /// 设置符号 /// </summary> private void SetTemplate() { try { //设置基本图形 RectangleBase ellipseShape = (RectangleBase)project1.ShapeTypes["Ellipse"].CreateInstance(); ellipseShape.Width = 120; ellipseShape.Height = 72; ellipseShape.X = 250; ellipseShape.Y = 250; RectangleBase ellipseShape2 = (RectangleBase)project1.ShapeTypes["Ellipse"].CreateInstance(); ellipseShape2.Width = 120; ellipseShape2.Height = 72; ellipseShape2.X = 250; ellipseShape2.Y = 250; DiamondBase diamondShape = (DiamondBase)project1.ShapeTypes["Diamond"].CreateInstance(); diamondShape.Width = 120; diamondShape.Height = 72; diamondShape.X = 250; diamondShape.Y = 250; //设置模板 Template ellipseTemplate = new Template("Input", ellipseShape); ((IPlanarShape)ellipseTemplate.Shape).FillStyle = project1.Design.FillStyles.Yellow; ((ICaptionedShape)ellipseTemplate.Shape).SetCaptionCharacterStyle(0, project1.Design.CharacterStyles["Font1"]); project1.Repository.Insert(ellipseTemplate); Template ellipseTemplate2 = new Template("Output", ellipseShape2); ((IPlanarShape)ellipseTemplate2.Shape).FillStyle = project1.Design.FillStyles.Green; ((ICaptionedShape)ellipseTemplate2.Shape).SetCaptionCharacterStyle(0, project1.Design.CharacterStyles["Font1"]); project1.Repository.Insert(ellipseTemplate2); Template diamondTemplate = new Template("Operate", diamondShape); ((IPlanarShape)diamondTemplate.Shape).FillStyle = project1.Design.FillStyles.Blue; ((ICaptionedShape)diamondTemplate.Shape).SetCaptionCharacterStyle(0, project1.Design.CharacterStyles["Font1"]); project1.Repository.Insert(diamondTemplate); RectangularLine line = (RectangularLine)project1.ShapeTypes["RectangularLine"].CreateInstance(); line.EndCapStyle = project1.Design.CapStyles.ClosedArrow; line.LineStyle = project1.Design.LineStyles["Green"]; project1.Repository.InsertAll(new Template("Connect", line)); } catch { } }
private void loadWebStatisticsToolStripMenuItem_Click(object sender, EventArgs e) { string statsDir = Path.Combine("Demo Programs", Path.Combine("WebVisits", "Sample Web Statistics")); openFileDialog.Filter = "Web Statistics|*.xml|All files|*.*"; openFileDialog.InitialDirectory = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(Application.StartupPath)), statsDir); openFileDialog.FileName = string.Empty; if (openFileDialog.ShowDialog() == DialogResult.OK) { // Create a new diagram ShapeType boxType = project.ShapeTypes["Ellipse"]; ShapeType multiLineType = project.ShapeTypes["Polyline"]; Dictionary <int, RectangleBase> boxes = new Dictionary <int, RectangleBase>(); List <Polyline> lines = new List <Polyline>(); // // Create shapes for the web pages and connect them with lines XmlScanner scanner = new XmlScanner(openFileDialog.FileName); scanner.ReadElement(); scanner.ReadElement("WebVisits"); scanner.ReadChild("Pages"); if (scanner.ReadChild("Page")) { do { scanner.ReadAttribute(); // id attribute RectangleBase box = (RectangleBase)boxType.CreateInstance(pageTemplate); box.Width = 140; boxes.Add(scanner.IntValue, box); scanner.ReadAttribute(); box.Text = scanner.StringValue; } while (scanner.ReadElement()); } scanner.ReadParent(); if (scanner.ReadChild("Referral")) { do { scanner.ReadAttribute(); // id1 int id1 = scanner.IntValue; Shape shape1 = boxes[id1]; scanner.ReadAttribute(); // id2 int id2 = scanner.IntValue; Shape shape2 = boxes[id2]; scanner.ReadAttribute(); // count int count = scanner.IntValue; Polyline line = (Polyline)multiLineType.CreateInstance(); line.EndCapStyle = project.Design.CapStyles.Arrow; line.LineStyle = GetLineStyle(count); line.Connect(ControlPointId.FirstVertex, shape1, ControlPointId.Reference); line.Connect(ControlPointId.LastVertex, shape2, ControlPointId.Reference); lines.Add(line); } while (scanner.ReadElement()); } scanner.ReadParent(); scanner.Close(); // // Insert all shapes into the diagram int cnt = 0; foreach (Diagram d in project.Repository.GetDiagrams()) { ++cnt; } Diagram diagram = new Diagram(string.Format("WebVisits Diagram {0}", cnt)); diagram.Width = 1000; diagram.Height = 1000; diagram.BackgroundImageLayout = Dataweb.NShape.ImageLayoutMode.Fit; foreach (RectangleBase b in boxes.Values) { diagram.Shapes.Add(b, project.Repository.ObtainNewTopZOrder(diagram)); } foreach (Polyline l in lines) { diagram.Shapes.Add(l, project.Repository.ObtainNewBottomZOrder(diagram)); } boxes.Clear(); lines.Clear(); // // Insert the diagram (including all shapes) into the repository project.Repository.InsertDiagram(diagram); // // Layout the shapes if (layouter == null) { layouter = new RepulsionLayouter(project); } layouter.SpringRate = 14; layouter.Repulsion = 7; layouter.RepulsionRange = 400; layouter.Friction = 0; layouter.Mass = 50; // layouter.AllShapes = diagram.Shapes; layouter.Shapes = diagram.Shapes; layouter.Prepare(); layouter.Execute(10); layouter.Fit(50, 50, diagram.Width - 100, diagram.Height - 100); // // Display the result display.Diagram = diagram; } }