Пример #1
0
        //Create and add Connector
        private ConnectorViewModel AddConnector(NodeViewModel sourceNode, NodeViewModel targetNode, ConnectorPort targetPort,
                                                ConnectorViewModel targetConnector, Point sourcepoint, string content, Thickness margin)
        {
            ConnectorViewModel connector = new ConnectorViewModel();

            connector.Ports = new ObservableCollection <IConnectorPort>();
            //To Represent Annotation Properties
            connector.Annotations = new ObservableCollection <IAnnotation>()
            {
                new TextAnnotationViewModel()
                {
                    Text              = content,
                    Length            = 0,
                    Margin            = margin,
                    ReadOnly          = true,
                    RotationReference = RotationReference.Page,
                }
            };

            if (targetNode == null)
            {
                if (!Point.Equals(sourcepoint, new Point(0, 0)))
                {
                    connector.SourcePoint = sourcepoint;
                }
                else
                {
                    connector.SourceNode = sourceNode;
                }
                connector.TargetPort      = targetPort;
                connector.TargetConnector = targetConnector;
            }
            else
            {
                connector.SourceNode      = sourceNode;
                connector.TargetNode      = targetNode;
                connector.TargetConnector = targetConnector;
            }

            (Connectors as ICollection <ConnectorViewModel>).Add(connector);

            //Selectable Constraints used to enable/disable the ConnectorViewModel Selection.
            connector.Constraints = connector.Constraints & ~ConnectorConstraints.Selectable;
            return(connector);
        }
