Beispiel #1
0
        public ActionResult Swimlane()
        {
            SwimlaneModel swimlaneModel = new SwimlaneModel();

            swimlaneModel.createSymbolPalette(symbolPalette);
            swimlaneModel.GenerateBasicShapes(symbolPalette);
            swimlaneModel.GenerateSwimlaneShapes(symbolPalette);
            swimlaneModel.GenerateConnectors(symbolPalette);
            swimlaneModel.GenerateDiagram(diagram);
            diagram.PageSettings.ScrollLimit = ScrollLimit.Diagram;
            ViewData["DiagramModel"]         = diagram;
            ViewData["SymbolPaletteModel"]   = symbolPalette;
            return(View());
        }
        public ActionResult DiagramEvents()
        {
            SymbolPaletteProperties palette = new SymbolPaletteProperties();
            SwimlaneModel           lane    = new SwimlaneModel();

            lane.createSymbolPalette(palette);
            lane.GenerateBasicShapes(palette);
            lane.GenerateSwimlaneShapes(palette);
            lane.GenerateConnectors(palette);
            ViewData["SymbolPaletteModel"] = palette;
            DiagramProperties model = new DiagramProperties();

            model.Height = "600px";
            model.Width  = "100%";
            model.PageSettings.ScrollLimit = ScrollLimit.Diagram;

            model.SelectionChange           = "selectionChange";
            model.SizeChange                = "sizeChanged";
            model.ConnectorCollectionChange = "collectionChanged";
            model.NodeCollectionChange      = "collectionChanged";
            model.TextChange                = "textChanged";
            model.SegmentChange             = "segmentChanged";
            model.RotationChange            = "eventLog";
            model.ConnectorTargetChange     = "endPointChanged";
            model.ConnectorSourceChange     = "endPointChanged";
            model.ScrollChange              = "scrollChanged";
            model.DoubleClick               = "doubleClickd";
            model.DragEnter             = "eventLog";
            model.DragOver              = "eventLog";
            model.DragLeave             = "eventLog";
            model.Drag                  = "dragd";
            model.Drop                  = "eventLog";
            model.GroupChange           = "eventLog";
            model.HistoryChange         = "eventLog";
            model.Click                 = "clicked";
            model.ConnectionChange      = "eventLog";
            model.ContextMenuBeforeOpen = "eventLog";
            model.ContextMenuClick      = "contextMenuClicked";

            FlowShape node1 = CreateDiagramNode("node1", 100, 60, 200, 50, "Start", FlowShapes.Terminator, "#05ADA4");
            FlowShape node2 = CreateDiagramNode("node2", 100, 70, 200, 150, "Process1", FlowShapes.Process, "#33AACA");
            FlowShape node3 = CreateDiagramNode("node3", 90, 90, 200, 270, "Decision1", FlowShapes.Decision, "#83A93F");
            FlowShape node4 = CreateDiagramNode("node4", 90, 90, 100, 450, "Decision2", FlowShapes.Decision, "#83A93F");
            FlowShape node5 = CreateDiagramNode("node5", 90, 90, 300, 450, "Process2", FlowShapes.Process, "#83A93F");
            FlowShape node6 = CreateDiagramNode("node6", 100, 60, 200, 550, "End", FlowShapes.Terminator, "#05ADA4");

            ConnectDiagramNode(model, node1, node2, "");
            ConnectDiagramNode(model, node2, node3, "");
            ConnectDiagramNode(model, node3, node4, "No");
            ConnectDiagramNode(model, node3, node5, "Yes");
            Connector connector = ConnectDiagramNode(model, node4, node6, "No");

            connector.Segments = new Collection()
            {
                new Segment()
                {
                    Type      = Segments.Orthogonal,
                    Length    = 50,
                    Direction = "left"
                }
            };
            connector          = ConnectDiagramNode(model, node5, node6, "Yes");
            connector.Segments = new Collection()
            {
                new Segment()
                {
                    Type      = Segments.Orthogonal,
                    Length    = 50,
                    Direction = "right"
                }
            };

            model.Nodes.Add(node1);
            model.Nodes.Add(node2);
            model.Nodes.Add(node3);
            model.Nodes.Add(node4);
            model.Nodes.Add(node5);
            model.Nodes.Add(node6);
            model.EnableContextMenu  = false;
            ViewData["DiagramModel"] = model;
            return(View());
        }
        public ActionResult CircuitDiagram()
        {
            DiagramProperties model = new DiagramProperties();

            model.Height = "700px";
            model.Width  = "100%";
            model.PageSettings.ScrollLimit     = ScrollLimit.Diagram;
            model.SnapSettings.SnapConstraints = SnapConstraints.None;

            Dictionary <Elements, string> dict = InitializeGeometry();

            //Initialize Elements
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 200, 175, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 200, 100, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 300, 100, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 525, 100, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 525, 275, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 100, 350, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 200, 600, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 300, 600, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 375, 350, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 525, 600, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 600, 525, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 300, 275, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 375, 525, Elements.Junction, 10, 10));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 200, 275, Elements.VerCapacitor, 25, 40));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 200.5, 475, Elements.VerResistor, 15, 75));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 375, 100, Elements.Diode, 30, 30));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 450, 350, Elements.Diode, 30, 30));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 350, 275.25, Elements.HorCapacitor, 45, 25));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 450, 275.25, Elements.HorResistor, 75, 15));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 374.5, 450, Elements.Coil, 40, 50));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 375, 640, Elements.Earth, 30, 45));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 600, 250, Elements.Storage, 25, 75));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 599.5, 430, Elements.Coil, 40, 50));
            model.Nodes.Add(AddNode(dict, model.Nodes.Count, 830.75, 260, Elements.Power, 100, 60));
            //Initialize Connections
            model.Connectors.Add(CreateConnection(1, new DiagramPoint(100, 100), new DiagramPoint(600, 100)));
            model.Connectors.Add(CreateConnection(2, new DiagramPoint(100, 100), new DiagramPoint(100, 600)));
            model.Connectors.Add(CreateConnection(3, new DiagramPoint(600, 100), new DiagramPoint(600, 212.5f)));
            model.Connectors.Add(CreateConnection(4, new DiagramPoint(100, 600), new DiagramPoint(600, 600)));
            model.Connectors.Add(CreateConnection(5, new DiagramPoint(100, 350), new DiagramPoint(800, 350)));
            model.Connectors.Add(CreateConnection(6, new DiagramPoint(202, 175), new DiagramPoint(800, 175)));
            model.Connectors.Add(CreateConnection(7, new DiagramPoint(800, 175), new DiagramPoint(800, 350)));
            model.Connectors.Add(CreateConnection(8, new DiagramPoint(200, 100), new DiagramPoint(200, 175)));
            model.Connectors.Add(CreateConnection(9, new DiagramPoint(200, 175), new DiagramPoint(200, 255)));
            model.Connectors.Add(CreateConnection(10, new DiagramPoint(300, 100), new DiagramPoint(300, 600)));
            model.Connectors.Add(CreateConnection(11, new DiagramPoint(525, 100), new DiagramPoint(525, 600)));
            model.Connectors.Add(CreateConnection(12, new DiagramPoint(200, 295), new DiagramPoint(200, 438)));
            model.Connectors.Add(CreateConnection(13, new DiagramPoint(199.5f, 510), new DiagramPoint(200, 600)));
            model.Connectors.Add(CreateConnection(14, new DiagramPoint(300, 275.25f), new DiagramPoint(330, 275.25f)));
            model.Connectors.Add(CreateConnection(15, new DiagramPoint(370, 275.25f), new DiagramPoint(425, 275.25f)));
            model.Connectors.Add(CreateConnection(16, new DiagramPoint(475, 275.25f), new DiagramPoint(525, 275.25f)));
            model.Connectors.Add(CreateConnection(17, new DiagramPoint(375, 350), new DiagramPoint(375, 425)));
            model.Connectors.Add(CreateConnection(18, new DiagramPoint(375, 473), new DiagramPoint(375, 625)));
            model.Connectors.Add(CreateConnection(19, new DiagramPoint(375, 525), new DiagramPoint(599, 525)));
            model.Connectors.Add(CreateConnection(20, new DiagramPoint(600, 286), new DiagramPoint(600, 406)));
            model.Connectors.Add(CreateConnection(21, new DiagramPoint(600, 454), new DiagramPoint(600, 600)));

            //Initialize Elements name
            model.Nodes.Add(AddLabel(model.Nodes.Count, 150, 275, "C1 120 uF"));
            model.Nodes.Add(AddLabel(model.Nodes.Count, 350, 250, "C2 20 uF"));
            model.Nodes.Add(AddLabel(model.Nodes.Count, 450, 250, "R2 22K"));
            model.Nodes.Add(AddLabel(model.Nodes.Count, 375, 75, "D1 IN4007"));
            model.Nodes.Add(AddLabel(model.Nodes.Count, 235, 475, "R1 6.8K"));
            model.Nodes.Add(AddLabel(model.Nodes.Count, 655, 425, "12V LAMP"));
            model.Nodes.Add(AddLabel(model.Nodes.Count, 660, 250, "SPST SWITCH"));
            model.EnableContextMenu = false;

            SwimlaneModel electricalModel = new SwimlaneModel();

            createSymbolPalettes(symbolPalettes);
            electricalModel.GenerateElectricalShapes(symbolPalettes);
            electricalModel.GenerateConnectors(symbolPalettes);
            ViewData["SymbolPaletteModel"] = symbolPalettes;
            ViewData["diagramModel"]       = model;
            return(View());
        }