private FlowchartModel CreateModel() { var model = new FlowchartModel(); // var start = new FlowNode(NodeKinds.Start); // start.Row = 0; // start.Column = 1; // start.Text = "Start"; // // var ac0 = new FlowNode(NodeKinds.Action); // ac0.Row = 1; // ac0.Column = 1; // ac0.Text = "i = 0"; // // var cond = new FlowNode(NodeKinds.Condition); // cond.Row = 2; // cond.Column = 1; // cond.Text = "i < n"; // // var ac1 = new FlowNode(NodeKinds.Action); // ac1.Row = 3; // ac1.Column = 1; // ac1.Text = "do something"; // // var ac2 = new FlowNode(NodeKinds.Action); // ac2.Row = 4; // ac2.Column = 1; // ac2.Text = "i++"; // // var end = new FlowNode(NodeKinds.End); // end.Row = 3; // end.Column = 2; // end.Text = "End"; // // model.Nodes.Add(start); // model.Nodes.Add(cond); // model.Nodes.Add(ac0); // model.Nodes.Add(ac1); // model.Nodes.Add(ac2); // model.Nodes.Add(end); // // model.Links.Add(new Link(start, PortKinds.Bottom, ac0, PortKinds.Top)); // model.Links.Add(new Link(ac0, PortKinds.Bottom, cond, PortKinds.Top)); // // model.Links.Add(new Link(cond, PortKinds.Bottom, ac1, PortKinds.Top) { Text = "True" }); // model.Links.Add(new Link(cond, PortKinds.Right, end, PortKinds.Top) { Text = "False" }); // // model.Links.Add(new Link(ac1, PortKinds.Bottom, ac2, PortKinds.Top)); // model.Links.Add(new Link(ac2, PortKinds.Bottom, cond, PortKinds.Top)); return(model); }
public Controller(DiagramView view, FlowchartModel model) { _view = view; _model = model; _model.Nodes.CollectionChanged += NodesCollectionChanged; _model.Links.CollectionChanged += LinksCollectionChanged; _updateScope = new UpdateScope(this); foreach (var t in _model.Nodes) { t.PropertyChanged += NodePropertyChanged; } UpdateView(); }
public FlowchartEditor() { InitializeComponent(); model = CreateModel(); _editor.Controller = new Controller(_editor, model); // _editor.DragDropTool = new DragDropTool(_editor, model); _editor.DragTool = new CustomMoveResizeTool(_editor, model) { // MoveGridCell = _editor.GridCellSize //MoveGridCell = "2,2" }; _editor.LinkTool = new CustomLinkTool(_editor); _editor.Selection.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(Selection_PropertyChanged); // _dragHelper = new ItemsControlDragHelper(_toolbox, this); // FillToolbox(); messsageMap = new Dictionary <string, string>(); messsageMap["*"] = ""; }
public DragDropTool(DiagramView view, FlowchartModel model) { _view = view; _model = model; }
public CustomMoveResizeTool(DiagramView view, FlowchartModel model) : base(view) { _model = model; }
private FlowchartModel CreateModel() { var model = new FlowchartModel(); var start = new FlowNode(NodeKinds.Start); start.Row = 0; start.Column = 1; start.Text = "Start"; var ac0 = new FlowNode(NodeKinds.Action); ac0.Row = 1; ac0.Column = 1; ac0.Text = "i = 0"; var cond = new FlowNode(NodeKinds.Condition); cond.Row = 2; cond.Column = 1; cond.Text = "i < n"; var ac1 = new FlowNode(NodeKinds.Action); ac1.Row = 3; ac1.Column = 1; ac1.Text = "do something"; var ac2 = new FlowNode(NodeKinds.Action); ac2.Row = 4; ac2.Column = 1; ac2.Text = "i++"; var end = new FlowNode(NodeKinds.End); end.Row = 3; end.Column = 2; end.Text = "End"; //model.Nodes.Add(start); //model.Nodes.Add(cond); //model.Nodes.Add(ac0); //model.Nodes.Add(ac1); //model.Nodes.Add(ac2); //model.Nodes.Add(end); //model.Links.Add(new Link(start, PortKinds.Bottom, ac0, PortKinds.Top)); //model.Links.Add(new Link(ac0, PortKinds.Bottom, cond, PortKinds.Top)); //model.Links.Add(new Link(cond, PortKinds.Bottom, ac1, PortKinds.Top) { Text = "True" }); //model.Links.Add(new Link(cond, PortKinds.Right, end, PortKinds.Top) { Text = "False" }); //model.Links.Add(new Link(ac1, PortKinds.Bottom, ac2, PortKinds.Top)); //model.Links.Add(new Link(ac2, PortKinds.Bottom, cond, PortKinds.Top)); var cpn = new FlowNode(NodeKinds.ConstantPayload); cpn.Row = 0; cpn.Column = 0; var fpn = new FlowNode(NodeKinds.FlexiblePaylaod); fpn.Row = 2; fpn.Column = 0; var dn = new FlowNode(NodeKinds.Distribute); dn.Row = 1; dn.Column = 2; var otn = new FlowNode(NodeKinds.Output); otn.Row = 1; otn.Column = 4; model.Nodes.Add(otn); model.Nodes.Add(cpn); model.Nodes.Add(fpn); model.Nodes.Add(dn); model.Links.Add(new Link(cpn, PortKinds.Right, dn, PortKinds.Top)); //dn.AddNode(cpn); model.Links.Add(new Link(fpn, PortKinds.Right, dn, PortKinds.Top)); //dn.AddNode(fpn); model.Links.Add(new Link(dn, PortKinds.Right, otn, PortKinds.Top)); //otn.AddNode(dn); return(model); }