Пример #2
0
        //Create Nodes and Connetors
        private void CreateNodesAndConnectors()
        {
            //Create and Add node which is source reference for center connector. It will not be visible
            NodeViewModel emptyNode = AddNode(20, 85, 60, 290, null, false, "TextNodesViewTemplate");

            //Create and Add node for HIGH PETROL CONSUMPTION IN BIKE Node
            NodeViewModel highPetrolConsumptionNode = AddNode(65, 160, 860, 290, "HIGH PETROL\nCONSUMPTION IN BIKE", true, "HighPetrolConsumptionViewTemplate");

            //Create and Add node for MACHINERY Node
            NodeViewModel machineryNode = AddNode(20, 85, 200, 70, "MACHINERY", false, "TextNodesViewTemplate");

            //Create and Add node for METHOD Node
            NodeViewModel methodNode = AddNode(20, 85, 410, 70, "METHOD", false, "TextNodesViewTemplate");

            //Create and Add node for PEOPLE Node
            NodeViewModel peopleNode = AddNode(20, 85, 620, 70, "PEOPLE", false, "TextNodesViewTemplate");

            //Create and Add node for MATERIAL Node
            NodeViewModel materialNode = AddNode(20, 85, 180, 510, "MATERIAL", false, "TextNodesViewTemplate");

            //Create and Add node for MEASUREMENT Node
            NodeViewModel measurmentNode = AddNode(20, 95, 390, 510, "MEASUREMENT", false, "TextNodesViewTemplate");

            //Create and Add node for ENVIRONMENT Node
            NodeViewModel enviromentNode = AddNode(20, 95, 610, 510, "ENVIRONMENT", false, "TextNodesViewTemplate");

            //Create lineconnector from emptyNode to highPetrolConsumptionNode
            ConnectorViewModel mainConnector = AddConnector(emptyNode, highPetrolConsumptionNode, null, null, new Point(0, 0), "",
                                                            new Thickness(0, 0, 0, 0));

            //create multiple ports in the mainConnector
            ConnectorPort machineryConnectorEndPort  = AddPort(mainConnector, 0.25);
            ConnectorPort materialConnectorEndPort   = AddPort(mainConnector, 0.28);
            ConnectorPort methodConnectorEndPort     = AddPort(mainConnector, 0.58);
            ConnectorPort measurmentConnectorEndPort = AddPort(mainConnector, 0.60);
            ConnectorPort peopleConnectorEndPort     = AddPort(mainConnector, 0.90);
            ConnectorPort enviromentConnectorPort    = AddPort(mainConnector, 0.93);

            //Create connection between machineryNode and machineryConnectorEndPort
            ConnectorViewModel machineryConnector = AddConnector(machineryNode, null, machineryConnectorEndPort, mainConnector, new Point(0, 0), "",
                                                                 new Thickness(0, 0, 0, 0));

            //Create connection between materialNode and materialConnectorEndPort
            ConnectorViewModel materialConnector = AddConnector(materialNode, null, materialConnectorEndPort, mainConnector, new Point(0, 0), "",
                                                                new Thickness(0, 0, 0, 0));

            //Create connection between methodNode and methodConnectorEndPort
            ConnectorViewModel methodConnector = AddConnector(methodNode, null, methodConnectorEndPort, mainConnector, new Point(0, 0), "",
                                                              new Thickness(0, 0, 0, 0));

            //Create connection between measurmentNode and measurmentConnectorEndPort
            ConnectorViewModel measurmentConnector = AddConnector(measurmentNode, null, measurmentConnectorEndPort, mainConnector, new Point(0, 0), "",
                                                                  new Thickness(0, 0, 0, 0));

            //Create connection between peopleNode and peopleConnectorEndPort
            ConnectorViewModel peopleConnector = AddConnector(peopleNode, null, peopleConnectorEndPort, mainConnector, new Point(0, 0), "",
                                                              new Thickness(0, 0, 0, 0));

            //Create connection between enviromentNode and enviromentConnectorPort
            ConnectorViewModel enviromentConnector = AddConnector(enviromentNode, null, enviromentConnectorPort, mainConnector, new Point(0, 0), "",
                                                                  new Thickness(0, 0, 0, 0));

            //Create end point port for Worn-Out Pistons connector
            ConnectorPort WornOutPistonsPort = AddPort(machineryConnector, 0.25);

            //Create connector for Worn-Out Pistons
            ConnectorViewModel WornOutPistonsConnector = AddConnector(null, null, WornOutPistonsPort, machineryConnector, new Point(70, 133),
                                                                      "Worn-out Pistons", new Thickness(50, 15, 0, 0));

            //Create end point port for Wrong Tire Pressure Connector
            ConnectorPort WrongTirePressurePort = AddPort(machineryConnector, 0.54);

            //Create connector for Wrong Tire Pressure
            ConnectorViewModel WrongTirePressureConnector = AddConnector(null, null, WrongTirePressurePort, machineryConnector, new Point(80, 193),
                                                                         "Wrong Tire Pressure", new Thickness(55, 15, 0, 0));

            //Create end point port for Fast Driving Connector
            ConnectorPort FastDrivingPort = AddPort(methodConnector, 0.25);

            //Create connector for Fast Driving
            ConnectorViewModel FastDrivingConnector = AddConnector(null, null, FastDrivingPort, methodConnector, new Point(305, 133), "Fast Driving",
                                                                   new Thickness(35, 15, 0, 0));

            //Create end point port for Wrong Gear Connector
            ConnectorPort WrongGearPort = AddPort(methodConnector, 0.54);

            //Create connector for Wrong Gear
            ConnectorViewModel WrongGearConnector = AddConnector(null, null, WrongGearPort, methodConnector, new Point(330, 193), "Wrong Gear",
                                                                 new Thickness(35, 15, 0, 0));

            //Create end point port for Maintenance Habit Connector
            ConnectorPort MaintenanceHabitPort = AddPort(peopleConnector, 0.55);

            //Create connector for Maintenance Habit
            ConnectorViewModel MaintenanceHabitConnector = AddConnector(null, null, MaintenanceHabitPort, peopleConnector, new Point(510, 193),
                                                                        "Maintenance Habit", new Thickness(50, 15, 0, 0));

            //Create end point port for No Owner Manual Connector
            ConnectorPort NoOwnerManualConnectorPort = AddPort(MaintenanceHabitConnector, 0.77);

            //Create connector for No Owner Manual
            ConnectorViewModel NoOwnerManualConnector = AddConnector(null, null, NoOwnerManualConnectorPort, MaintenanceHabitConnector,
                                                                     new Point(600, 155), "No Owner Manual", new Thickness(0, 0, 20, 10));

            //Create end point port for Poor Quality Petrol Connector
            ConnectorPort PoorQualityPetrolPort = AddPort(materialConnector, 0.73);

            //Create connector for Poor Quality Petrol
            ConnectorViewModel PoorQualityPetrolConnector = AddConnector(null, null, PoorQualityPetrolPort, materialConnector, new Point(75, 345),
                                                                         "Poor Quality Petrol", new Thickness(50, 15, 0, 0));

            //Create end point port for FastDrivingConnector
            ConnectorPort IncorrectLubricantPort = AddPort(materialConnector, 0.26);

            //Create connector for Incorrect Lubricant
            ConnectorViewModel IncorrectLubricantConnector = AddConnector(null, null, IncorrectLubricantPort, materialConnector, new Point(70, 443),
                                                                          "Incorrect Lubricant", new Thickness(50, 15, 0, 0));

            //Create end point port for Wrong Oil Connector
            ConnectorPort WrongOilPort = AddPort(IncorrectLubricantConnector, 0.73);

            //Create connector for Wrong Oil
            ConnectorViewModel WrongOilConnector = AddConnector(null, null, WrongOilPort, WrongGearConnector, new Point(145, 410), "Wrong Oil",
                                                                new Thickness(0, 0, 10, 10));

            //Create end point port for Reset Odometer Connector
            ConnectorPort ResetOdometerPort = AddPort(measurmentConnector, 0.6);

            //Create connector for Reset Odometer
            ConnectorViewModel ResetOdometerConnector = AddConnector(null, null, ResetOdometerPort, measurmentConnector,
                                                                     new Point(300, 373), "Do not Reset\nOdometer Properly", new Thickness(50, 25, 0, 0));

            //Create end point port for Extreme Weather Conditions Connector
            ConnectorPort ExtremeWeatherConditionsPort = AddPort(enviromentConnector, 0.6);

            //Create connector for Extreme Weather Conditions
            ConnectorViewModel ExtremeWeatherConditionsConnector = AddConnector(null, null, ExtremeWeatherConditionsPort, enviromentConnector,
                                                                                new Point(520, 373), "Extreme Weather\nConditions", new Thickness(45, 25, 0, 0));
        }
