From 90e94a7ec08ccf8a9c13553389443c38b3f412f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Sat, 25 Mar 2023 22:29:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E9=83=A8=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=96=B9=E6=B3=95=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=A1=B5=E9=9D=A2=E7=BB=91=E5=AE=9A=E7=9A=84?= =?UTF-8?q?=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/FlowchartViewModel.cs | 40 +++--- .../ViewModels/LogicalViewModel.cs | 38 +++-- .../ViewModels/MindViewModel.cs | 1 - .../ViewModels/PageViewModel.cs | 8 +- .../ViewModels/SFCViewModel.cs | 134 +++++++++--------- .../ReconnectLinksToClosestPortsViewModel.cs | 12 +- .../Animations/LineAnimationViewModel.cs | 12 +- .../Animations/PathAnimationViewModel.cs | 12 +- .../Customization/CustomGroupViewModel.cs | 12 +- .../Customization/CustomLinkViewModel.cs | 12 +- .../Customization/CustomNodeViewModel.cs | 12 +- .../Customization/CustomPortViewModel.cs | 12 +- .../ViewModels/EventsViewModel.cs | 11 +- .../Groups/CustomDefinedGroupViewModel.cs | 12 +- .../Groups/CustomShortcutGroupViewModel.cs | 12 +- .../ViewModels/Groups/GroupViewModel.cs | 12 +- .../ViewModels/Links/LabelsViewModel.cs | 26 ++-- .../ViewModels/Links/MarkersViewModel.cs | 33 ++--- .../Links/PathGeneratorsViewModel.cs | 20 ++- .../ViewModels/Links/RoutersViewModel.cs | 12 +- .../ViewModels/Links/SnappingViewModel.cs | 8 +- .../ViewModels/Links/VerticesViewModel.cs | 13 +- .../ViewModels/LockedViewModel.cs | 12 +- .../Nodes/CustomDefinedNodeViewModel.cs | 12 +- .../ViewModels/Nodes/GradientNodeViewModel.cs | 12 +- .../ViewModels/Nodes/RotateViewModel.cs | 12 +- .../ViewModels/Nodes/SvgViewModel.cs | 12 +- .../ViewModels/PerformanceViewModel.cs | 6 +- .../ViewModels/PortlessLinksViewModel.cs | 16 +-- .../ViewModels/Ports/ColoredPortViewModel.cs | 9 +- .../ViewModels/Ports/InnerPortViewModel.cs | 12 +- .../ViewModels/SimpleViewModel.cs | 12 +- .../ViewModels/SnapToGridViewModel.cs | 12 +- .../ViewModels/Texts/AlignmentViewModel.cs | 10 +- .../ViewModels/Texts/ColorTextViewModel.cs | 10 +- .../ViewModels/Texts/FontSizeViewModel.cs | 10 +- .../ViewModels/Texts/OutlineTextViewModel.cs | 10 +- .../ViewModels/Texts/TextViewModel.cs | 10 +- .../ViewModels/ZoomViewModel.cs | 12 +- .../Adorners/RubberbandAdorner.cs | 10 +- .../Controls/DesignerCanvas.cs | 14 +- .../BaseViewModel/DiagramViewModel.cs | 71 ++++------ .../ViewModels/IDiagramViewModel.cs | 12 +- AIStudio.Wpf.Mind/ViewModels/MindNode.cs | 12 +- 44 files changed, 337 insertions(+), 435 deletions(-) diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs index ff43c1f..adaca4f 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs @@ -44,65 +44,63 @@ namespace AIStudio.Wpf.Flowchart base.Init(); DesignerItemViewModelBase start = new StartFlowNode() { Left = 100, Top = 0, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString() }; - DiagramViewModel.DirectAddItemCommand.Execute(start); + DiagramViewModel.Add(start); DesignerItemViewModelBase middle1 = new MiddleFlowNode() { Left = 100, Top = 100, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString(), Text = "主管审批", UserIds= new List { "操作员1", "操作员2" }, ActType = "or" }; - DiagramViewModel.DirectAddItemCommand.Execute(middle1); + DiagramViewModel.Add(middle1); DesignerItemViewModelBase decide = new DecideFlowNode() { Left = 100, Top = 200, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString(), Text = "5" }; - DiagramViewModel.DirectAddItemCommand.Execute(decide); + DiagramViewModel.Add(decide); DesignerItemViewModelBase middle2 = new MiddleFlowNode() { Left = 200, Top = 300, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString(), Text = "分管领导", UserIds = new List { "操作员1", "操作员2" }, ActType = "and", DoubleApprove = true }; - DiagramViewModel.DirectAddItemCommand.Execute(middle2); + DiagramViewModel.Add(middle2); DesignerItemViewModelBase cobegin = new COBeginFlowNode() { Left = 100, Top = 400, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString() }; - DiagramViewModel.DirectAddItemCommand.Execute(cobegin); + DiagramViewModel.Add(cobegin); DesignerItemViewModelBase middle3 = new MiddleFlowNode() { Left = 100, Top = 500, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString(), Text = "财务审批", UserIds = new List { "Admin" }, ActType = "or", DoubleApprove = true }; - DiagramViewModel.DirectAddItemCommand.Execute(middle3); + DiagramViewModel.Add(middle3); DesignerItemViewModelBase middle4 = new MiddleFlowNode() { Left = 200, Top = 500, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString(), Text = "人力审批", RoleIds = new List { "操作员", "管理员" }, ActType = "or", DoubleApprove = true }; - DiagramViewModel.DirectAddItemCommand.Execute(middle4); + DiagramViewModel.Add(middle4); DesignerItemViewModelBase coend = new COEndFlowNode() { Left = 100, Top = 600, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString() }; - DiagramViewModel.DirectAddItemCommand.Execute(coend); + DiagramViewModel.Add(coend); DesignerItemViewModelBase end = new EndFlowNode() { Left = 100, Top = 700, ItemWidth = 80, ItemHeight = 40, StatusColor = Colors.Yellow.ToString() }; - DiagramViewModel.DirectAddItemCommand.Execute(end); + DiagramViewModel.Add(end); ConnectionViewModel connector1 = new ConnectionViewModel(start.BottomConnector, middle1.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(middle1.BottomConnector, decide.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); ConnectionViewModel connector3 = new ConnectionViewModel(decide.RightConnector, middle2.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector3); + DiagramViewModel.Add(connector3); connector3.AddLabel(">=3"); ConnectionViewModel connector4 = new ConnectionViewModel(middle2.BottomConnector, cobegin.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector4); + DiagramViewModel.Add(connector4); ConnectionViewModel connector5 = new ConnectionViewModel(decide.BottomConnector, cobegin.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector5); + DiagramViewModel.Add(connector5); connector5.AddLabel("<3"); ConnectionViewModel connector6 = new ConnectionViewModel(cobegin.BottomConnector, middle3.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector6); + DiagramViewModel.Add(connector6); ConnectionViewModel connector7 = new ConnectionViewModel(cobegin.BottomConnector, middle4.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector7); + DiagramViewModel.Add(connector7); ConnectionViewModel connector8 = new ConnectionViewModel(middle3.BottomConnector, coend.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector8); + DiagramViewModel.Add(connector8); ConnectionViewModel connector9 = new ConnectionViewModel(middle4.BottomConnector, coend.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector9); + DiagramViewModel.Add(connector9); ConnectionViewModel connector10 = new ConnectionViewModel(coend.BottomConnector, end.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector10); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector10); FlowchartService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs index 1c2edff..bc2df8d 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs @@ -40,81 +40,79 @@ namespace AIStudio.Wpf.Logical TimerDesignerItemViewModel timer = new TimerDesignerItemViewModel() { Left = 28, Top = 28 }; timer.Value = 1; - DiagramViewModel.DirectAddItemCommand.Execute(timer); + DiagramViewModel.Add(timer); InputItemViewModel in1 = new InputItemViewModel() { Left = 28, Top = 110 }; in1.LinkPoint = LogicalService.LinkPoint[0]; - DiagramViewModel.DirectAddItemCommand.Execute(in1); + DiagramViewModel.Add(in1); InputItemViewModel in2 = new InputItemViewModel() { Left = 28, Top = 300 }; in2.LinkPoint = LogicalService.LinkPoint[1]; - DiagramViewModel.DirectAddItemCommand.Execute(in2); + DiagramViewModel.Add(in2); AddGateItemViewModel item1 = new AddGateItemViewModel() { Left = 178, Top = 160 }; - DiagramViewModel.DirectAddItemCommand.Execute(item1); + DiagramViewModel.Add(item1); ConstantDesignerItemViewModel constant = new ConstantDesignerItemViewModel() { Left = 178, Top = 300, Value = 10 }; - DiagramViewModel.DirectAddItemCommand.Execute(constant); + DiagramViewModel.Add(constant); GTGateItemViewModel gTGate = new GTGateItemViewModel() { Left = 328, Top = 110 }; - DiagramViewModel.DirectAddItemCommand.Execute(gTGate); + DiagramViewModel.Add(gTGate); InputItemViewModel in3 = new InputItemViewModel() { Left = 328, Top = 210 }; in3.LinkPoint = LogicalService.LinkPoint[2]; - DiagramViewModel.DirectAddItemCommand.Execute(in3); + DiagramViewModel.Add(in3); InputItemViewModel in4 = new InputItemViewModel() { Left = 328, Top = 300 }; in4.LinkPoint = LogicalService.LinkPoint[3]; - DiagramViewModel.DirectAddItemCommand.Execute(in4); + DiagramViewModel.Add(in4); SELGateItemViewModel sELGate = new SELGateItemViewModel() { Left = 478, Top = 160 }; - DiagramViewModel.DirectAddItemCommand.Execute(sELGate); + DiagramViewModel.Add(sELGate); OutputItemViewModel out1 = new OutputItemViewModel() { Left = 628, Top = 110 }; out1.LinkPoint = LogicalService.LinkPoint[4]; - DiagramViewModel.DirectAddItemCommand.Execute(out1); + DiagramViewModel.Add(out1); ConnectionViewModel connector1 = new ConnectionViewModel(in1.Output[0], item1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector1.ColorViewModel.FillColor.Color = Colors.Green; connector1.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(in2.Output[0], item1.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector2.ColorViewModel.FillColor.Color = Colors.Green; connector2.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); ConnectionViewModel connector3 = new ConnectionViewModel(item1.Output[0], gTGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector3.ColorViewModel.FillColor.Color = Colors.Green; connector3.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector3); + DiagramViewModel.Add(connector3); ConnectionViewModel connector4 = new ConnectionViewModel(constant.Output[0], gTGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector4.ColorViewModel.FillColor.Color = Colors.Green; connector4.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector4); + DiagramViewModel.Add(connector4); ConnectionViewModel connector5 = new ConnectionViewModel(gTGate.Output[0], sELGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector5.ColorViewModel.FillColor.Color = Colors.Green; connector5.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector5); + DiagramViewModel.Add(connector5); ConnectionViewModel connector6 = new ConnectionViewModel(in3.Output[0], sELGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector6.ColorViewModel.FillColor.Color = Colors.Green; connector6.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector6); + DiagramViewModel.Add(connector6); ConnectionViewModel connector7 = new ConnectionViewModel(in4.Output[0], sELGate.Input[2], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector7.ColorViewModel.FillColor.Color = Colors.Green; connector7.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector7); + DiagramViewModel.Add(connector7); ConnectionViewModel connector8 = new ConnectionViewModel(sELGate.Output[0], out1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); connector8.ColorViewModel.FillColor.Color = Colors.Green; connector8.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector8); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector8); } private void Items_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs index 3de825d..88b1df6 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs @@ -120,7 +120,6 @@ namespace AIStudio.Wpf.Flowchart MindNode level2node1_3 = new MindNode(DiagramViewModel) { Text = "分支主题3" }; MindDiagramViewModel.AddChildCommand.Execute(new MindNode[] { level1node, level2node1_3 }); - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); level1node.LayoutUpdated(); } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs index 2b60c6b..7070705 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs @@ -524,7 +524,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels public void AddImageExecuted(object para) { ImageItemViewModel itemBase = new ImageItemViewModel(); - DiagramViewModel?.DirectAddItemCommand.Execute(itemBase); + DiagramViewModel?.AddItemCommand.Execute(itemBase); if (itemBase.Root != null) { _service.DrawModeViewModel.CursorMode = CursorMode.Move; @@ -561,7 +561,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels public void AddVideoExecuted(object para) { VideoItemViewModel itemBase = new VideoItemViewModel(); - DiagramViewModel?.DirectAddItemCommand.Execute(itemBase); + DiagramViewModel?.AddItemCommand.Execute(itemBase); if (itemBase.Root != null) { _service.DrawModeViewModel.CursorMode = CursorMode.Move; @@ -571,7 +571,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels public void AddOutLineTextExecuted(object para) { OutLineTextDesignerItemViewModel itemBase = new OutLineTextDesignerItemViewModel(); - DiagramViewModel?.DirectAddItemCommand.Execute(itemBase); + DiagramViewModel?.AddItemCommand.Execute(itemBase); if (itemBase.Root != null) { _service.DrawModeViewModel.CursorMode = CursorMode.Move; @@ -581,7 +581,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels public void AddBarcodeExecuted(object para) { BarcodeDesignerItemViewModel itemBase = new BarcodeDesignerItemViewModel() { Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), para.ToString()), Text="AIStudio.Wpf.DiagramApp" }; - DiagramViewModel?.DirectAddItemCommand.Execute(itemBase); + DiagramViewModel?.AddItemCommand.Execute(itemBase); if (itemBase.Root != null) { _service.DrawModeViewModel.CursorMode = CursorMode.Move; diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs index 3b89ef7..ca15767 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs @@ -52,148 +52,148 @@ namespace AIStudio.Wpf.Flowchart base.Init(); SFCStartNode start = new SFCStartNode() { Left = 0, Top = 60, Text = "S0" }; - DiagramViewModel.DirectAddItemCommand.Execute(start); + DiagramViewModel.Add(start); SFCConditionNode condition1_1 = new SFCConditionNode() { Left = 0, Top = 120, Text = "X01", Expression = "p0==1&p1<20", LinkPoint = new ObservableCollection { SFCService.LinkPoint.FirstOrDefault(p => p.Name == "S0"), SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T2") } }; - DiagramViewModel.DirectAddItemCommand.Execute(condition1_1); + DiagramViewModel.Add(condition1_1); SFCConditionNode condition1_2 = new SFCConditionNode() { Left = 100, Top = 120, Text = "X02", Expression = "p0==1&p1<30", LinkPoint = new ObservableCollection { SFCService.LinkPoint.FirstOrDefault(p => p.Name == "S0"), SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T2") } }; - DiagramViewModel.DirectAddItemCommand.Execute(condition1_2); + DiagramViewModel.Add(condition1_2); SFCNodeNode step1 = new SFCNodeNode() { Left = 0, Top = 180, Text = "S1" }; - DiagramViewModel.DirectAddItemCommand.Execute(step1); + DiagramViewModel.Add(step1); SFCActionNode action11 = new SFCActionNode() { Left = 100, Top = 180, Text = "SET_V1", Expression = "1", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K1_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action11); + DiagramViewModel.Add(action11); SFCActionNode action12 = new SFCActionNode() { Left = 200, Top = 180, Text = "SET_V2", Expression = "1", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K2_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action12); + DiagramViewModel.Add(action12); SFCActionNode action13 = new SFCActionNode() { Left = 300, Top = 180, Text = "SET_V3", Expression = "1", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K3_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action13); + DiagramViewModel.Add(action13); SFCActionNode action14 = new SFCActionNode() { Left = 400, Top = 180, Text = "RES_V4", Expression = "0", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K4_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action14); + DiagramViewModel.Add(action14); SFCConditionNode condition2 = new SFCConditionNode() { Left = 0, Top = 240, Text = "X1", Expression = "p0>50", LinkPoint = new ObservableCollection { SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T2") } }; - DiagramViewModel.DirectAddItemCommand.Execute(condition2); + DiagramViewModel.Add(condition2); SFCNodeNode step2 = new SFCNodeNode() { Left = 0, Top = 300, Text = "S2" }; - DiagramViewModel.DirectAddItemCommand.Execute(step2); + DiagramViewModel.Add(step2); SFCActionNode action2 = new SFCActionNode() { Left = 100, Top = 300, Text = "SET_V4", Expression = "1", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K4_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action2); + DiagramViewModel.Add(action2); SFCConditionNode condition3 = new SFCConditionNode() { Left = 0, Top = 360, Text = "X2", Expression = "p0>70", LinkPoint = new ObservableCollection { SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T2") } }; - DiagramViewModel.DirectAddItemCommand.Execute(condition3); + DiagramViewModel.Add(condition3); SFCNodeNode step3 = new SFCNodeNode() { Left = 0, Top = 420, Text = "S3" }; - DiagramViewModel.DirectAddItemCommand.Execute(step3); + DiagramViewModel.Add(step3); SFCActionNode action3 = new SFCActionNode() { Left = 100, Top = 420, Text = "RES_V1", Expression = "0", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K1_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action3); + DiagramViewModel.Add(action3); SFCConditionNode condition4 = new SFCConditionNode() { Left = 0, Top = 480, Text = "X3", Expression = "p0>80", LinkPoint = new ObservableCollection { SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T2") } }; - DiagramViewModel.DirectAddItemCommand.Execute(condition4); + DiagramViewModel.Add(condition4); SFCCOBeginNode cobegin = new SFCCOBeginNode() { Left = 38, Top = 540, Text = "" }; - DiagramViewModel.DirectAddItemCommand.Execute(cobegin); + DiagramViewModel.Add(cobegin); SFCNodeNode step4 = new SFCNodeNode() { Left = 0, Top = 600, Text = "S4" }; - DiagramViewModel.DirectAddItemCommand.Execute(step4); + DiagramViewModel.Add(step4); SFCActionNode action4 = new SFCActionNode() { Left = 100, Top = 600, Text = "RES_V2", Expression = "0", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K2_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action4); + DiagramViewModel.Add(action4); SFCConditionNode condition5 = new SFCConditionNode() { Left = 0, Top = 660, Text = "X4", Expression = "p0==0", LinkPoint = new ObservableCollection { SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K2_DO") } }; - DiagramViewModel.DirectAddItemCommand.Execute(condition5); + DiagramViewModel.Add(condition5); SFCNodeNode step5 = new SFCNodeNode() { Left = 200, Top = 600, Text = "S5" }; - DiagramViewModel.DirectAddItemCommand.Execute(step5); + DiagramViewModel.Add(step5); SFCActionNode action5 = new SFCActionNode() { Left = 300, Top = 600, Text = "RES_V3", Expression = "0", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K3_DI") }; - DiagramViewModel.DirectAddItemCommand.Execute(action5); + DiagramViewModel.Add(action5); SFCConditionNode condition6 = new SFCConditionNode() { Left = 200, Top = 660, Text = "X5", Expression = "p0==0", LinkPoint = new ObservableCollection { SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K3_DO") } }; - DiagramViewModel.DirectAddItemCommand.Execute(condition6); + DiagramViewModel.Add(condition6); SFCCOEndNode coend = new SFCCOEndNode() { Left = 38, Top = 720, Text = "" }; - DiagramViewModel.DirectAddItemCommand.Execute(coend); + DiagramViewModel.Add(coend); ConnectionViewModel connector1_1 = new ConnectionViewModel(start.Output[0], condition1_1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector1_1); + DiagramViewModel.Add(connector1_1); ConnectionViewModel connector2_1 = new ConnectionViewModel(condition1_1.Output[0], step1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector2_1); + DiagramViewModel.Add(connector2_1); ConnectionViewModel connector1_2 = new ConnectionViewModel(start.Output[0], condition1_2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector1_2); + DiagramViewModel.Add(connector1_2); ConnectionViewModel connector2_2 = new ConnectionViewModel(condition1_2.Output[0], step1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector2_2); + DiagramViewModel.Add(connector2_2); ConnectionViewModel connector31 = new ConnectionViewModel(step1.Action[0], action11.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector31); + DiagramViewModel.Add(connector31); ConnectionViewModel connector32 = new ConnectionViewModel(step1.Action[0], action12.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector32); + DiagramViewModel.Add(connector32); ConnectionViewModel connector33 = new ConnectionViewModel(step1.Action[0], action13.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector33); + DiagramViewModel.Add(connector33); ConnectionViewModel connector34 = new ConnectionViewModel(step1.Action[0], action14.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector34); + DiagramViewModel.Add(connector34); ConnectionViewModel connector4 = new ConnectionViewModel(step1.Output[0], condition2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector4); + DiagramViewModel.Add(connector4); ConnectionViewModel connector5 = new ConnectionViewModel(condition2.Output[0], step2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector5); + DiagramViewModel.Add(connector5); ConnectionViewModel connector6 = new ConnectionViewModel(step2.Action[0], action2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector6); + DiagramViewModel.Add(connector6); ConnectionViewModel connector7 = new ConnectionViewModel(step2.Output[0], condition3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector7); + DiagramViewModel.Add(connector7); ConnectionViewModel connector8 = new ConnectionViewModel(condition3.Output[0], step3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector8); + DiagramViewModel.Add(connector8); ConnectionViewModel connector9 = new ConnectionViewModel(step3.Action[0], action3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector9); + DiagramViewModel.Add(connector9); ConnectionViewModel connector10 = new ConnectionViewModel(step3.Output[0], condition4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector10); + DiagramViewModel.Add(connector10); ConnectionViewModel connector11 = new ConnectionViewModel(condition4.Output[0], cobegin.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector11); + DiagramViewModel.Add(connector11); ConnectionViewModel connector12 = new ConnectionViewModel(cobegin.Output[0], step4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector12); + DiagramViewModel.Add(connector12); ConnectionViewModel connector13 = new ConnectionViewModel(step4.Action[0], action4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector13); + DiagramViewModel.Add(connector13); ConnectionViewModel connector14 = new ConnectionViewModel(step4.Output[0], condition5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector14); + DiagramViewModel.Add(connector14); ConnectionViewModel connector15 = new ConnectionViewModel(cobegin.Output[1], step5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector15); + DiagramViewModel.Add(connector15); ConnectionViewModel connector16 = new ConnectionViewModel(step5.Action[0], action5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector16); + DiagramViewModel.Add(connector16); ConnectionViewModel connector17 = new ConnectionViewModel(step5.Output[0], condition6.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector17); + DiagramViewModel.Add(connector17); ConnectionViewModel connector18 = new ConnectionViewModel(condition5.Output[0], coend.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector18); + DiagramViewModel.Add(connector18); ConnectionViewModel connector19 = new ConnectionViewModel(condition6.Output[0], coend.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector19); + DiagramViewModel.Add(connector19); ConnectionViewModel connector20 = new ConnectionViewModel(coend.Output[0], start.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(connector20); + DiagramViewModel.Add(connector20); #region 模拟部分 TextDesignerItemViewModel despcription = new TextDesignerItemViewModel() @@ -211,67 +211,65 @@ namespace AIStudio.Wpf.Flowchart }; despcription.FontViewModel.HorizontalAlignment = HorizontalAlignment.Left; despcription.FontViewModel.VerticalAlignment = VerticalAlignment.Top; - DiagramViewModel.DirectAddItemCommand.Execute(despcription); + DiagramViewModel.Add(despcription); Simulate_ListViewModel list = new Simulate_ListViewModel() { Left = 410, Top = 390, }; - DiagramViewModel.DirectAddItemCommand.Execute(list); + DiagramViewModel.Add(list); Simulate_StartViewModel btnstart = new Simulate_StartViewModel() { Left = 0, Top = 0, LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "S0"), }; - DiagramViewModel.DirectAddItemCommand.Execute(btnstart); + DiagramViewModel.Add(btnstart); Simulate_TankViewModel tank1 = new Simulate_TankViewModel() { Left = 100, Top = 43, ItemWidth = 48, ItemHeight = 60, Text = "T1", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T1") }; - DiagramViewModel.DirectAddItemCommand.Execute(tank1); + DiagramViewModel.Add(tank1); Simulate_SolenoidViewModel k1 = new Simulate_SolenoidViewModel() { Left = 200, Top = 0, Text = "K1", DILinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K1_DI"), DOLinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K1_DO") }; - DiagramViewModel.DirectAddItemCommand.Execute(k1); + DiagramViewModel.Add(k1); Simulate_SolenoidViewModel k2 = new Simulate_SolenoidViewModel() { Left = 200, Top = 60, Text = "K2", DILinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K2_DI"), DOLinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K2_DO") }; - DiagramViewModel.DirectAddItemCommand.Execute(k2); + DiagramViewModel.Add(k2); Simulate_SolenoidViewModel k3 = new Simulate_SolenoidViewModel() { Left = 200, Top = 120, Text = "K3", DILinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K3_DI"), DOLinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K3_DO") }; - DiagramViewModel.DirectAddItemCommand.Execute(k3); + DiagramViewModel.Add(k3); Simulate_TankViewModel tank2 = new Simulate_TankViewModel() { Left = 300, Top = 28, Text = "T2", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T2") }; - DiagramViewModel.DirectAddItemCommand.Execute(tank2); + DiagramViewModel.Add(tank2); Simulate_SolenoidViewModel k4 = new Simulate_SolenoidViewModel() { Left = 400, Top = 60, Text = "K4", DILinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K4_DI"), DOLinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "K4_DO") }; - DiagramViewModel.DirectAddItemCommand.Execute(k4); + DiagramViewModel.Add(k4); Simulate_TankViewModel tank3 = new Simulate_TankViewModel() { Left = 500, Top = 103, ItemWidth = 48, ItemHeight = 60, Text = "T3", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T3") }; - DiagramViewModel.DirectAddItemCommand.Execute(tank3); + DiagramViewModel.Add(tank3); ConnectionViewModel conn1 = new ConnectionViewModel(tank1.Output[0], k1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn1); + DiagramViewModel.Add(conn1); ConnectionViewModel conn2 = new ConnectionViewModel(tank1.Output[0], k2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn2); + DiagramViewModel.Add(conn2); ConnectionViewModel conn3 = new ConnectionViewModel(tank1.Output[0], k3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn3); + DiagramViewModel.Add(conn3); ConnectionViewModel conn4 = new ConnectionViewModel(k1.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn4); + DiagramViewModel.Add(conn4); ConnectionViewModel conn5 = new ConnectionViewModel(k2.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn5); + DiagramViewModel.Add(conn5); ConnectionViewModel conn6 = new ConnectionViewModel(k3.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn6); + DiagramViewModel.Add(conn6); ConnectionViewModel conn7 = new ConnectionViewModel(tank2.Output[1], k4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn7); + DiagramViewModel.Add(conn7); ConnectionViewModel conn8 = new ConnectionViewModel(k4.Output[0], tank3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); - DiagramViewModel.DirectAddItemCommand.Execute(conn8); + DiagramViewModel.Add(conn8); #endregion - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); - SFCService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); readDataTimer.Elapsed += timeCycle; diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs index 7cd1429..ef83cfe 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs @@ -20,23 +20,21 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); ReconnectLinksCommand = new SimpleCommand(ReconnectLinks); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); } public SimpleCommand ReconnectLinksCommand diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs index 60837d0..b27b1ad 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs @@ -19,25 +19,23 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector1.ColorViewModel.LineDashStyle = LineDashStyle.Dash1; connector1.ColorViewModel.LineAnimation = LineAnimation.DashAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); connector2.ColorViewModel.LineDashStyle = LineDashStyle.Dash1; connector2.ColorViewModel.LineAnimation = LineAnimation.DashAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs index 325ece2..2560b74 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs @@ -20,25 +20,23 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector1.ColorViewModel.FillColor.Color = Colors.Red; connector1.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); connector2.ColorViewModel.FillColor.Color = Colors.Red; connector2.ColorViewModel.LineAnimation = LineAnimation.PathAnimation; - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs index 20af0c2..744f308 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs @@ -19,23 +19,21 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); DiagramViewModel.GroupCommand.Execute(new List { node1, node2 }); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs index 85101dd..672bfb4 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs @@ -20,13 +20,13 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector1.ColorViewModel.LineWidth = 6; @@ -34,14 +34,12 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels connector1.ColorViewModel.LineColor.GradientStop = new ObservableCollection(); connector1.ColorViewModel.LineColor.GradientStop.Add(new GradientStop(System.Windows.Media.Colors.Red, 0)); connector1.ColorViewModel.LineColor.GradientStop.Add(new GradientStop(System.Windows.Media.Colors.Gray, 1)); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); connector2.ColorViewModel.LineWidth = 6; connector2.ColorViewModel.LineColor.Color = System.Windows.Media.Colors.Blue; - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs index accc0fe..0db7783 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs @@ -20,21 +20,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.TopConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.BottomConnector, node3.BottomConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs index 42bc665..123790e 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs @@ -19,21 +19,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs index d7e3608..d6697ca 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs @@ -22,21 +22,20 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); DiagramViewModel.Event += DiagramViewModel_Event; } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs index 9d6e648..2f3cbda 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs @@ -20,26 +20,24 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Groups DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); //Custom 需要设置为True,表示外面自定义的Group替换默认的。 CustomDefinedGroupDesignerItemViewModel group = new CustomDefinedGroupDesignerItemViewModel() { Describe = "This is a custom group", Custom = true}; group.FontViewModel.FontColor = System.Windows.Media.Colors.Orange; DiagramViewModel.GroupCommand.Execute(new List { group, node1, node2 }); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs index c557cdd..11c0f9e 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs @@ -21,23 +21,21 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.DiagramOption.ShortcutOption.Group = e => e.KeyboardDevice.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift) && e.Key == Key.K; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); DiagramViewModel.GroupCommand.Execute(new List { node1, node2 }); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs index 946f8d3..302b51d 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs @@ -20,23 +20,21 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); DiagramViewModel.GroupCommand.Execute(new List { node1, node2 }); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs index b7bc697..9058ecb 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs @@ -20,49 +20,47 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 50, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.AddLabel("Content"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 160, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 160, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.AddLabel("0.25", 0.3); connector1.AddLabel("0.75", 0.7); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 270, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 270, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.AddLabel("50", 50); connector1.AddLabel("-50", -50); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 380, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 380, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.AddLabel("(0,-20)", 50, new Point(0, -20)); connector1.AddLabel("(0,20)", -50, new Point(0, 20)); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector1); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs index 9045555..8cea720 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs @@ -19,67 +19,64 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 50, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.ShapeViewModel.SourceMarker = LinkMarker.Arrow; connector1.ShapeViewModel.SinkMarker = LinkMarker.Arrow; connector1.AddLabel("Arrow"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 160, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 160, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.ShapeViewModel.SourceMarker = LinkMarker.Circle; connector1.ShapeViewModel.SinkMarker = LinkMarker.Circle; connector1.AddLabel("Circle"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 270, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 270, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.ShapeViewModel.SourceMarker = LinkMarker.Square; connector1.ShapeViewModel.SinkMarker = LinkMarker.Square; connector1.AddLabel("Square"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 380, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 380, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.ShapeViewModel.SourceMarker = LinkMarker.NewRectangle(10, 20); connector1.ShapeViewModel.SinkMarker = LinkMarker.NewArrow(20, 10); connector1.AddLabel("Factory"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 490, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 490, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); connector1.ShapeViewModel.SourceMarker = new LinkMarker("M 0 -8 L 3 -8 3 8 0 8 z M 4 -8 7 -8 7 8 4 8 z M 8 -8 16 0 8 8 z", 16, 16, ArrowPathStyle.Arrow, ArrowSizeStyle.ExtraLarge); connector1.ShapeViewModel.SinkMarker = new LinkMarker("M 0 -8 L 8 -8 4 0 8 8 0 8 4 0 z", 8, 8, ArrowPathStyle.Arrow, ArrowSizeStyle.Small); connector1.AddLabel("Custom"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); - + DiagramViewModel.Add(connector1); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs index 33d2f60..2f2530e 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs @@ -22,37 +22,35 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 80, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 100, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 200, Top = 80, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterNormal); connector1.AddLabel("Straight"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector2.AddLabel("Smooth"); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); DefaultDesignerItemViewModel node4 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 450, Top = 300, Text = "4" }; - DiagramViewModel.DirectAddItemCommand.Execute(node4); + DiagramViewModel.Add(node4); DefaultDesignerItemViewModel node5 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 550, Top = 80, Text = "5" }; - DiagramViewModel.DirectAddItemCommand.Execute(node5); + DiagramViewModel.Add(node5); ConnectionViewModel connector3 = new ConnectionViewModel(DiagramViewModel, node3.RightConnector, node4.LeftConnector, DrawMode.ConnectingLineBoundary, RouterMode.RouterNormal); connector3.AddLabel("Boundary"); - DiagramViewModel.DirectAddItemCommand.Execute(connector3); + DiagramViewModel.Add(connector3); ConnectionViewModel connector4 = new ConnectionViewModel(DiagramViewModel, node4.RightConnector, node5.LeftConnector, DrawMode.ConnectingLineCorner, RouterMode.RouterNormal); connector4.AddLabel("Corner"); - DiagramViewModel.DirectAddItemCommand.Execute(connector4); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector4); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs index aa17e0b..04affeb 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs @@ -20,23 +20,21 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 80, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 350, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 350, Top = 100, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector1.AddLabel("Normal"); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.LeftConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); connector2.AddLabel("Orthogonal"); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs index faff78f..45cea18 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs @@ -20,15 +20,13 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(node3); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs index 75d0f39..3591eb8 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs @@ -20,28 +20,25 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 80, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 200, Top = 350, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 400, Top = 100, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterNormal); connector1.AddLabel("Content"); connector1.AddVertex(new Point(221, 112.5)); connector1.AddVertex(new Point(111, 291)); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); connector2.AddLabel("Content"); connector2.AddVertex(new Point(400, 324)); connector2.AddVertex(new Point(326, 180)); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs index 28132ff..21bfcf0 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs @@ -26,29 +26,27 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; //node1.LockObjectViewModel.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All).IsChecked = true;//这个也可以 node1.IsReadOnly = true; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; //node2.LockObjectViewModel.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All).IsChecked = true;//这个也可以 node2.IsReadOnly = true; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; //node3.LockObjectViewModel.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All).IsChecked = true;//这个也可以 node3.IsReadOnly = true; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); //connector1.LockObjectViewModel.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All).IsChecked = true;//这个也可以 connector1.IsReadOnly = true; - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); // connector2.LockObjectViewModel.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All).IsChecked = true;//这个也可以 connector2.IsReadOnly = true; - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs index 226ef2d..bd6e3d9 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs @@ -20,21 +20,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); CustomDefinedDesignerItemViewModel node2 = new CustomDefinedDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300 }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); CustomDefinedDesignerItemViewModel node3 = new CustomDefinedDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50 }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.TopConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.BottomConnector, node3.BottomConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs index c5fbc26..45330ad 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs @@ -27,7 +27,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels new GradientStop(Colors.Yellow, 0.5), new GradientStop(Colors.Blue, 1), }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300 }; node2.ColorViewModel.FillColor.BrushType = BrushType.RadialGradientBrush; @@ -37,19 +37,17 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels new GradientStop(Colors.Yellow, 0.5), new GradientStop(Colors.Blue, 1), }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50 }; node3.ColorViewModel.FillColor.BrushType = BrushType.DrawingBrush; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs index 52fdd35..422c47b 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs @@ -21,27 +21,25 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Nodes DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; node1.ShowRotate = true; node1.Angle = 45; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; node2.ShowRotate = true; node2.ScaleX = 1.5; node2.ScaleY = 1.5; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; node3.ShowRotate = true; node3.ScaleX = -1; node3.ScaleY = -1; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs index d07b4f4..2b7aa74 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs @@ -22,21 +22,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); PathItemViewModel node2 = new PathItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Icon = "M 0 -50 L 50 -50 L 50 -10 A 1 1 0 0 0 50 10 L 50 50 L 0 50 L 0 10 A 1 1 0 0 0 0 -10 Z" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); PathItemViewModel node3 = new PathItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Icon = "M 0 -50 L 50 -50 L 50 -10 A 1 1 0 0 0 50 10 L 50 50 L 0 50 L 0 10 A 1 1 0 0 0 0 -10 Z" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.TopConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.BottomConnector, node3.BottomConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs index 347fd7c..9d3819f 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs @@ -25,14 +25,12 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels var node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 10 + c * 10 + c * 120, Top = 10 + r * 100, Text = $"{r * 10 + c}" }; var node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 10 + (c + 1) * 130, Top = 10 + r * 100, Text = $"{r * 10 + c + 1}" }; - DiagramViewModel.DirectAddItemCommand.Execute(new List { node1, node2 }); + DiagramViewModel.Add(new List { node1, node2 }); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); } } - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs index f2d1daa..5adb08f 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs @@ -20,27 +20,25 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); DefaultDesignerItemViewModel node4 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 300, Text = "4" }; - DiagramViewModel.DirectAddItemCommand.Execute(node4); + DiagramViewModel.Add(node4); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.PortlessConnector, node2.PortlessConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.PortlessConnector, node3.TopConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); + DiagramViewModel.Add(connector2); ConnectionViewModel connector3 = new ConnectionViewModel(DiagramViewModel, node3.LeftConnector, node4.PortlessConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector3); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector3); } } } \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs index 4c1bcf2..c933549 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs @@ -27,7 +27,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels node1.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node1, ConnectorOrientation.Bottom, Colors.Red)); node1.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node1, ConnectorOrientation.Left, Colors.Green)); node1.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node1, ConnectorOrientation.Right, Colors.Green)); - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; node2.ClearConnectors(); @@ -35,16 +35,15 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels node2.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node2, ConnectorOrientation.Bottom, Colors.Red)); node2.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node2, ConnectorOrientation.Left, Colors.Green)); node2.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node2, ConnectorOrientation.Right, Colors.Green)); - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; node3.ClearConnectors(); node3.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node3, ConnectorOrientation.Top, Colors.Red)); node3.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node3, ConnectorOrientation.Bottom, Colors.Red)); node3.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node3, ConnectorOrientation.Left, Colors.Green)); - node3.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node3, ConnectorOrientation.Right, Colors.Green)); DiagramViewModel.DirectAddItemCommand.Execute(node3); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + node3.AddConnector(new ColoredPortConnectorInfo(DiagramViewModel, node3, ConnectorOrientation.Right, Colors.Green)); + DiagramViewModel.Add(node3); } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs index 24e3b4e..addb8d4 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs @@ -23,7 +23,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels var port1 = new FullyCreatedConnectorInfo(DiagramViewModel, node1, ConnectorOrientation.Right, true) { XRatio = 0.5, YRatio = 0.5 }; node1.AddConnector(port1); - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; node2.ClearConnectors(); @@ -31,21 +31,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels var port2_2 = new FullyCreatedConnectorInfo(DiagramViewModel, node2, ConnectorOrientation.Top, true) { XRatio = 0.8, YRatio = 0.2 }; node2.AddConnector(port2_1); node2.AddConnector(port2_2); - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; node3.ClearConnectors(); var port3 = new FullyCreatedConnectorInfo(DiagramViewModel, node3, ConnectorOrientation.Bottom, true) { XRatio = 0.5, YRatio = 0.5 }; node3.AddConnector(port3); - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, port1, port2_1, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, port2_2, port3, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs index 6971607..2f73092 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs @@ -19,21 +19,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs index 5b3f230..982cf6c 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs @@ -21,21 +21,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs index a016f07..4127d03 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs @@ -20,24 +20,22 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth = 230, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; node1.FontViewModel.HorizontalAlignment = HorizontalAlignment.Left; node1.FontViewModel.VerticalAlignment = VerticalAlignment.Top; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); TextDesignerItemViewModel node2 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, ItemWidth = 200, Text = "解落三秋叶,能开二月花。\r\n过江千尺浪,入竹万竿斜。" }; node2.FontViewModel.HorizontalAlignment = HorizontalAlignment.Right; node2.FontViewModel.VerticalAlignment = VerticalAlignment.Top; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); TextDesignerItemViewModel node3 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 150, ItemWidth = 200, Text = "一节复一节,千枝攒万叶。\r\n我自不开花,免撩蜂与蝶。" }; node3.FontViewModel.HorizontalAlignment = HorizontalAlignment.Left; node3.FontViewModel.VerticalAlignment = VerticalAlignment.Bottom; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); TextDesignerItemViewModel node4 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 150, ItemWidth = 200, Text = "独坐幽篁里,弹琴复长啸。\r\n深林人不知,明月来相照。" }; node4.FontViewModel.HorizontalAlignment = HorizontalAlignment.Right; node4.FontViewModel.VerticalAlignment = VerticalAlignment.Bottom; - DiagramViewModel.DirectAddItemCommand.Execute(node4); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(node4); } } } \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs index 0aded83..45bfafd 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs @@ -19,22 +19,20 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth = 230, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; node1.FontViewModel.FontColor = System.Windows.Media.Colors.Red; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); TextDesignerItemViewModel node2 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, ItemWidth = 200, Text = "解落三秋叶,能开二月花。\r\n过江千尺浪,入竹万竿斜。" }; node2.FontViewModel.TextEffectColor = System.Windows.Media.Colors.Orange; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); TextDesignerItemViewModel node3 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 150, ItemWidth = 200, ItemHeight=100, Text = "一节复一节,千枝攒万叶。\r\n我自不开花,免撩蜂与蝶。\r\n\r\n暂未实现,敬请期待" }; node3.FontViewModel.HighlightColor = System.Windows.Media.Colors.Green; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); TextDesignerItemViewModel node4 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 150, ItemWidth = 200, Text = "独坐幽篁里,弹琴复长啸。\r\n深林人不知,明月来相照。" }; node4.FontViewModel.FontColor = System.Windows.Media.Colors.White; node4.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Blue; - DiagramViewModel.DirectAddItemCommand.Execute(node4); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(node4); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs index d30c1f5..a5f9694 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs @@ -19,21 +19,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 30, Top = 50, ItemWidth = 260, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; node1.FontViewModel.FontSize = 15; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); TextDesignerItemViewModel node2 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, ItemWidth = 200, Text = "解落三秋叶,能开二月花。\r\n过江千尺浪,入竹万竿斜。" }; node2.FontViewModel.FontWeight = FontWeights.Bold; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); TextDesignerItemViewModel node3 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 150, ItemWidth = 200, Text = "一节复一节,千枝攒万叶。\r\n我自不开花,免撩蜂与蝶。" }; node3.FontViewModel.FontStretch = FontStretches.Expanded; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); TextDesignerItemViewModel node4 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 150, ItemWidth = 200, Text = "独坐幽篁里,弹琴复长啸。\r\n深林人不知,明月来相照。" }; node4.FontViewModel.FontFamily = "宋体"; - DiagramViewModel.DirectAddItemCommand.Execute(node4); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(node4); } } } \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs index ae424e6..aa5696f 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs @@ -19,18 +19,16 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts DiagramViewModel.ColorViewModel = new ColorViewModel(); OutLineTextDesignerItemViewModel node1 = new OutLineTextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth = 600, ItemHeight = 100, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); OutLineTextDesignerItemViewModel node2 = new OutLineTextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 160, ItemWidth = 500, ItemHeight = 100, Text = "解落三秋叶,能开二月花。\r\n过江千尺浪,入竹万竿斜。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); OutLineTextDesignerItemViewModel node3 = new OutLineTextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 270, ItemWidth = 500, ItemHeight = 100, Text = "一节复一节,千枝攒万叶。\r\n我自不开花,免撩蜂与蝶。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); OutLineTextDesignerItemViewModel node4 = new OutLineTextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 380, ItemWidth = 500, ItemHeight = 100, Text = "独坐幽篁里,弹琴复长啸。\r\n深林人不知,明月来相照。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node4); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(node4); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs index 4109a5d..cf34922 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs @@ -18,18 +18,16 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts DiagramViewModel.ColorViewModel = new ColorViewModel(); TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth=230, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); TextDesignerItemViewModel node2 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, ItemWidth = 200, Text = "解落三秋叶,能开二月花。\r\n过江千尺浪,入竹万竿斜。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); TextDesignerItemViewModel node3 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 150, ItemWidth = 200, Text = "一节复一节,千枝攒万叶。\r\n我自不开花,免撩蜂与蝶。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); TextDesignerItemViewModel node4 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 150, ItemWidth = 200, Text = "独坐幽篁里,弹琴复长啸。\r\n深林人不知,明月来相照。" }; - DiagramViewModel.DirectAddItemCommand.Execute(node4); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(node4); } } } diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/ZoomViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/ZoomViewModel.cs index 3837487..a5e3e9b 100644 --- a/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/ZoomViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/ZoomViewModel.cs @@ -18,21 +18,19 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels DiagramViewModel.DefaultZoomBox = true; DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, Text = "1" }; - DiagramViewModel.DirectAddItemCommand.Execute(node1); + DiagramViewModel.Add(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 300, Text = "2" }; - DiagramViewModel.DirectAddItemCommand.Execute(node2); + DiagramViewModel.Add(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel(DiagramViewModel) { Left = 300, Top = 50, Text = "3" }; - DiagramViewModel.DirectAddItemCommand.Execute(node3); + DiagramViewModel.Add(node3); ConnectionViewModel connector1 = new ConnectionViewModel(DiagramViewModel, node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); - DiagramViewModel.DirectAddItemCommand.Execute(connector1); + DiagramViewModel.Add(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(DiagramViewModel, node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); - DiagramViewModel.DirectAddItemCommand.Execute(connector2); - - DiagramViewModel.ClearSelectedItemsCommand.Execute(null); + DiagramViewModel.Add(connector2); } } } diff --git a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs index 573d5b2..271e906 100644 --- a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs +++ b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs @@ -60,7 +60,7 @@ namespace AIStudio.Wpf.DiagramDesigner pointList.Add(this.startPoint.Value); var item = new PointDesignerItemViewModel(startPoint.Value); item.ShowConnectors = true; - _viewModel.DirectAddItemCommand.Execute(item); + _viewModel.Add(item); pointDesignerItemViewModelList.Add(item); } } @@ -93,7 +93,7 @@ namespace AIStudio.Wpf.DiagramDesigner pointList.Add(endPoint.Value); var item = new PointDesignerItemViewModel(endPoint.Value); item.ShowConnectors = true; - _viewModel.DirectAddItemCommand.Execute(item); + _viewModel.Add(item); pointDesignerItemViewModelList.Add(item); UpdateSelection(); @@ -135,7 +135,7 @@ namespace AIStudio.Wpf.DiagramDesigner itemBase.PointDesignerItemViewModels.ForEach(p => { p.ParentId = itemBase.Id; - _viewModel.DirectAddItemCommand.Execute(p); + _viewModel.Add(p); }); } else if (this._service.DrawModeViewModel.GetDrawMode() == DrawMode.Text) @@ -156,14 +156,14 @@ namespace AIStudio.Wpf.DiagramDesigner itemBase.PointDesignerItemViewModels.ForEach(p => { p.ParentId = itemBase.Id; - _viewModel.DirectAddItemCommand.Execute(p); + _viewModel.Add(p); }); } } this._service.DrawModeViewModel.ResetDrawMode(); } - pointDesignerItemViewModelList.ForEach(p => _viewModel.DirectRemoveItemCommand.Execute(p)); + pointDesignerItemViewModelList.ForEach(p => _viewModel.Remove(p)); e.Handled = true; } diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs index 6a0060d..c9a3f29 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs @@ -300,7 +300,7 @@ namespace AIStudio.Wpf.DiagramDesigner rectangleBounds.Bottom + (rectangleBounds.Height / 2)); partialConnection = new ConnectionViewModel(_viewModel, sourceDataItem, new PartCreatedConnectorInfo(point.X, point.Y), DrawMode, RouterMode); - _viewModel.DirectAddItemCommand.Execute(partialConnection); + _viewModel.Add(partialConnection); } } } @@ -324,7 +324,7 @@ namespace AIStudio.Wpf.DiagramDesigner Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2), rectangleBounds.Bottom + (rectangleBounds.Height / 2)); partialConnection = new ConnectionViewModel(_viewModel, sourceConnectorInfo, new PartCreatedConnectorInfo(point.X, point.Y), DrawMode, RouterMode); - _viewModel.DirectAddItemCommand.Execute(partialConnection); + _viewModel.Add(partialConnection); } } } @@ -375,7 +375,7 @@ namespace AIStudio.Wpf.DiagramDesigner if (connectorsHit.Count == 0) { LinkPointDesignerItemViewModel pointItemView = new LinkPointDesignerItemViewModel(rubberbandSelectionStartPoint.Value); - _viewModel.DirectAddItemCommand.Execute(pointItemView); + _viewModel.Add(pointItemView); SourceConnectorInfo = pointItemView.Connectors.FirstOrDefault(); } } @@ -472,7 +472,7 @@ namespace AIStudio.Wpf.DiagramDesigner FullyCreatedConnectorInfo sinkDataItem = sinkConnector.Info; int indexOfLastTempConnection = sinkDataItem.DataItem.Root.Items.Count - 1; - sinkDataItem.DataItem.Root.DirectRemoveItemCommand.Execute( + sinkDataItem.DataItem.Root.Remove( sinkDataItem.DataItem.Root.Items[indexOfLastTempConnection]); sinkDataItem.DataItem.Root.AddItemCommand.Execute(new ConnectionViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode)); } @@ -486,8 +486,8 @@ namespace AIStudio.Wpf.DiagramDesigner FullyCreatedConnectorInfo sinkDataItem = pointItemView.TopConnector; int indexOfLastTempConnection = _viewModel.Items.Count - 1; - _viewModel.DirectRemoveItemCommand.Execute(_viewModel.Items[indexOfLastTempConnection]); - _viewModel.DirectAddItemCommand.Execute(pointItemView); + _viewModel.Remove(_viewModel.Items[indexOfLastTempConnection]); + _viewModel.Add(pointItemView); var connector = new ConnectionViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode); _viewModel.AddItemCommand.Execute(connector); @@ -499,7 +499,7 @@ namespace AIStudio.Wpf.DiagramDesigner { //Need to remove last item as we did not finish drawing the path int indexOfLastTempConnection = sourceDataItem.DataItem.Root.Items.Count - 1; - sourceDataItem.DataItem.Root.DirectRemoveItemCommand.Execute( + sourceDataItem.DataItem.Root.Remove( sourceDataItem.DataItem.Root.Items[indexOfLastTempConnection]); diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index ca5fba1..b59cb6c 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -648,15 +648,6 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private ICommand _directAddItemCommand; - public ICommand DirectAddItemCommand - { - get - { - return this._directAddItemCommand ?? (this._directAddItemCommand = new SimpleCommand(ExecuteEnable, ExecuteDirectAddItemCommand)); - } - } - private ICommand _addItemCommand; public ICommand AddItemCommand { @@ -666,15 +657,6 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private ICommand _directRemoveItemCommand; - public ICommand DirectRemoveItemCommand - { - get - { - return this._directRemoveItemCommand ?? (this._directRemoveItemCommand = new SimpleCommand(ExecuteEnable, ExecuteDirectRemoveItemCommand)); - } - } - private ICommand _removeItemCommand; public ICommand RemoveItemCommand { @@ -1249,28 +1231,7 @@ namespace AIStudio.Wpf.DiagramDesigner protected virtual void ExecuteCreateNewDiagramCommand(object parameter) { this.Items.Clear(); - } - - private void ExecuteDirectAddItemCommand(object parameter) - { - if (parameter is SelectableDesignerItemViewModelBase ite) - { - if (AddVerify(ite) != true) return; - - ClearSelectedItems(); - Add(ite); - } - else if (parameter is IEnumerable items) - { - if (items.Select(p => AddVerify(p)).Any() != true) return; - - ClearSelectedItems(); - foreach (var item in items) - { - Add(item); - } - } - } + } private void ExecuteAddItemCommand(object parameter) { @@ -1316,7 +1277,27 @@ namespace AIStudio.Wpf.DiagramDesigner return true; } - private void Add(SelectableDesignerItemViewModelBase item) + //使用程序添加对象,比如Demo初始化 + public void Add(object parameter) + { + if (parameter is SelectableDesignerItemViewModelBase ite) + { + if (AddVerify(ite) != true) return; + + Add(ite, false); + } + else if (parameter is IEnumerable items) + { + if (items.Select(p => AddVerify(p)).Any() != true) return; + + foreach (var item in items) + { + Add(item, false); + } + } + } + + private void Add(SelectableDesignerItemViewModelBase item, bool isSelected = true) { item.Root = this; item.ZIndex = Items.Any() ? Items.Max(p => p.ZIndex) + 1 : 0; @@ -1337,10 +1318,10 @@ namespace AIStudio.Wpf.DiagramDesigner designerItemViewModelBase.SetCellAlignment(); } Items.Add(item); - item.IsSelected = true; + item.IsSelected = isSelected; } - private void ExecuteDirectRemoveItemCommand(object parameter) + public void Remove(object parameter) { if (parameter is SelectableDesignerItemViewModelBase ite) { @@ -1595,7 +1576,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } items.AddRange(connectors); - DirectAddItemCommand.Execute(items); + Add(items); FixOtherInfo(items); } @@ -2490,7 +2471,7 @@ namespace AIStudio.Wpf.DiagramDesigner groupItem = new GroupDesignerItemViewModel(); } - DirectAddItemCommand.Execute(groupItem); + Add(groupItem); foreach (DesignerItemViewModelBase item in items) item.ParentId = groupItem.Id; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs index 5acaa18..c16d875 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs @@ -35,10 +35,6 @@ namespace AIStudio.Wpf.DiagramDesigner { get; } - ICommand DirectAddItemCommand - { - get; - } ICommand AddItemCommand { get; @@ -47,10 +43,6 @@ namespace AIStudio.Wpf.DiagramDesigner { get; } - ICommand DirectRemoveItemCommand - { - get; - } ICommand ClearSelectedItemsCommand { get; @@ -339,6 +331,10 @@ namespace AIStudio.Wpf.DiagramDesigner void Init(); + void Add(object parameter); + + void Remove(object parameter); + bool ExecuteShortcut(KeyEventArgs e); event PropertyChangedEventHandler PropertyChanged; diff --git a/AIStudio.Wpf.Mind/ViewModels/MindNode.cs b/AIStudio.Wpf.Mind/ViewModels/MindNode.cs index a8321d9..1a2dde6 100644 --- a/AIStudio.Wpf.Mind/ViewModels/MindNode.cs +++ b/AIStudio.Wpf.Mind/ViewModels/MindNode.cs @@ -506,7 +506,7 @@ namespace AIStudio.Wpf.Mind.ViewModels item.InitLayout(true);//因为节点的层级不同的样式,所以需要Parent确定后才能初始化 ConnectionViewModel connector = MindLayout?.GetOrSetConnectionViewModel(this, item); - Root?.DirectAddItemCommand.Execute(new SelectableDesignerItemViewModelBase[] { item, connector }); + Root?.Add(new SelectableDesignerItemViewModelBase[] { item, connector }); connector.ZIndex = -1; connector.IsSelected = false; item.IsSelected = false; @@ -521,8 +521,8 @@ namespace AIStudio.Wpf.Mind.ViewModels var connectors = Root?.Items.OfType().Where(p => p.SinkConnectorInfoFully?.DataItem == item).ToList(); - Root?.DirectRemoveItemCommand.Execute(item); - Root?.DirectRemoveItemCommand.Execute(connectors); + Root?.Remove(item); + Root?.Remove(connectors); if (removeall) { @@ -545,8 +545,8 @@ namespace AIStudio.Wpf.Mind.ViewModels } var connectors = Root?.Items.OfType().Where(p => p.SinkConnectorInfoFully?.DataItem == this).ToList(); - Root?.DirectRemoveItemCommand.Execute(this); - Root?.DirectRemoveItemCommand.Execute(connectors); + Root?.Remove(this); + Root?.Remove(connectors); if (removeall) { @@ -570,7 +570,7 @@ namespace AIStudio.Wpf.Mind.ViewModels else if (ParentNode != null) { connector = MindLayout?.GetOrSetConnectionViewModel(ParentNode, this, null); - Root?.DirectAddItemCommand.Execute(new SelectableDesignerItemViewModelBase[] { connector }); + Root?.Add(new SelectableDesignerItemViewModelBase[] { connector }); connector.ZIndex = -1; connector.IsSelected = false; }