private void LoadCrowsFootNodes() { diagram.Behavior = Behavior.PanAndModify; shapeList.Items.Clear(); shapeLibrary.LoadFromXml(@"../../CustomNodes/CustomLibrary/CrowsFootDb.sl"); NodesFromLib(); shapeList.SelectedIndex = 0; ShapeNode entityNode = shapeList.Items.GetItemAt(0) as ShapeNode; entityNode.Name = "entityNode"; entityNode.Text = ""; ShapeNode primaryKeyNode = shapeList.Items.GetItemAt(1) as ShapeNode; primaryKeyNode.Name = "primaryKeyNode"; primaryKeyNode.Text = ""; ShapeNode attributeNode = shapeList.Items.GetItemAt(2) as ShapeNode; attributeNode.Name = "attributeNode"; attributeNode.Text = ""; /* * ShapeNode pkSeparatorNode = shapeList.Items.GetItemAt(3) as ShapeNode; * pkSeparatorNode.Name = "primaryKeySeparatorNode"; * attributeNode.Text = ""; */ // Primary key separator var primaryKeySeparatorShape = new MindFusion.Diagramming.Wpf.Shape( null, // no borders new[] // decorations { new LineTemplate(10, 50, 90, 50, Color.FromRgb(0, 0, 0), DashStyles.Dot, 1), }, null, FillRule.Nonzero, "primaryKeySeparatorNode"); var pkSeparatorListNode = new ShapeNode { Shape = primaryKeySeparatorShape }; shapeList.Items.Add(pkSeparatorListNode); pkSeparatorListNode.Name = "primaryKeySeparatorNode"; // remove the text from the nodes, add a label instead (text shows on right) NodeListView.SetLabel(entityNode, "Entity"); NodeListView.SetLabel(primaryKeyNode, "Primary Key"); NodeListView.SetLabel(pkSeparatorListNode, "Primary Key Separator"); NodeListView.SetLabel(attributeNode, "Attribute"); // Relationship connector var relationshipShape = new MindFusion.Diagramming.Wpf.Shape( null, // no borders new[] // decorations { new LineTemplate(10, 10, 10, 50), new LineTemplate(10, 50, 90, 50), new LineTemplate(90, 50, 90, 90) }, null, FillRule.Nonzero, "RelationshipLink"); var relationshipListNode = new ShapeNode { Shape = relationshipShape }; NodeListView.SetLabel(relationshipListNode, "Relationship"); shapeList.Items.Add(relationshipListNode); }
private void LoadUmlNodes() { diagram.Behavior = Behavior.PanAndModify; shapeList.Items.Clear(); shapeLibrary.LoadFromXml(@"../../CustomNodes/CustomLibrary/UMLClasses.sl"); NodesFromLib(); shapeList.SelectedIndex = 0; ShapeNode classNode = shapeList.Items.GetItemAt(0) as ShapeNode; classNode.Name = "classNode"; classNode.Text = ""; ShapeNode interfaceNode = shapeList.Items.GetItemAt(1) as ShapeNode; interfaceNode.Name = "interfaceNode"; interfaceNode.Text = ""; ShapeNode packageNode = shapeList.Items.GetItemAt(2) as ShapeNode; packageNode.Name = "packageNode"; packageNode.Text = ""; ShapeNode separatorNode = shapeList.Items.GetItemAt(3) as ShapeNode; separatorNode.Name = "separatorNode"; separatorNode.Text = ""; ShapeNode memberNode = shapeList.Items.GetItemAt(4) as ShapeNode; memberNode.Name = "memberNode"; memberNode.Text = ""; // remove the text from the nodes, add a label instead (text shows on right) NodeListView.SetLabel(classNode, "Class"); NodeListView.SetLabel(interfaceNode, "Interface"); NodeListView.SetLabel(packageNode, "Package"); NodeListView.SetLabel(separatorNode, "Separator"); NodeListView.SetLabel(memberNode, "Member"); // testing custom connectors // inheritance connector var inheritanceShape = new MindFusion.Diagramming.Wpf.Shape( null, // no borders new[] // decorations { new LineTemplate(10, 10, 10, 50), new LineTemplate(10, 50, 90, 50), new LineTemplate(90, 50, 90, 90) }, null, FillRule.Nonzero, "InheritanceLink"); var inheritanceListNode = new ShapeNode { Shape = inheritanceShape }; NodeListView.SetLabel(inheritanceListNode, "Inheritance"); shapeList.Items.Add(inheritanceListNode); // Interface realization var interfaceShape = new MindFusion.Diagramming.Wpf.Shape( null, // no borders new[] // decorations { new LineTemplate(10, 10, 10, 50, Color.FromRgb(0, 0, 0), DashStyles.Dot, 1), new LineTemplate(10, 50, 90, 50, Color.FromRgb(0, 0, 0), DashStyles.Dot, 1), new LineTemplate(90, 50, 90, 90, Color.FromRgb(0, 0, 0), DashStyles.Dot, 1) }, null, FillRule.Nonzero, "InterfaceLink"); var interfaceListNode = new ShapeNode { Shape = interfaceShape }; NodeListView.SetLabel(interfaceListNode, "Interface Realization"); shapeList.Items.Add(interfaceListNode); }