Пример #3
0
        // Create Nodes,Ports and Connections
        private void CreateNodesandConnections()
        {
            // Create Nodes
            NodeViewModel node1  = AddNode(50, 100, 100, 50, label: "Employee");
            NodeViewModel node2  = AddNode(50, 100, 300, 50, label: "Team Lead");
            NodeViewModel node3  = AddNode(50, 100, 500, 50, label: "Dashboard");
            NodeViewModel node4  = AddNode(50, 100, 700, 50, label: "Manager");
            NodeViewModel node8  = AddNode(50, 100, 100, 500);
            NodeViewModel node9  = AddNode(50, 100, 300, 500);
            NodeViewModel node10 = AddNode(50, 100, 500, 500);
            NodeViewModel node11 = AddNode(50, 100, 700, 500);

            // Connect Nodes and Ports
            ConnectorViewModel connector3 = Connect(node1, node8, label1: "c3", style: App.Current.MainWindow.Resources["GetGrayLineStyle"] as Style);
            ConnectorViewModel connector4 = Connect(node2, node9, label1: "c4", style: App.Current.MainWindow.Resources["GetGrayLineStyle"] as Style);
            ConnectorViewModel connector5 = Connect(node3, node10, label1: "c5", style: App.Current.MainWindow.Resources["GetGrayLineStyle"] as Style);
            ConnectorViewModel connector6 = Connect(node4, node11, label1: "c6", style: App.Current.MainWindow.Resources["GetGrayLineStyle"] as Style);
            NodeViewModel      node5      = AddNode(180, 10, 300, 250, style: App.Current.MainWindow.Resources["GetNodeStyle"] as Style);
            NodeViewModel      node6      = AddNode(25, 10, 500, 250, style: App.Current.MainWindow.Resources["GetNodeStyle"] as Style);
            NodeViewModel      node7      = AddNode(48, 10, 700, 348, style: App.Current.MainWindow.Resources["GetNodeStyle"] as Style);
            NodeViewModel      node26     = AddNode(240, 10, 100, 278, style: App.Current.MainWindow.Resources["GetNodeStyle"] as Style);

            // Create Ports to the Nodes and Connectors
            NodePort port1   = addPort(node5, 0, 0.053);
            NodePort port111 = addPort(node5, 1, 0.5);
            NodePort port12  = addPort(node5, 1, 0.938);
            NodePort port2   = addPort(node6, 0, 0.5);
            NodePort port3   = addPort(node7, 0, 0.1);
            NodePort port10  = addPort(node7, 0, 0.91);
            NodePort port11  = addPort(node26, 1, 0.049);
            NodePort port7   = addPort(node26, 1, 0.97);

            node5.Ports = new ObservableCollection <INodePort>()
            {
                port1,
                port111,
                port12
            };
            node6.Ports = new ObservableCollection <INodePort>()
            {
                port2
            };
            node7.Ports = new ObservableCollection <INodePort>()
            {
                port3,
                port10
            };
            node26.Ports = new ObservableCollection <INodePort>()
            {
                port11,
                port7
            };

            ConnectorViewModel connector1 = Connect(node5, node6, headport: port111, tailport: port2, label2: "Check Employee availability and task status", style: App.Current.MainWindow.Resources["GetBlueLineStyle"] as Style, margin: new Thickness(0, 20, 0, 0));
            ConnectorViewModel connector2 = Connect(node5, node7, headport: port12, tailport: port3, label2: "Forward Leave Request", style: App.Current.MainWindow.Resources["GetBlueLineStyle"] as Style, margin: new Thickness(0, 10, 0, 0));
            ConnectorViewModel connector7 = Connect(node26, node5, headport: port11, tailport: port1, label2: "Leave Request", style: App.Current.MainWindow.Resources["GetBlueLineStyle"] as Style, margin: new Thickness(0, 10, 0, 0));

            ConnectorPort port5 = addPort(connector4, 0.78);
            ConnectorPort port6 = addPort(connector4, 0.73);

            connector4.Ports = new ObservableCollection <IConnectorPort>()
            {
                port5,
                port6
            };

            ConnectorViewModel connector8  = Connect(null, node26, tailport: port7, connector: connector4, connectorheadport: port5, label2: "Leave Approval", style: App.Current.MainWindow.Resources["GetLineDashStyle"] as Style, margin: new Thickness(0, 10, 0, 0));
            ConnectorViewModel connector10 = Connect(node7, null, headport: port10, connector: connector4, connectortailport: port6, label2: "No Objection", style: App.Current.MainWindow.Resources["GetLineDashStyle"] as Style, margin: new Thickness(0, 10, 0, 0));
        }
Пример #4
0
        // Add Connector
        private ConnectorViewModel Connect(NodeViewModel headnode, NodeViewModel tailnode, NodePort headport = null, NodePort tailport = null, ConnectorViewModel connector = null, ConnectorPort connectorheadport = null, ConnectorPort connectortailport = null, String label1 = null, String label2 = null, Style style = null, Thickness margin = new Thickness())
        {
            ConnectorViewModel Connectorviewmodel = new ConnectorViewModel();

            Connectorviewmodel.ZIndex     = -1;
            Connectorviewmodel.SourceNode = headnode;
            Connectorviewmodel.TargetNode = tailnode;

            //To Represent Annotation Properties
            Connectorviewmodel.Annotations = new ObservableCollection <IAnnotation>()
            {
                new AnnotationEditorViewModel()
                {
                    Content   = label2,
                    WrapText  = TextWrapping.Wrap,
                    UnitWidth = 150,
                    Margin    = margin,
                    ReadOnly  = true,
                }
            };

            if (headport != null)
            {
                Connectorviewmodel.SourcePort = headport;
            }
            else
            {
                Connectorviewmodel.SourcePort = connectorheadport;
            }

            if (tailport != null)
            {
                Connectorviewmodel.TargetPort = tailport;
            }
            else
            {
                Connectorviewmodel.TargetPort = connectortailport;
            }

            if (tailnode != null)
            {
                Connectorviewmodel.SourceConnector = connector;
            }
            else
            {
                Connectorviewmodel.TargetConnector = connector;
            }

            Connectorviewmodel.TargetDecoratorStyle = App.Current.MainWindow.Resources["DecoratorStyle"] as Style;

            if ((label1 == "c3") || (label1 == "c4") || (label1 == "c5") || (label1 == "c6"))
            {
                Connectorviewmodel.TargetDecorator      = null;
                Connectorviewmodel.TargetDecoratorStyle = null;
            }

            if (style != null)
            {
                Connectorviewmodel.ConnectorGeometryStyle = style;
            }
            (Connectors as ObservableCollection <ConnectorViewModel>).Add(Connectorviewmodel);
            return(Connectorviewmodel);
        }
Пример #5
0
        //Create Node and Connection
        private void Nodeviewmodel()
        {
            int height = 20;
            int width  = 75;
            //Node Creation
            NodeViewModel n1 = AddNode(50, 100, 50, 320, null);
            NodeViewModel n2 = AddNode(75, 180, 900, 320, "");
            NodeViewModel n3 = AddNode(height, width, 150, 100, "MACHINERY");
            NodeViewModel n4 = AddNode(height, width, 400, 100, "METHOD");
            NodeViewModel n5 = AddNode(height, width, 650, 100, "PEOPLE");
            NodeViewModel n6 = AddNode(height, width, 150, 540, "MATERIAL");
            NodeViewModel n7 = AddNode(height, width, 400, 540, "MEASUREMENT");
            NodeViewModel n8 = AddNode(height, width, 650, 540, "ENVIRONMENT");

            //Create lineconnector from node to node
            Connector line = addlineconnector(n1, n2, null, null, new Point(0, 0), "", new Thickness(0, 0, 0, 0));

            //Fixed a port in a lineconnector
            ConnectorPort p1 = addport(line, 0.25);
            ConnectorPort p2 = addport(line, 0.28);
            ConnectorPort p3 = addport(line, 0.58);
            ConnectorPort p4 = addport(line, 0.60);
            ConnectorPort p5 = addport(line, 0.90);
            ConnectorPort p6 = addport(line, 0.93);

            //Add lineconnector from Node to Port
            Connector c1 = addlineconnector(n3, null, p1, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            Connector c2 = addlineconnector(n6, null, p2, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            Connector c3 = addlineconnector(n4, null, p3, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            Connector c4 = addlineconnector(n7, null, p4, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            Connector c5 = addlineconnector(n5, null, p5, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            Connector c6 = addlineconnector(n8, null, p6, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));

            ConnectorPort m1  = addport(c1, 0.25);
            Connector     mp1 = addlineconnector(null, null, m1, c1, new Point(65, 162), "Worn-out Pistons", new Thickness(55, 15, 0, 0));

            ConnectorPort m2  = addport(c1, 0.54);
            Connector     mp2 = addlineconnector(null, null, m2, c1, new Point(80, 225), "Wrong Tire Pressure", new Thickness(65, 15, 0, 0));

            ConnectorPort m3  = addport(c3, 0.25);
            Connector     mp3 = addlineconnector(null, null, m3, c3, new Point(310, 162), "Fast Driving", new Thickness(40, 15, 0, 0));

            ConnectorPort m4  = addport(c3, 0.54);
            Connector     mp4 = addlineconnector(null, null, m4, c3, new Point(330, 224), "Wrong Gear", new Thickness(40, 15, 0, 0));

            ConnectorPort m5  = addport(c5, 0.55);
            Connector     mp5 = addlineconnector(null, null, m5, c5, new Point(510, 224), "Maintenance Habit", new Thickness(60, 15, 0, 0));

            ConnectorPort m6  = addport(mp5, 0.80);
            Connector     mp6 = addlineconnector(null, null, m6, mp5, new Point(625, 185), "No Owner Manual", new Thickness(0, 0, 10, 10));

            ConnectorPort m7  = addport(c2, 0.73);
            Connector     mp7 = addlineconnector(null, null, m7, c2, new Point(95, 375), "Poor Quality Petrol", new Thickness(60, 15, 0, 0));

            ConnectorPort m8  = addport(c2, 0.26);
            Connector     mp8 = addlineconnector(null, null, m8, c2, new Point(60, 474), "Incorrect Lubricant", new Thickness(60, 15, 0, 0));

            ConnectorPort m9  = addport(mp8, 0.73);
            Connector     mp9 = addlineconnector(null, null, m9, mp4, new Point(130, 435), "Wrong Oil", new Thickness(0, 0, 10, 10));

            ConnectorPort m10  = addport(c4, 0.6);
            Connector     mp10 = addlineconnector(null, null, m10, c4, new Point(300, 403), "Do not Reset\nOdometer Properly", new Thickness(60, 25, 0, 0));

            ConnectorPort m11  = addport(c6, 0.6);
            Connector     mp11 = addlineconnector(null, null, m11, c6, new Point(520, 403), "Extreme Weather\nConditions", new Thickness(55, 25, 0, 0));
        }
Пример #6
0
        /// <summary>
        /// Adding Connector
        /// </summary>
        /// <param name="headnode"></param>
        /// <param name="tailnode"></param>
        /// <param name="headport"></param>
        /// <param name="tailport"></param>
        /// <param name="connector"></param>
        /// <param name="connectorheadport"></param>
        /// <param name="connectortailport"></param>
        /// <param name="label1"></param>
        /// <param name="label2"></param>
        /// <param name="style"></param>
        /// <returns></returns>
        private ConnectorViewModel Connect(NodeViewModel headnode, NodeViewModel tailnode, NodePort headport = null, NodePort tailport = null, ConnectorViewModel connector = null, ConnectorPort connectorheadport = null, ConnectorPort connectortailport = null, String label1 = null, String label2 = null, Style style = null, Thickness margin = new Thickness())
        {
            ConnectorViewModel conn = new ConnectorViewModel();

            conn.SourceNode = headnode;
            conn.TargetNode = tailnode;
            if (label2 != null)
            {
                conn.Annotations = new ObservableCollection <IAnnotation>()
                {
                    new AnnotationEditorViewModel()
                    {
                        Content = new TextBlock()
                        {
                            Text       = label2,
                            FontWeight = FontWeights.Normal,
                            FontSize   = 13,
                            FontStyle  = FontStyle.Normal,
                        },
                        Margin       = margin,
                        ViewTemplate = this.Resources["viewtemplate"] as DataTemplate,
                        EditTemplate = this.Resources["edittemplate"] as DataTemplate
                    }
                };
            }

            if (headport != null)
            {
                conn.SourcePort = headport;
            }
            else
            {
                conn.SourcePort = connectorheadport;
            }

            if (tailport != null)
            {
                conn.TargetPort = tailport;
            }
            else
            {
                conn.TargetPort = connectortailport;
            }

            if (tailnode != null)
            {
                conn.SourceConnector = connector;
            }
            else
            {
                conn.TargetConnector = connector;
            }

            conn.TargetDecoratorStyle = this.Resources["DecoratorStyle"] as Style;

            if ((label1 == "c3") || (label1 == "c4") || (label1 == "c5") || (label1 == "c6"))
            {
                conn.TargetDecorator = null;

                conn.TargetDecoratorStyle = null;
            }

            if (style != null)
            {
                conn.ConnectorGeometryStyle = style;
            }

            conn.Constraints = conn.Constraints & ~ConnectorConstraints.Selectable;
            diagramcontrol.DefaultConnectorType = ConnectorType.Line;
            (diagramcontrol.Connectors as ICollection <ConnectorViewModel>).Add(conn);
            return(conn);
        }
Пример #7
0
        //Add LineConnector
        private Connector addlineconnector(NodeViewModel headnode, NodeViewModel tailnode, ConnectorPort port, Connector connect, Point sourcepoint, string label, Thickness margin)
        {
            Connector line = new Connector();

            line.TargetDecoratorStyle = this.Resources["DecoratorStyle"] as Style;
            line.Ports = new ObservableCollection <IConnectorPort>();
            //To Represent Annotation Properties
            line.Annotations = new ObservableCollection <IAnnotation>()
            {
                new AnnotationEditorViewModel()
                {
                    Content = label,
                    //ViewTemplate = this.Resources["viewtemplate"] as DataTemplate,
                    ViewTemplate = XamlReader.Load(IshikawaDiagramTemplate.vTemplate) as DataTemplate,
                    Length       = 0,
                    Margin       = margin,
                    WrapText     = TextWrapping.NoWrap,
                    ReadOnly     = true,
                }
            };
            if (tailnode == null)
            {
                if (!Point.Equals(sourcepoint, new Point(0, 0)))
                {
                    line.SourcePoint = sourcepoint;
                }
                else
                {
                    line.SourceNode = headnode;
                }
                line.ConnectorGeometryStyle = this.Resources["style1"] as Style;
                line.TargetPort             = port;
                line.TargetConnector        = connect;
            }
            else
            {
                line.ConnectorGeometryStyle = this.Resources["connectorstyle"] as Style;
                line.SourceNode             = headnode;
                line.TargetNode             = tailnode;
                line.TargetConnector        = connect;
            }
            (diagramcontrol.Connectors as ICollection <IConnector>).Add(line);
            line.Constraints = line.Constraints & ~ConnectorConstraints.Selectable;
            return(line);
        }
Пример #8
0
        //Create Node and Connection
        private void Ishikawadiagrammodel()
        {
            //Node Creation
            int           height = 20;
            int           width  = 75;
            NodeViewModel n1     = AddNode(height, width, 60, 290, null);
            NodeViewModel n2     = AddNode2(height + 45, width + 75, 860, 290, "HIGH PETROL\nCONSUMPTION IN BIKE");
            TitleNode     n3     = AddNode(height, width, 200, 70, "MACHINERY");
            TitleNode     n4     = AddNode(height, width, 410, 70, "METHOD");
            TitleNode     n5     = AddNode(height, width, 620, 70, "PEOPLE");
            TitleNode     n6     = AddNode(height, width, 180, 510, "MATERIAL");
            TitleNode     n7     = AddNode(height, width, 390, 510, "MEASUREMENT");
            TitleNode     n8     = AddNode(height, width, 610, 510, "ENVIRONMENT");

            //Create lineconnector from node to node
            ConnectorViewModel line = addlineconnector(n1, n2, null, null, new Point(0, 0), "", new Thickness(0, 0, 0, 0));

            //Fixed a port in a lineconnector
            ConnectorPort p1 = addport(line, 0.25);
            ConnectorPort p2 = addport(line, 0.28);
            ConnectorPort p3 = addport(line, 0.58);
            ConnectorPort p4 = addport(line, 0.60);
            ConnectorPort p5 = addport(line, 0.90);
            ConnectorPort p6 = addport(line, 0.93);

            //Create lineconnector from Node to Port
            ConnectorViewModel c1 = addlineconnector(n3, null, p1, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            ConnectorViewModel c2 = addlineconnector(n6, null, p2, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            ConnectorViewModel c3 = addlineconnector(n4, null, p3, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            ConnectorViewModel c4 = addlineconnector(n7, null, p4, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            ConnectorViewModel c5 = addlineconnector(n5, null, p5, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));
            ConnectorViewModel c6 = addlineconnector(n8, null, p6, line, new Point(0, 0), "", new Thickness(0, 0, 0, 0));

            ConnectorPort      m1  = addport(c1, 0.25);
            ConnectorViewModel mp1 = addlineconnector(null, null, m1, c1, new Point(70, 133), "Worn-out Pistons", new Thickness(50, 15, 0, 0));

            ConnectorPort      m2  = addport(c1, 0.54);
            ConnectorViewModel mp2 = addlineconnector(null, null, m2, c1, new Point(80, 193), "Wrong Tire Pressure", new Thickness(55, 15, 0, 0));

            ConnectorPort      m3  = addport(c3, 0.25);
            ConnectorViewModel mp3 = addlineconnector(null, null, m3, c3, new Point(305, 133), "Fast Driving", new Thickness(35, 15, 0, 0));

            ConnectorPort      m4  = addport(c3, 0.54);
            ConnectorViewModel mp4 = addlineconnector(null, null, m4, c3, new Point(330, 193), "Wrong Gear", new Thickness(35, 15, 0, 0));

            ConnectorPort      m5  = addport(c5, 0.55);
            ConnectorViewModel mp5 = addlineconnector(null, null, m5, c5, new Point(510, 193), "Maintenance Habit", new Thickness(50, 15, 0, 0));

            ConnectorPort      m6  = addport(mp5, 0.77);
            ConnectorViewModel mp6 = addlineconnector(null, null, m6, mp5, new Point(600, 155), "No Owner Manual", new Thickness(0, 0, 20, 10));

            ConnectorPort      m7  = addport(c2, 0.73);
            ConnectorViewModel mp7 = addlineconnector(null, null, m7, c2, new Point(75, 345), "Poor Quality Petrol", new Thickness(50, 15, 0, 0));

            ConnectorPort      m8  = addport(c2, 0.26);
            ConnectorViewModel mp8 = addlineconnector(null, null, m8, c2, new Point(70, 443), "Incorrect Lubricant", new Thickness(50, 15, 0, 0));

            ConnectorPort      m9  = addport(mp8, 0.73);
            ConnectorViewModel mp9 = addlineconnector(null, null, m9, mp4, new Point(145, 410), "Wrong Oil", new Thickness(0, 0, 10, 10));

            ConnectorPort      m10  = addport(c4, 0.6);
            ConnectorViewModel mp10 = addlineconnector(null, null, m10, c4, new Point(300, 373), "Do not Reset\nOdometer Properly", new Thickness(50, 25, 0, 0));

            ConnectorPort      m11  = addport(c6, 0.6);
            ConnectorViewModel mp11 = addlineconnector(null, null, m11, c6, new Point(520, 373), "Extreme Weather\nConditions", new Thickness(45, 25, 0, 0));
        }
Пример #9
0
        //Add lineConnector
        private ConnectorViewModel addlineconnector(NodeViewModel headnode, NodeViewModel tailnode, ConnectorPort port, ConnectorViewModel connect, Point sourcepoint, string label, Thickness margin)
        {
            ConnectorViewModel line = new ConnectorViewModel();

            line.TargetDecoratorStyle = this.Resources["DecoratorStyle"] as Style;
            line.Ports = new ObservableCollection <IConnectorPort>();
            //To Represent Annotation Properties
            line.Annotations = new ObservableCollection <IAnnotation>()
            {
                new AnnotationEditorViewModel()
                {
                    Content           = label,
                    ViewTemplate      = Application.Current.MainWindow.Resources["viewtemplate"] as DataTemplate,
                    Length            = 0,
                    Margin            = margin,
                    WrapText          = TextWrapping.NoWrap,
                    ReadOnly          = true,
                    RotationReference = RotationReference.Page
                }
            };

            if (tailnode == null)
            {
                if (!Point.Equals(sourcepoint, new Point(0, 0)))
                {
                    line.SourcePoint = sourcepoint;
                }
                else
                {
                    line.SourceNode = headnode;
                }
                //Set ConnectorViewModel Style
                line.ConnectorGeometryStyle = this.Resources["style1"] as Style;
                line.TargetPort             = port;
                line.TargetConnector        = connect;
            }
            else
            {
                line.ConnectorGeometryStyle = this.Resources["connectorstyle"] as Style;
                line.SourceNode             = headnode;
                line.TargetNode             = tailnode;
                line.TargetConnector        = connect;
            }

            (diagramcontrol.Connectors as ICollection <ConnectorViewModel>).Add(line);

            //Selectable Constraints used to enable/disable the ConnectorViewModel Selection.
            line.Constraints = line.Constraints & ~ConnectorConstraints.Selectable;
            return(line);
        }
Пример #10
0
        private Connector addlineconnector(NodeViewModel headnode, NodeViewModel tailnode, ConnectorPort port, Connector connect, Point sourcepoint, string label, Thickness margin)
        {
            Connector line = new Connector();

            line.TargetDecoratorStyle = this.Resources["DecoratorStyle"] as Style;
            line.Ports       = new ObservableCollection <IConnectorPort>();
            line.Annotations = new ObservableCollection <IAnnotation>()
            {
                new AnnotationEditorViewModel()
                {
                    Content = new TextBlock()
                    {
                        Text       = label,
                        Foreground = new SolidColorBrush(Colors.Black),
                        FontSize   = 14,
                        FontFamily = new FontFamily("Segoe"),
                        FontWeight = FontWeights.Normal,
                    },
                    ViewTemplate = this.Resources["viewtemplate"] as DataTemplate,
                    Offset       = new Point(0, 0),
                    Margin       = margin,
                    WrapText     = TextWrapping.NoWrap,
                    ReadOnly     = true,
                }
            };
            if (tailnode == null)
            {
                if (!Point.Equals(sourcepoint, new Point(0, 0)))
                {
                    line.SourcePoint = sourcepoint;
                }
                else
                {
                    line.SourceNode = headnode;
                }
                line.ConnectorGeometryStyle = this.Resources["style1"] as Style;
                line.TargetPort             = port;
                line.TargetConnector        = connect;
            }
            else
            {
                line.ConnectorGeometryStyle = this.Resources["connectorstyle"] as Style;
                line.SourceNode             = headnode;
                line.TargetNode             = tailnode;
                line.TargetConnector        = connect;
            }
            (diagramcontrol.Connectors as ICollection <IConnector>).Add(line);
            line.Constraints = line.Constraints & ~ConnectorConstraints.Selectable;
            return(line);
        }
Пример #11
0
        // Add Connector
        private ConnectorViewModel Connect(NodeViewModel headnode, NodeViewModel tailnode, NodePort headport = null, NodePort tailport = null, ConnectorViewModel connector = null, ConnectorPort connectorheadport = null, ConnectorPort connectortailport = null, String label1 = null, String label2 = null, Style style = null, Thickness margin = new Thickness())
        {
            ConnectorViewModel conn = new ConnectorViewModel();

            conn.SourceNode = headnode;
            conn.TargetNode = tailnode;
            if (label2 != null)
            {
                //To Represent Annotation Property
                conn.Annotations = new ObservableCollection <IAnnotation>()
                {
                    new AnnotationEditorViewModel()
                    {
                        Content      = label2,
                        WrapText     = TextWrapping.Wrap,
                        UnitWidth    = 150,
                        Margin       = margin,
                        ReadOnly     = true,
                        ViewTemplate = XamlReader.Load(SequenceDiagramTemplate.vTemplate) as DataTemplate,
                        EditTemplate = XamlReader.Load(SequenceDiagramTemplate.eTemplate) as DataTemplate,
                        //ViewTemplate=this.Resources["viewtemplate1"] as DataTemplate,
                        //EditTemplate=this.Resources["edittemplate"] as DataTemplate
                    }
                };
            }

            if (headport != null)
            {
                conn.SourcePort = headport;
            }
            else
            {
                conn.SourcePort = connectorheadport;
            }

            if (tailport != null)
            {
                conn.TargetPort = tailport;
            }
            else
            {
                conn.TargetPort = connectortailport;
            }

            if (tailnode != null)
            {
                conn.SourceConnector = connector;
            }
            else
            {
                conn.TargetConnector = connector;
            }

            conn.TargetDecoratorStyle = this.Resources["DecoratorStyle"] as Style;

            if ((label1 == "c3") || (label1 == "c4") || (label1 == "c5") || (label1 == "c6"))
            {
                conn.TargetDecorator = null;

                conn.TargetDecoratorStyle = null;
            }

            if (style != null)
            {
                conn.ConnectorGeometryStyle = style;
            }
            //Constraints used to enable/disable connector selection
            conn.Constraints = conn.Constraints & ~ConnectorConstraints.Selectable;
            diagramcontrol.DefaultConnectorType = ConnectorType.Line;
            (diagramcontrol.Connectors as ICollection <ConnectorViewModel>).Add(conn);
            return(conn);
        }