diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs index be03e7d..0eb7712 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs @@ -273,7 +273,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation; FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation, connection.SinkXRatio, connection.SinkYRatio, connection.SinkInnerPoint); - ConnectorViewModel connectionVM = new ConnectorViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connection); + ConnectionViewModel connectionVM = new ConnectionViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connection); viewModel.Items.Add(connectionVM); } @@ -326,7 +326,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels diagramItem.AddItems(DiagramViewModel.Items); - foreach (var connectionVM in DiagramViewModel.Items.OfType()) + foreach (var connectionVM in DiagramViewModel.Items.OfType()) { if (!connectionVM.IsFullConnection) continue; @@ -385,9 +385,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels } } - private ConnectorViewModel GetSourceItem(FullyCreatedConnectorInfo sinkConnector) + private ConnectionViewModel GetSourceItem(FullyCreatedConnectorInfo sinkConnector) { - foreach (var connector in DiagramViewModel.Items.OfType()) + foreach (var connector in DiagramViewModel.Items.OfType()) { if (connector.SinkConnectorInfo == sinkConnector) { @@ -501,7 +501,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels diagramItem.AddItems(DiagramViewModel.Items); - foreach (var connectionVM in DiagramViewModel.Items.OfType()) + foreach (var connectionVM in DiagramViewModel.Items.OfType()) { if (connectionVM.IsFullConnection == false) continue; @@ -546,7 +546,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation; FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation, connection.SinkXRatio, connection.SinkYRatio, connection.SinkInnerPoint); - ConnectorViewModel connectionVM = new ConnectorViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connection); + ConnectionViewModel connectionVM = new ConnectionViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connection); viewModel.Items.Add(connectionVM); } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs index 4252a5d..d04f6bf 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs @@ -23,7 +23,7 @@ namespace AIStudio.Wpf.Flowchart { if (DiagramViewModel != null) { - FlowchartService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); + FlowchartService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); } _service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth; } @@ -70,41 +70,41 @@ namespace AIStudio.Wpf.Flowchart DesignerItemViewModelBase end = new EndFlowNode() { Left = 100, Top = 700, ItemWidth = 80, ItemHeight = 40, Color = Colors.Yellow.ToString() }; DiagramViewModel.DirectAddItemCommand.Execute(end); - ConnectorViewModel connector1 = new ConnectorViewModel(start.BottomConnector, middle1.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector1 = new ConnectionViewModel(start.BottomConnector, middle1.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector1); - ConnectorViewModel connector2 = new ConnectorViewModel(middle1.BottomConnector, decide.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector2 = new ConnectionViewModel(middle1.BottomConnector, decide.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector2); - ConnectorViewModel connector3 = new ConnectorViewModel(decide.RightConnector, middle2.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector3 = new ConnectionViewModel(decide.RightConnector, middle2.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector3); connector3.AddLabel(">=3"); - ConnectorViewModel connector4 = new ConnectorViewModel(middle2.BottomConnector, cobegin.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector4 = new ConnectionViewModel(middle2.BottomConnector, cobegin.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector4); - ConnectorViewModel connector5 = new ConnectorViewModel(decide.BottomConnector, cobegin.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector5 = new ConnectionViewModel(decide.BottomConnector, cobegin.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector5); connector5.AddLabel("<3"); - ConnectorViewModel connector6 = new ConnectorViewModel(cobegin.BottomConnector, middle3.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector6 = new ConnectionViewModel(cobegin.BottomConnector, middle3.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector6); - ConnectorViewModel connector7 = new ConnectorViewModel(cobegin.BottomConnector, middle4.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector7 = new ConnectionViewModel(cobegin.BottomConnector, middle4.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector7); - ConnectorViewModel connector8 = new ConnectorViewModel(middle3.BottomConnector, coend.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector8 = new ConnectionViewModel(middle3.BottomConnector, coend.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector8); - ConnectorViewModel connector9 = new ConnectorViewModel(middle4.BottomConnector, coend.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector9 = new ConnectionViewModel(middle4.BottomConnector, coend.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector9); - ConnectorViewModel connector10 = new ConnectorViewModel(coend.BottomConnector, end.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector10 = new ConnectionViewModel(coend.BottomConnector, end.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector10); DiagramViewModel.ClearSelectedItems(); - FlowchartService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); + FlowchartService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); } public override void Dispose() diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs index a0b768f..3fb1de3 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs @@ -74,28 +74,28 @@ namespace AIStudio.Wpf.Logical out1.LinkPoint = LogicalService.LinkPoint[4]; DiagramViewModel.DirectAddItemCommand.Execute(out1); - ConnectorViewModel connector1 = new ConnectorViewModel(in1.Output[0], item1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector1 = new ConnectionViewModel(in1.Output[0], item1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector1); - ConnectorViewModel connector2 = new ConnectorViewModel(in2.Output[0], item1.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector2 = new ConnectionViewModel(in2.Output[0], item1.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector2); - ConnectorViewModel connector3 = new ConnectorViewModel(item1.Output[0], gTGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector3 = new ConnectionViewModel(item1.Output[0], gTGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector3); - ConnectorViewModel connector4 = new ConnectorViewModel(constant.Output[0], gTGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector4 = new ConnectionViewModel(constant.Output[0], gTGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector4); - ConnectorViewModel connector5 = new ConnectorViewModel(gTGate.Output[0], sELGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector5 = new ConnectionViewModel(gTGate.Output[0], sELGate.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector5); - ConnectorViewModel connector6 = new ConnectorViewModel(in3.Output[0], sELGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector6 = new ConnectionViewModel(in3.Output[0], sELGate.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector6); - ConnectorViewModel connector7 = new ConnectorViewModel(in4.Output[0], sELGate.Input[2], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector7 = new ConnectionViewModel(in4.Output[0], sELGate.Input[2], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector7); - ConnectorViewModel connector8 = new ConnectorViewModel(sELGate.Output[0], out1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector8 = new ConnectionViewModel(sELGate.Output[0], out1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector8); } @@ -124,11 +124,11 @@ namespace AIStudio.Wpf.Logical if (base.AddVerify(arg) == false) return false; - if (arg is ConnectorViewModel connector) + if (arg is ConnectionViewModel connector) { if (connector.IsFullConnection) { - if (DiagramViewModel.Items.OfType().Any(p => p.SinkConnectorInfo == connector.SinkConnectorInfoFully)) + if (DiagramViewModel.Items.OfType().Any(p => p.SinkConnectorInfo == connector.SinkConnectorInfoFully)) { return false; } @@ -408,9 +408,9 @@ namespace AIStudio.Wpf.Logical } } - private ConnectorViewModel GetSourceItem(FullyCreatedConnectorInfo sinkConnector) + private ConnectionViewModel GetSourceItem(FullyCreatedConnectorInfo sinkConnector) { - foreach (var connector in DiagramViewModel.Items.OfType()) + foreach (var connector in DiagramViewModel.Items.OfType()) { if (connector.SinkConnectorInfo == sinkConnector) { diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs index b43e05a..47528a6 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs @@ -26,7 +26,7 @@ namespace AIStudio.Wpf.Flowchart { if (DiagramViewModel != null) { - SFCService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); + SFCService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); } readDataTimer.Elapsed += timeCycle; readDataTimer.Interval = 1000; @@ -120,79 +120,79 @@ namespace AIStudio.Wpf.Flowchart SFCCOEndNode coend = new SFCCOEndNode() { Left = 38, Top = 720, Text = "" }; DiagramViewModel.DirectAddItemCommand.Execute(coend); - ConnectorViewModel connector1_1 = new ConnectorViewModel(start.Output[0], condition1_1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector1_1 = new ConnectionViewModel(start.Output[0], condition1_1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector1_1); - ConnectorViewModel connector2_1 = new ConnectorViewModel(condition1_1.Output[0], step1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector2_1 = new ConnectionViewModel(condition1_1.Output[0], step1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector2_1); - ConnectorViewModel connector1_2 = new ConnectorViewModel(start.Output[0], condition1_2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector1_2 = new ConnectionViewModel(start.Output[0], condition1_2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector1_2); - ConnectorViewModel connector2_2 = new ConnectorViewModel(condition1_2.Output[0], step1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector2_2 = new ConnectionViewModel(condition1_2.Output[0], step1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector2_2); - ConnectorViewModel connector31 = new ConnectorViewModel(step1.Action[0], action11.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector31 = new ConnectionViewModel(step1.Action[0], action11.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector31); - ConnectorViewModel connector32 = new ConnectorViewModel(step1.Action[0], action12.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector32 = new ConnectionViewModel(step1.Action[0], action12.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector32); - ConnectorViewModel connector33 = new ConnectorViewModel(step1.Action[0], action13.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector33 = new ConnectionViewModel(step1.Action[0], action13.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector33); - ConnectorViewModel connector34 = new ConnectorViewModel(step1.Action[0], action14.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector34 = new ConnectionViewModel(step1.Action[0], action14.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector34); - ConnectorViewModel connector4 = new ConnectorViewModel(step1.Output[0], condition2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector4 = new ConnectionViewModel(step1.Output[0], condition2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector4); - ConnectorViewModel connector5 = new ConnectorViewModel(condition2.Output[0], step2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector5 = new ConnectionViewModel(condition2.Output[0], step2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector5); - ConnectorViewModel connector6 = new ConnectorViewModel(step2.Action[0], action2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector6 = new ConnectionViewModel(step2.Action[0], action2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector6); - ConnectorViewModel connector7 = new ConnectorViewModel(step2.Output[0], condition3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector7 = new ConnectionViewModel(step2.Output[0], condition3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector7); - ConnectorViewModel connector8 = new ConnectorViewModel(condition3.Output[0], step3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector8 = new ConnectionViewModel(condition3.Output[0], step3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector8); - ConnectorViewModel connector9 = new ConnectorViewModel(step3.Action[0], action3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector9 = new ConnectionViewModel(step3.Action[0], action3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector9); - ConnectorViewModel connector10 = new ConnectorViewModel(step3.Output[0], condition4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector10 = new ConnectionViewModel(step3.Output[0], condition4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector10); - ConnectorViewModel connector11 = new ConnectorViewModel(condition4.Output[0], cobegin.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector11 = new ConnectionViewModel(condition4.Output[0], cobegin.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector11); - ConnectorViewModel connector12 = new ConnectorViewModel(cobegin.Output[0], step4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector12 = new ConnectionViewModel(cobegin.Output[0], step4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector12); - ConnectorViewModel connector13 = new ConnectorViewModel(step4.Action[0], action4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector13 = new ConnectionViewModel(step4.Action[0], action4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector13); - ConnectorViewModel connector14 = new ConnectorViewModel(step4.Output[0], condition5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector14 = new ConnectionViewModel(step4.Output[0], condition5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector14); - ConnectorViewModel connector15 = new ConnectorViewModel(cobegin.Output[1], step5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector15 = new ConnectionViewModel(cobegin.Output[1], step5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector15); - ConnectorViewModel connector16 = new ConnectorViewModel(step5.Action[0], action5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector16 = new ConnectionViewModel(step5.Action[0], action5.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector16); - ConnectorViewModel connector17 = new ConnectorViewModel(step5.Output[0], condition6.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector17 = new ConnectionViewModel(step5.Output[0], condition6.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector17); - ConnectorViewModel connector18 = new ConnectorViewModel(condition5.Output[0], coend.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector18 = new ConnectionViewModel(condition5.Output[0], coend.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector18); - ConnectorViewModel connector19 = new ConnectorViewModel(condition6.Output[0], coend.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector19 = new ConnectionViewModel(condition6.Output[0], coend.Input[1], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector19); - ConnectorViewModel connector20 = new ConnectorViewModel(coend.Output[0], start.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel connector20 = new ConnectionViewModel(coend.Output[0], start.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector20); #region 模拟部分 @@ -245,34 +245,34 @@ namespace AIStudio.Wpf.Flowchart 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); - ConnectorViewModel conn1 = new ConnectorViewModel(tank1.Output[0], k1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn1 = new ConnectionViewModel(tank1.Output[0], k1.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn1); - ConnectorViewModel conn2 = new ConnectorViewModel(tank1.Output[0], k2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn2 = new ConnectionViewModel(tank1.Output[0], k2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn2); - ConnectorViewModel conn3 = new ConnectorViewModel(tank1.Output[0], k3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn3 = new ConnectionViewModel(tank1.Output[0], k3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn3); - ConnectorViewModel conn4 = new ConnectorViewModel(k1.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn4 = new ConnectionViewModel(k1.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn4); - ConnectorViewModel conn5 = new ConnectorViewModel(k2.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn5 = new ConnectionViewModel(k2.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn5); - ConnectorViewModel conn6 = new ConnectorViewModel(k3.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn6 = new ConnectionViewModel(k3.Output[0], tank2.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn6); - ConnectorViewModel conn7 = new ConnectorViewModel(tank2.Output[1], k4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn7 = new ConnectionViewModel(tank2.Output[1], k4.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn7); - ConnectorViewModel conn8 = new ConnectorViewModel(k4.Output[0], tank3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); + ConnectionViewModel conn8 = new ConnectionViewModel(k4.Output[0], tank3.Input[0], _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(conn8); #endregion DiagramViewModel.ClearSelectedItems(); - SFCService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); + SFCService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); readDataTimer.Elapsed += timeCycle; readDataTimer.Interval = 1000; diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs index c414339..00f171e 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.DiagramDesigner private IDiagramViewModel _viewModel { get { return DataContext as IDiagramViewModel; } } private IDiagramServiceProvider _service { get { return DiagramServicesProvider.Instance.Provider; } } - private ConnectorViewModel partialConnection; + private ConnectionViewModel partialConnection; private List connectorsHit = new List(); private Point? rubberbandSelectionStartPoint = null; @@ -217,7 +217,7 @@ namespace AIStudio.Wpf.DiagramDesigner Rect rectangleBounds = sourceConnector.TransformToVisual(this).TransformBounds(new Rect(sourceConnector.RenderSize)); Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2), rectangleBounds.Bottom + (rectangleBounds.Height / 2)); - partialConnection = new ConnectorViewModel(_viewModel, sourceDataItem, new PartCreatedConnectionInfo(point.X, point.Y), DrawMode, RouterMode); + partialConnection = new ConnectionViewModel(_viewModel, sourceDataItem, new PartCreatedConnectorInfo(point.X, point.Y), DrawMode, RouterMode); _viewModel.DirectAddItemCommand.Execute(partialConnection); } @@ -239,7 +239,7 @@ namespace AIStudio.Wpf.DiagramDesigner Rect rectangleBounds = new Rect(sourceConnectorInfo.DataItem.Left, sourceConnectorInfo.DataItem.Top, 3, 3); Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2), rectangleBounds.Bottom + (rectangleBounds.Height / 2)); - partialConnection = new ConnectorViewModel(_viewModel, sourceConnectorInfo, new PartCreatedConnectionInfo(point.X, point.Y), DrawMode, RouterMode); + partialConnection = new ConnectionViewModel(_viewModel, sourceConnectorInfo, new PartCreatedConnectorInfo(point.X, point.Y), DrawMode, RouterMode); _viewModel.DirectAddItemCommand.Execute(partialConnection); } } @@ -323,7 +323,7 @@ namespace AIStudio.Wpf.DiagramDesigner { if (e.LeftButton == MouseButtonState.Pressed) { - partialConnection.SinkConnectorInfo = new PartCreatedConnectionInfo(currentPoint.X, currentPoint.Y); + partialConnection.SinkConnectorInfo = new PartCreatedConnectorInfo(currentPoint.X, currentPoint.Y); HitTesting(currentPoint); } } @@ -376,7 +376,7 @@ namespace AIStudio.Wpf.DiagramDesigner int indexOfLastTempConnection = sinkDataItem.DataItem.Root.Items.Count - 1; sinkDataItem.DataItem.Root.DirectRemoveItemCommand.Execute( sinkDataItem.DataItem.Root.Items[indexOfLastTempConnection]); - sinkDataItem.DataItem.Root.AddItemCommand.Execute(new ConnectorViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode)); + sinkDataItem.DataItem.Root.AddItemCommand.Execute(new ConnectionViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode)); } else if (_service.DrawModeViewModel.GetDrawMode() == DrawMode.DirectLine && connectorsHit.Count() == 1) { @@ -387,7 +387,7 @@ namespace AIStudio.Wpf.DiagramDesigner _viewModel.DirectRemoveItemCommand.Execute(_viewModel.Items[indexOfLastTempConnection]); _viewModel.DirectAddItemCommand.Execute(pointItemView); - var connector = new ConnectorViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode); + var connector = new ConnectionViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode); _viewModel.AddItemCommand.Execute(connector); sourceDataItem.DataItem.ZIndex++; diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs index dded4a4..491ee46 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs @@ -28,7 +28,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls { // we only move DesignerItems designerItems = designerItem.Root.SelectedItems.ToList(); - if (designerItem is ConnectorViewModel connector) + if (designerItem is ConnectionViewModel connector) { designerItems.Add(connector.SourceConnectorInfo.DataItem); if (connector.IsFullConnection) diff --git a/AIStudio.Wpf.DiagramDesigner/Models/ConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/Models/ConnectorInfo.cs deleted file mode 100644 index 214653d..0000000 --- a/AIStudio.Wpf.DiagramDesigner/Models/ConnectorInfo.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using AIStudio.Wpf.DiagramDesigner.Geometrys; - -namespace AIStudio.Wpf.DiagramDesigner -{ - public struct ConnectorInfo - { - public double DesignerItemLeft { get; set; } - public double DesignerItemTop { get; set; } - public SizeBase DesignerItemSize { get; set; } - public PointBase Position { get; set; } - public ConnectorOrientation Orientation { get; set; } - - public static ConnectorInfo GetConnectorInfo(ConnectorOrientation orientation, double left, double top, double width, double height, PointBase position) - { - return new ConnectorInfo() - { - Orientation = orientation, - DesignerItemSize = new SizeBase(width, height), - DesignerItemLeft = left, - DesignerItemTop = top, - Position = position - }; - } - } -} diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs index 4c77af4..619377e 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectionItem.cs @@ -23,7 +23,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public ConnectionItem(ConnectorViewModel viewmodel) : base(viewmodel) + public ConnectionItem(ConnectionViewModel viewmodel) : base(viewmodel) { this.SourceId = viewmodel.SourceConnectorInfo.DataItem.Id; this.SourceOrientation = viewmodel.SourceConnectorInfo.Orientation; diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorInfoItemBase.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorInfoItemBase.cs new file mode 100644 index 0000000..b888464 --- /dev/null +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorInfoItemBase.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml.Serialization; + +namespace AIStudio.Wpf.DiagramDesigner +{ + + /// + /// 连接点 + /// + [Serializable] + [XmlInclude(typeof(ConnectorInfoItemBase))] + public class ConnectorInfoItemBase : SelectableItemBase + { + public ConnectorInfoItemBase() + { + + } + + public ConnectorInfoItemBase(ConnectorInfoBase viewmodel) : base(viewmodel) + { + ConnectorWidth = viewmodel.ConnectorWidth; + ConnectorHeight = viewmodel.ConnectorHeight; + Orientation = viewmodel.Orientation; + ConnectorValue = viewmodel.ConnectorValue; + } + + + [XmlAttribute] + public double ConnectorWidth + { + get; set; + } + + [XmlAttribute] + public double ConnectorHeight + { + get; set; + } + + [XmlAttribute] + public ConnectorOrientation Orientation + { + get; set; + } + + [XmlAttribute] + public double ConnectorValue + { + get; set; + } + } +} diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorLabelItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorLabelItem.cs similarity index 100% rename from AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorLabelItem.cs rename to AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorLabelItem.cs diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorPointItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorPointItem.cs similarity index 100% rename from AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorPointItem.cs rename to AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorPointItem.cs diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorVertexItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorVertexItem.cs similarity index 100% rename from AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorVertexItem.cs rename to AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorVertexItem.cs diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/FullyCreatedConnectorInfoItem.cs similarity index 52% rename from AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorItem.cs rename to AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/FullyCreatedConnectorInfoItem.cs index c9dbf5a..1a0b041 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ConnectorItem.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/FullyCreatedConnectorInfoItem.cs @@ -9,27 +9,23 @@ using System.Xml.Serialization; namespace AIStudio.Wpf.DiagramDesigner { /// - /// 连接点 + /// 完整连接点 /// [Serializable] - [XmlInclude(typeof(ConnectorItem))] - public class ConnectorItem : SelectableItemBase + [XmlInclude(typeof(FullyCreatedConnectorInfoItem))] + public class FullyCreatedConnectorInfoItem : ConnectorInfoItemBase { - public ConnectorItem() + public FullyCreatedConnectorInfoItem() { } - public ConnectorItem(FullyCreatedConnectorInfo viewmodel) : base(viewmodel) + public FullyCreatedConnectorInfoItem(FullyCreatedConnectorInfo viewmodel) : base(viewmodel) { XRatio = viewmodel.XRatio; YRatio = viewmodel.YRatio; - ConnectorWidth = viewmodel.ConnectorWidth; - ConnectorHeight = viewmodel.ConnectorHeight; - Orientation = viewmodel.Orientation; IsInnerPoint = viewmodel.IsInnerPoint; ValueTypePoint = viewmodel.ValueTypePoint; - ConnectorValue = viewmodel.ConnectorValue; } @@ -39,22 +35,11 @@ namespace AIStudio.Wpf.DiagramDesigner [XmlAttribute] public double YRatio { get; set; } - [XmlAttribute] - public double ConnectorWidth { get; set; } - - [XmlAttribute] - public double ConnectorHeight { get; set; } - - [XmlAttribute] - public ConnectorOrientation Orientation { get; set; } [XmlAttribute] public bool IsInnerPoint { get; set; } [XmlAttribute] public ValueTypePoint ValueTypePoint { get; set; } - - [XmlAttribute] - public double ConnectorValue { get; set; } } } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ImageDesignerItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ImageDesignerItem.cs index 29b9139..c7622ba 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ImageDesignerItem.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/ImageDesignerItem.cs @@ -12,16 +12,16 @@ namespace AIStudio.Wpf.DiagramDesigner public ImageDesignerItem(ImageItemViewModel item) : base(item) { Icon = item.Icon; - Connectors = new List(); + Connectors = new List(); foreach (var fullyCreatedConnectorInfo in item.Connectors) { - ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo); + FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo); Connectors.Add(connector); } } [XmlArray] - public List Connectors { get; set; } + public List Connectors { get; set; } } } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/LogicalGateDesignerItemBase.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/LogicalGateDesignerItemBase.cs index 1e34440..c444082 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/LogicalGateDesignerItemBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/LogicalGateDesignerItemBase.cs @@ -15,10 +15,10 @@ namespace AIStudio.Wpf.DiagramDesigner } public LogicalGateDesignerItemBase(LogicalGateItemViewModelBase item) : base(item) { - this.Connectors = new List(); + this.Connectors = new List(); foreach (var fullyCreatedConnectorInfo in item.Connectors) { - ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo); + FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo); this.Connectors.Add(connector); } this.OrderNumber = item.OrderNumber; @@ -28,7 +28,7 @@ namespace AIStudio.Wpf.DiagramDesigner } [XmlArray] - public List Connectors { get; set; } + public List Connectors { get; set; } [XmlAttribute] public int OrderNumber { get; set; } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/MediaDesignerItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/MediaDesignerItem.cs index dfeb261..cb9a7a0 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/MediaDesignerItem.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/MediaDesignerItem.cs @@ -12,26 +12,26 @@ namespace AIStudio.Wpf.DiagramDesigner public MediaDesignerItem(GifImageItemViewModel item) : base(item) { - Connectors = new List(); + Connectors = new List(); foreach (var fullyCreatedConnectorInfo in item.Connectors) { - ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo); + FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo); Connectors.Add(connector); } } public MediaDesignerItem(MediaItemViewModel item) : base(item) { - Connectors = new List(); + Connectors = new List(); foreach (var fullyCreatedConnectorInfo in item.Connectors) { - ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo); + FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo); Connectors.Add(connector); } } [XmlArray] - public List Connectors { get; set; } + public List Connectors { get; set; } } } diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineBoundary.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineBoundary.cs index 17616c1..8233607 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineBoundary.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineBoundary.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public class ConnectingLineBoundary : IPathGenerator { - public PathGeneratorResult Get(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public PathGeneratorResult Get(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { return PathGenerators.Boundary(_, link, route, source, target); } diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineCorner.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineCorner.cs index 818adf9..19782ee 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineCorner.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineCorner.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public class ConnectingLineCorner : IPathGenerator { - public PathGeneratorResult Get(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public PathGeneratorResult Get(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { return PathGenerators.Corner(_, link, route, source, target); } diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineSmooth.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineSmooth.cs index 02708c1..fb94233 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineSmooth.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineSmooth.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public class ConnectingLineSmooth : IPathGenerator { - public PathGeneratorResult Get(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public PathGeneratorResult Get(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { return PathGenerators.Smooth(_, link, route, source, target); } diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineStraight.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineStraight.cs index c7e0d67..33a77eb 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineStraight.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/ConnectingLineStraight.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public class ConnectingLineStraight : IPathGenerator { - public PathGeneratorResult Get(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public PathGeneratorResult Get(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { return PathGenerators.Straight(_, link, route, source, target); } diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/IPathGenerator.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/IPathGenerator.cs index c6f7d95..d8e3785 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/IPathGenerator.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/IPathGenerator.cs @@ -7,6 +7,6 @@ namespace AIStudio.Wpf.DiagramDesigner { public interface IPathGenerator { - PathGeneratorResult Get(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target); + PathGeneratorResult Get(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target); } } diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs index 42718a5..69327dd 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public static partial class PathGenerators { - public static PathGeneratorResult Boundary(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public static PathGeneratorResult Boundary(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { route = ConcatRouteAndSourceAndTarget(route, source, target); @@ -30,7 +30,7 @@ namespace AIStudio.Wpf.DiagramDesigner return new PathGeneratorResult(paths, sourceAngle, route[0], targetAngle, route[route.Length - 1]); } - private static PointBase[] GetRouteWithMiddlePoints(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route) + private static PointBase[] GetRouteWithMiddlePoints(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route) { var middle = GetMiddlePoints( link.SourceConnectorInfo.MiddlePosition, diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Corner.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Corner.cs index 034845b..c7bb742 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Corner.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Corner.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public static partial class PathGenerators { - public static PathGeneratorResult Corner(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public static PathGeneratorResult Corner(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { route = ConcatRouteAndSourceAndTarget(route, source, target); @@ -35,7 +35,7 @@ namespace AIStudio.Wpf.DiagramDesigner private const int const_margin = 20; - private static PointBase[] GetRouteWithFullConnectionLine(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route) + private static PointBase[] GetRouteWithFullConnectionLine(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route) { var sourceInnerPoint = link.SourceConnectorInfo.IsInnerPoint; PointBase sourcePoint = link.SourceConnectorInfo.MiddlePosition; @@ -240,7 +240,7 @@ namespace AIStudio.Wpf.DiagramDesigner return linePoints.ToArray(); } - private static PointBase[] GetRouteWithPartConnectionLine(IDiagramViewModel diagramViewModel, ConnectorViewModel link, PointBase[] route) + private static PointBase[] GetRouteWithPartConnectionLine(IDiagramViewModel diagramViewModel, ConnectionViewModel link, PointBase[] route) { var sourceInnerPoint = link.SourceConnectorInfo.IsInnerPoint; PointBase sourcePoint = link.SourceConnectorInfo.MiddlePosition; diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Smooth.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Smooth.cs index e44b1cb..2cee246 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Smooth.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Smooth.cs @@ -8,7 +8,7 @@ namespace AIStudio.Wpf.DiagramDesigner { private const double _margin = 125; - public static PathGeneratorResult Smooth(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public static PathGeneratorResult Smooth(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { route = ConcatRouteAndSourceAndTarget(route, source, target); @@ -26,7 +26,7 @@ namespace AIStudio.Wpf.DiagramDesigner return new PathGeneratorResult(new[] { path }, sourceAngle, route[0], targetAngle, route[route.Length - 1]); } - private static PathGeneratorResult CurveThroughPoints(PointBase[] route, ConnectorViewModel link) + private static PathGeneratorResult CurveThroughPoints(PointBase[] route, ConnectionViewModel link) { double sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowSize); double targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowSize); @@ -50,7 +50,7 @@ namespace AIStudio.Wpf.DiagramDesigner return new PathGeneratorResult(paths, sourceAngle, route[0], targetAngle, route[route.Length - 1]); } - private static PointBase[] GetRouteWithCurvePoints(ConnectorViewModel link, PointBase[] route) + private static PointBase[] GetRouteWithCurvePoints(ConnectionViewModel link, PointBase[] route) { if (link.IsPortless) { diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Straight.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Straight.cs index e427c4e..6b10cb4 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Straight.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Straight.cs @@ -5,7 +5,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public static partial class PathGenerators { - public static PathGeneratorResult Straight(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target) + public static PathGeneratorResult Straight(IDiagramViewModel _, ConnectionViewModel link, PointBase[] route, PointBase source, PointBase target) { route = ConcatRouteAndSourceAndTarget(route, source, target); diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Utils.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Utils.cs index 46982d0..cfc28f5 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Utils.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Utils.cs @@ -33,7 +33,7 @@ namespace AIStudio.Wpf.DiagramDesigner return result; } - private static void DoShift(PointBase[] points, ConnectorViewModel link) + private static void DoShift(PointBase[] points, ConnectionViewModel link) { double left = link.Area.Left; double top = link.Area.Top; diff --git a/AIStudio.Wpf.DiagramDesigner/Routers/IRouter.cs b/AIStudio.Wpf.DiagramDesigner/Routers/IRouter.cs index e095116..cf1b0b0 100644 --- a/AIStudio.Wpf.DiagramDesigner/Routers/IRouter.cs +++ b/AIStudio.Wpf.DiagramDesigner/Routers/IRouter.cs @@ -7,6 +7,6 @@ namespace AIStudio.Wpf.DiagramDesigner { public interface IRouter { - PointBase[] Get(IDiagramViewModel _, ConnectorViewModel link); + PointBase[] Get(IDiagramViewModel _, ConnectionViewModel link); } } diff --git a/AIStudio.Wpf.DiagramDesigner/Routers/RouterNormal.cs b/AIStudio.Wpf.DiagramDesigner/Routers/RouterNormal.cs index 43be4b3..135304d 100644 --- a/AIStudio.Wpf.DiagramDesigner/Routers/RouterNormal.cs +++ b/AIStudio.Wpf.DiagramDesigner/Routers/RouterNormal.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public class RouterNormal : IRouter { - public PointBase[] Get(IDiagramViewModel _, ConnectorViewModel link) + public PointBase[] Get(IDiagramViewModel _, ConnectionViewModel link) { return Routers.Normal(_, link); } diff --git a/AIStudio.Wpf.DiagramDesigner/Routers/RouterOrthogonal.cs b/AIStudio.Wpf.DiagramDesigner/Routers/RouterOrthogonal.cs index b17d8be..762b6a5 100644 --- a/AIStudio.Wpf.DiagramDesigner/Routers/RouterOrthogonal.cs +++ b/AIStudio.Wpf.DiagramDesigner/Routers/RouterOrthogonal.cs @@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public class RouterOrthogonal : IRouter { - public PointBase[] Get(IDiagramViewModel _, ConnectorViewModel link) + public PointBase[] Get(IDiagramViewModel _, ConnectionViewModel link) { return Routers.Orthogonal(_, link); } diff --git a/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Normal.cs b/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Normal.cs index 1523303..70b6291 100644 --- a/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Normal.cs +++ b/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Normal.cs @@ -5,7 +5,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public static partial class Routers { - public static PointBase[] Normal(IDiagramViewModel _, ConnectorViewModel link) + public static PointBase[] Normal(IDiagramViewModel _, ConnectionViewModel link) { return link.Vertices.Select(v => v.MiddlePosition).ToArray(); } diff --git a/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Orthogonal.cs b/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Orthogonal.cs index 0fa7b58..bd277e7 100644 --- a/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Orthogonal.cs +++ b/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Orthogonal.cs @@ -10,7 +10,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public static partial class Routers { - public static PointBase[] Orthogonal(IDiagramViewModel _, ConnectorViewModel link) + public static PointBase[] Orthogonal(IDiagramViewModel _, ConnectionViewModel link) { if (link.IsPortless) throw new Exception("Orthogonal router doesn't work with portless links yet"); diff --git a/AIStudio.Wpf.DiagramDesigner/StyleSelectors/DesignerItemsControlItemStyleSelector.cs b/AIStudio.Wpf.DiagramDesigner/StyleSelectors/DesignerItemsControlItemStyleSelector.cs index afd2fd3..c19f7ec 100644 --- a/AIStudio.Wpf.DiagramDesigner/StyleSelectors/DesignerItemsControlItemStyleSelector.cs +++ b/AIStudio.Wpf.DiagramDesigner/StyleSelectors/DesignerItemsControlItemStyleSelector.cs @@ -53,7 +53,7 @@ namespace AIStudio.Wpf.DiagramDesigner return (Style)itemsControl.FindResource("designerItemStyle"); } - if (item is ConnectorViewModel) + if (item is ConnectionViewModel) { return (Style)itemsControl.FindResource("connectorItemStyle"); } diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs b/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs index e65141c..7d6b25c 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/LineControl.xaml.cs @@ -48,7 +48,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void LineControl_Unloaded(object sender, RoutedEventArgs e) { - if (this.DataContext is ConnectorViewModel connector) + if (this.DataContext is ConnectionViewModel connector) { connector.PropertyChanged -= Connector_PropertyChanged; } @@ -57,7 +57,7 @@ namespace AIStudio.Wpf.DiagramDesigner private async void PathAnimation_Loaded(object sender, RoutedEventArgs e) { - if (this.DataContext is ConnectorViewModel connector) + if (this.DataContext is ConnectionViewModel connector) { connector.PropertyChanged -= Connector_PropertyChanged; connector.PropertyChanged += Connector_PropertyChanged; @@ -70,8 +70,8 @@ namespace AIStudio.Wpf.DiagramDesigner { switch (e.PropertyName) { - case nameof(ConnectorViewModel.LineAnimation): - case nameof(ConnectorViewModel.PathGeneratorResult): + case nameof(ConnectionViewModel.LineAnimation): + case nameof(ConnectionViewModel.PathGeneratorResult): await DoAnimation(); break; @@ -80,7 +80,7 @@ namespace AIStudio.Wpf.DiagramDesigner private async Task DoAnimation() { - if (this.DataContext is ConnectorViewModel connector && connector.IsFullConnection) + if (this.DataContext is ConnectionViewModel connector && connector.IsFullConnection) { await System.Threading.Tasks.Task.Delay(100); switch (connector.LineAnimation) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs similarity index 94% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs index 44afa20..8e9270c 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs @@ -13,9 +13,9 @@ using SvgPathProperties; namespace AIStudio.Wpf.DiagramDesigner { - public class ConnectorViewModel : SelectableDesignerItemViewModelBase + public class ConnectionViewModel : SelectableDesignerItemViewModelBase { - public ConnectorViewModel(IDiagramViewModel root, FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode) + public ConnectionViewModel(IDiagramViewModel root, FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode) { Root = root; PathMode = drawMode.ToString(); @@ -23,16 +23,15 @@ namespace AIStudio.Wpf.DiagramDesigner Init(sourceConnectorInfo, sinkConnectorInfo); } - public ConnectorViewModel(IDiagramViewModel root, FullyCreatedConnectorInfo sourceConnectorInfo, FullyCreatedConnectorInfo sinkConnectorInfo, ConnectionItem designer) : base(root, designer) + public ConnectionViewModel(IDiagramViewModel root, FullyCreatedConnectorInfo sourceConnectorInfo, FullyCreatedConnectorInfo sinkConnectorInfo, ConnectionItem designer) : base(root, designer) { PathMode = designer.PathMode; RouterMode = designer.RouterMode; Init(sourceConnectorInfo, sinkConnectorInfo); - LoadDesignerItemViewModel(designer); } - public ConnectorViewModel(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode) : this(null, sourceConnectorInfo, sinkConnectorInfo, drawMode, routerMode) + public ConnectionViewModel(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode) : this(null, sourceConnectorInfo, sinkConnectorInfo, drawMode, routerMode) { } @@ -65,11 +64,15 @@ namespace AIStudio.Wpf.DiagramDesigner AddLabelCommand = new SimpleCommand(AddLabel); } - protected void LoadDesignerItemViewModel(SelectableItemBase designerbase) + protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase) { - ConnectionItem designer = designerbase as ConnectionItem; - Vertices = new ObservableCollection(designer.Vertices.Select(p => new ConnectorVertexModel(this, new PointBase(p.X, p.Y)))); + base.LoadDesignerItemViewModel(root, designerbase); + if (designerbase is ConnectionItem designer) + { + Vertices = new ObservableCollection(designer.Vertices.Select(p => new ConnectorVertexModel(this.Root, this, designer))); + Labels = new ObservableCollection(designer.Labels.Select(p => new ConnectorLabelModel(this.Root, this, designer))); + } } public override SelectableItemBase ToXmlObject() @@ -364,11 +367,11 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public PartCreatedConnectionInfo SinkConnectorInfoPart + public PartCreatedConnectorInfo SinkConnectorInfoPart { get { - return SinkConnectorInfo as PartCreatedConnectionInfo; + return SinkConnectorInfo as PartCreatedConnectorInfo; } } @@ -410,7 +413,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void ConnectorViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) { - if (sender is ConnectorViewModel) + if (sender is ConnectionViewModel) { switch (e.PropertyName) { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorInfoBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs similarity index 69% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorInfoBase.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs index 39929ac..2c84bb5 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorInfoBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs @@ -15,6 +15,16 @@ namespace AIStudio.Wpf.DiagramDesigner this.Orientation = orientation; } + public ConnectorInfoBase(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) + { + + } + + public ConnectorInfoBase(IDiagramViewModel root, string json) : base(root, json) + { + + } + protected override void Init() { base.Init(); @@ -26,6 +36,29 @@ namespace AIStudio.Wpf.DiagramDesigner }; } + protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase) + { + base.LoadDesignerItemViewModel(root, designerbase); + + if (designerbase is ConnectorInfoItemBase designer) + { + ConnectorWidth = designer.ConnectorWidth; + ConnectorHeight = designer.ConnectorHeight; + Orientation = designer.Orientation; + ConnectorValue = designer.ConnectorValue; + } + } + + public override SelectableItemBase ToXmlObject() + { + return new ConnectorInfoItemBase(this); + } + + public override Type ToXmlType() + { + return typeof(ConnectorInfoBase); + } + #region 属性 public virtual PointBase Position { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorLabelModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorLabelModel.cs similarity index 76% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorLabelModel.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorLabelModel.cs index d447592..933499c 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorLabelModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorLabelModel.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; using AIStudio.Wpf.DiagramDesigner.Geometrys; using SvgPathProperties; @@ -6,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public class ConnectorLabelModel : ConnectorPointModel, ISelectable { - public ConnectorLabelModel(ConnectorViewModel connector, string content, double? distance = null, PointBase? offset = null) + public ConnectorLabelModel(ConnectionViewModel connector, string content, double? distance = null, PointBase? offset = null) { Parent = connector; Text = content; @@ -14,6 +15,16 @@ namespace AIStudio.Wpf.DiagramDesigner Offset = offset ?? new PointBase(); } + public ConnectorLabelModel(IDiagramViewModel root, ConnectionViewModel connector, SelectableItemBase designer) : base(root, designer) + { + Parent = connector; + } + + public ConnectorLabelModel(IDiagramViewModel root, ConnectionViewModel connector, string json) : base(root, json) + { + Parent = connector; + } + protected override void Init() { base.Init(); @@ -21,12 +32,33 @@ namespace AIStudio.Wpf.DiagramDesigner DeleteLabelCommand = new SimpleCommand(DeleteLabel); } + protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase) + { + base.LoadDesignerItemViewModel(root, designerbase); + + if (designerbase is ConnectorLabelItem designer) + { + Distance = designer.Distance; + Offset = designer.Offset; + } + } + + public override SelectableItemBase ToXmlObject() + { + return new ConnectorLabelItem(this); + } + + public override Type ToXmlType() + { + return typeof(ConnectorLabelItem); + } + #region 属性 - public ConnectorViewModel Connector + public ConnectionViewModel Connector { get { - return Parent as ConnectorViewModel; + return Parent as ConnectionViewModel; } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorPointModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorPointModel.cs similarity index 79% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorPointModel.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorPointModel.cs index 9c87e42..31df9a0 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorPointModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorPointModel.cs @@ -27,6 +27,16 @@ namespace AIStudio.Wpf.DiagramDesigner Y = y; } + public ConnectorPointModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) + { + + } + + public ConnectorPointModel(IDiagramViewModel root, string json) : base(root, json) + { + + } + protected override void Init() { base.Init(); @@ -37,6 +47,29 @@ namespace AIStudio.Wpf.DiagramDesigner }; } + protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase) + { + base.LoadDesignerItemViewModel(root, designerbase); + + if (designerbase is ConnectorPointItem designer) + { + X = designer.X; + Y = designer.Y; + ConnectorWidth = designer.ConnectorWidth; + ConnectorHeight = designer.ConnectorHeight; + } + } + + public override SelectableItemBase ToXmlObject() + { + return new ConnectorPointItem(this); + } + + public override Type ToXmlType() + { + return typeof(ConnectorPointItem); + } + /// /// 中间X /// diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorVertexModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs similarity index 58% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorVertexModel.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs index 77f15bf..40d033e 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorVertexModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs @@ -1,16 +1,27 @@ -using AIStudio.Wpf.DiagramDesigner.Geometrys; +using System; +using AIStudio.Wpf.DiagramDesigner.Geometrys; namespace AIStudio.Wpf.DiagramDesigner { public class ConnectorVertexModel : ConnectorPointModel { - public ConnectorVertexModel(ConnectorViewModel connector, PointBase? position = null) + public ConnectorVertexModel(ConnectionViewModel connector, PointBase? position = null) { Parent = connector; X = position?.X ?? 0; Y = position?.Y ?? 0; } + public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, SelectableItemBase designer) : base(root, designer) + { + Parent = connector; + } + + public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, string json) : base(root, json) + { + Parent = connector; + } + protected override void Init() { base.Init(); @@ -22,13 +33,28 @@ namespace AIStudio.Wpf.DiagramDesigner { base.LoadDesignerItemViewModel(root, designerbase); + if (designerbase is ConnectorVertexItem designer) + { + + } + } - public ConnectorViewModel Connector + public override SelectableItemBase ToXmlObject() + { + return new ConnectorVertexItem(this); + } + + public override Type ToXmlType() + { + return typeof(ConnectorVertexModel); + } + + public ConnectionViewModel Connector { get { - return Parent as ConnectorViewModel; + return Parent as ConnectionViewModel; } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/FullyCreatedConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs similarity index 78% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/FullyCreatedConnectorInfo.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs index 90cf796..44791ca 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/FullyCreatedConnectorInfo.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs @@ -9,6 +9,70 @@ namespace AIStudio.Wpf.DiagramDesigner { public class FullyCreatedConnectorInfo : ConnectorInfoBase { + public FullyCreatedConnectorInfo(DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, ValueTypePoint valueTypePoint = 0) + : base(orientation) + { + this.DataItem = dataItem; + this.IsInnerPoint = isInnerPoint; + this.ValueTypePoint = valueTypePoint; + if (IsInnerPoint == true) + { + BuildMenuOptions(); + } + } + + public FullyCreatedConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, SelectableItemBase designer) : base(root, designer) + { + this.DataItem = dataItem; + if (IsInnerPoint == true) + { + BuildMenuOptions(); + } + } + + public FullyCreatedConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, string json) : base(root, json) + { + this.DataItem = dataItem; + if (IsInnerPoint == true) + { + BuildMenuOptions(); + } + } + + protected override void Init() + { + base.Init(); + + menuOptions = new List(); + MenuItemCommand = new SimpleCommand(ExecuteMenuItemCommand); + DeleteCommand = new SimpleCommand(ExecuteDeleteCommand); + + } + + protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase) + { + base.LoadDesignerItemViewModel(root, designerbase); + + if (designerbase is FullyCreatedConnectorInfoItem designer) + { + XRatio = designer.XRatio; + YRatio = designer.YRatio; + IsInnerPoint = designer.IsInnerPoint; + ValueTypePoint = designer.ValueTypePoint; + } + } + + public override SelectableItemBase ToXmlObject() + { + return new FullyCreatedConnectorInfoItem(this); + } + + public override Type ToXmlType() + { + return typeof(FullyCreatedConnectorInfo); + } + + #region 属性 public override PointBase Position { get @@ -18,62 +82,14 @@ namespace AIStudio.Wpf.DiagramDesigner } private List menuOptions; - - public FullyCreatedConnectorInfo(DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, ValueTypePoint valueTypePoint = 0) - : base(orientation) + public IEnumerable MenuOptions { - this.DataItem = dataItem; - this.IsInnerPoint = isInnerPoint; - this.ValueTypePoint = valueTypePoint; - - menuOptions = new List(); - MenuItemCommand = new SimpleCommand(ExecuteMenuItemCommand); - DeleteCommand = new SimpleCommand(ExecuteDeleteCommand); - if (IsInnerPoint == true) + get { - BuildMenuOptions(); + return menuOptions; } } - public void ExecuteMenuItemCommand(object arg) - { - Orientation = (ConnectorOrientation)arg; - } - - public void ExecuteDeleteCommand(object arg) - { - DataItem.RemoveConnector(this); - - } - - private void BuildMenuOptions() - { - menuOptions.Clear(); - var orientation = new CinchMenuItem("方向"); - var top = new CinchMenuItem("上"); - top.Command = MenuItemCommand; - top.CommandParameter = ConnectorOrientation.Top; - var bottom = new CinchMenuItem("下"); - bottom.Command = MenuItemCommand; - bottom.CommandParameter = ConnectorOrientation.Bottom; - var left = new CinchMenuItem("左"); - left.Command = MenuItemCommand; - left.CommandParameter = ConnectorOrientation.Left; - var right = new CinchMenuItem("右"); - right.Command = MenuItemCommand; - right.CommandParameter = ConnectorOrientation.Right; - orientation.Children.Add(top); - orientation.Children.Add(bottom); - orientation.Children.Add(left); - orientation.Children.Add(right); - - var delete = new CinchMenuItem("删除"); - delete.Command = DeleteCommand; - - menuOptions.Add(orientation); - menuOptions.Add(delete); - } - public DesignerItemViewModelBase DataItem { get; private set; @@ -148,7 +164,9 @@ namespace AIStudio.Wpf.DiagramDesigner SetProperty(ref _style, value); } } + #endregion + #region 方法 public SimpleCommand DeleteCommand { get; private set; @@ -157,13 +175,45 @@ namespace AIStudio.Wpf.DiagramDesigner { get; private set; } + #endregion - public IEnumerable MenuOptions + public void ExecuteMenuItemCommand(object arg) { - get - { - return menuOptions; - } + Orientation = (ConnectorOrientation)arg; + } + + public void ExecuteDeleteCommand(object arg) + { + DataItem.RemoveConnector(this); + + } + + private void BuildMenuOptions() + { + menuOptions.Clear(); + var orientation = new CinchMenuItem("方向"); + var top = new CinchMenuItem("上"); + top.Command = MenuItemCommand; + top.CommandParameter = ConnectorOrientation.Top; + var bottom = new CinchMenuItem("下"); + bottom.Command = MenuItemCommand; + bottom.CommandParameter = ConnectorOrientation.Bottom; + var left = new CinchMenuItem("左"); + left.Command = MenuItemCommand; + left.CommandParameter = ConnectorOrientation.Left; + var right = new CinchMenuItem("右"); + right.Command = MenuItemCommand; + right.CommandParameter = ConnectorOrientation.Right; + orientation.Children.Add(top); + orientation.Children.Add(bottom); + orientation.Children.Add(left); + orientation.Children.Add(right); + + var delete = new CinchMenuItem("删除"); + delete.Command = DeleteCommand; + + menuOptions.Add(orientation); + menuOptions.Add(delete); } public double GetXRatioFromConnector() diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/PartCreatedConnectionInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/PartCreatedConnectorInfo.cs similarity index 74% rename from AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/PartCreatedConnectionInfo.cs rename to AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/PartCreatedConnectorInfo.cs index 3af00af..72a33a9 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/PartCreatedConnectionInfo.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/PartCreatedConnectorInfo.cs @@ -7,7 +7,7 @@ using AIStudio.Wpf.DiagramDesigner.Geometrys; namespace AIStudio.Wpf.DiagramDesigner { - public class PartCreatedConnectionInfo : ConnectorInfoBase + public class PartCreatedConnectorInfo : ConnectorInfoBase { private PointBase position; public override PointBase Position @@ -18,7 +18,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public PartCreatedConnectionInfo(double X, double Y) : base(ConnectorOrientation.None) + public PartCreatedConnectorInfo(double X, double Y) : base(ConnectorOrientation.None) { this.position = new PointBase(X, Y); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs index 5c7ad23..5b94250 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs @@ -18,7 +18,7 @@ namespace AIStudio.Wpf.DiagramDesigner ShapeDefiner = Shapes.Rectangle; } - public DesignerItemViewModelBase(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public DesignerItemViewModelBase(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { ShapeDefiner = Shapes.Rectangle; } @@ -39,16 +39,17 @@ namespace AIStudio.Wpf.DiagramDesigner { base.LoadDesignerItemViewModel(root, designerbase); - DesignerItemBase designer = designerbase as DesignerItemBase; - - this.Left = designer.Left; - this.Top = designer.Top; - this.Angle = designer.Angle; - this.ScaleX = designer.ScaleX; - this.ScaleY = designer.ScaleY; - this.ItemWidth = designer.ItemWidth; - this.ItemHeight = designer.ItemHeight; - this.Icon = designer.Icon; + if (designerbase is DesignerItemBase designer) + { + this.Left = designer.Left; + this.Top = designer.Top; + this.Angle = designer.Angle; + this.ScaleX = designer.ScaleX; + this.ScaleY = designer.ScaleY; + this.ItemWidth = designer.ItemWidth; + this.ItemHeight = designer.ItemHeight; + this.Icon = designer.Icon; + } } public override SelectableItemBase ToXmlObject() diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index b42474f..4fcc117 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -1361,10 +1361,10 @@ namespace AIStudio.Wpf.DiagramDesigner List selectedDesignerItems = SelectedItems.OfType().ToList(); - List selectedConnections = - SelectedItems.OfType().ToList(); + List selectedConnections = + SelectedItems.OfType().ToList(); - foreach (ConnectorViewModel connection in Items.OfType()) + foreach (ConnectionViewModel connection in Items.OfType()) { if (!selectedConnections.Contains(connection)) { @@ -1458,7 +1458,7 @@ namespace AIStudio.Wpf.DiagramDesigner ConnectorOrientation sinkConnectorOrientation = connectionItem.SinkOrientation; FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connectionItem.Id, sinkItem, sinkConnectorOrientation, connectionItem.SinkXRatio, connectionItem.SinkYRatio, connectionItem.SinkInnerPoint); - ConnectorViewModel connectionVM = new ConnectorViewModel(this, sourceConnectorInfo, sinkConnectorInfo, connectionItem); + ConnectionViewModel connectionVM = new ConnectionViewModel(this, sourceConnectorInfo, sinkConnectorInfo, connectionItem); connectors.Add(connectionVM); } @@ -1537,7 +1537,7 @@ namespace AIStudio.Wpf.DiagramDesigner List itemsToRemove = SelectedItems.OfType().ToList(); List connectionsToAlsoRemove = new List(); - foreach (var connector in Items.OfType()) + foreach (var connector in Items.OfType()) { if (ItemsToDeleteHasConnector(itemsToRemove, connector.SourceConnectorInfo)) { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs index 5f13aae..b3ed048 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs @@ -25,7 +25,7 @@ namespace AIStudio.Wpf.DiagramDesigner { } - public GifImageItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer) + public GifImageItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -64,17 +64,14 @@ namespace AIStudio.Wpf.DiagramDesigner { base.LoadDesignerItemViewModel(root, designerbase); - MediaDesignerItem designer = designerbase as MediaDesignerItem; - - this.Icon = designer.Icon; - foreach (var connector in designer.Connectors) + if (designerbase is MediaDesignerItem designer) { - FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true); - fullyCreatedConnectorInfo.XRatio = connector.XRatio; - fullyCreatedConnectorInfo.YRatio = connector.YRatio; - fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth; - fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight; - AddConnector(fullyCreatedConnectorInfo); + this.Icon = designer.Icon; + foreach (var connector in designer.Connectors) + { + FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector); + AddConnector(fullyCreatedConnectorInfo); + } } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs index 695bbf6..7f01820 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.DiagramDesigner { } - public ImageItemViewModel(IDiagramViewModel root, ImageDesignerItem designer) : base(root, designer) + public ImageItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -118,18 +118,15 @@ namespace AIStudio.Wpf.DiagramDesigner { base.LoadDesignerItemViewModel(root, designerbase); - ImageDesignerItem designer = designerbase as ImageDesignerItem; - - this.Icon = designer.Icon; - Suffix = Path.GetExtension(this.Icon).ToLower(); - foreach (var connector in designer.Connectors) + if (designerbase is ImageDesignerItem designer) { - FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true); - fullyCreatedConnectorInfo.XRatio = connector.XRatio; - fullyCreatedConnectorInfo.YRatio = connector.YRatio; - fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth; - fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight; - AddConnector(fullyCreatedConnectorInfo); + this.Icon = designer.Icon; + Suffix = Path.GetExtension(this.Icon).ToLower(); + foreach (var connector in designer.Connectors) + { + FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector); + AddConnector(fullyCreatedConnectorInfo); + } } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LinkPointDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LinkPointDesignerItemViewModel.cs index e5f15f0..594eba6 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LinkPointDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LinkPointDesignerItemViewModel.cs @@ -25,6 +25,7 @@ namespace AIStudio.Wpf.DiagramDesigner this.ClearConnectors(); this.AddConnector(new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true)); + ItemWidth = 5; ItemHeight = 5; } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs index eb1032f..30556c5 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs @@ -73,7 +73,7 @@ namespace AIStudio.Wpf.DiagramDesigner BuildMenuOptions(); } - public LogicalGateItemViewModelBase(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public LogicalGateItemViewModelBase(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { BuildMenuOptions(); } @@ -141,37 +141,31 @@ namespace AIStudio.Wpf.DiagramDesigner { base.LoadDesignerItemViewModel(root, designerbase); - LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; - this.LogicalType = designer.LogicalType; - this.OrderNumber = designer.OrderNumber; - this.Value = designer.Value; - this.IsEnabled = designer.IsEnabled; - - ClearConnectors(); - Input.Clear(); - Output.Clear(); - - foreach (var connector in designer.Connectors) + if (designerbase is LogicalGateDesignerItemBase designer) { - FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true); - fullyCreatedConnectorInfo.XRatio = connector.XRatio; - fullyCreatedConnectorInfo.YRatio = connector.YRatio; - fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth; - fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight; - fullyCreatedConnectorInfo.Orientation = connector.Orientation; - fullyCreatedConnectorInfo.IsInnerPoint = connector.IsInnerPoint; - fullyCreatedConnectorInfo.ValueTypePoint = connector.ValueTypePoint; - fullyCreatedConnectorInfo.ConnectorValue = connector.ConnectorValue; + this.LogicalType = designer.LogicalType; + this.OrderNumber = designer.OrderNumber; + this.Value = designer.Value; + this.IsEnabled = designer.IsEnabled; - if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Left) + ClearConnectors(); + Input.Clear(); + Output.Clear(); + + foreach (var connector in designer.Connectors) { - Input.Add(Input.Count, fullyCreatedConnectorInfo); + FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector); + + if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Left) + { + Input.Add(Input.Count, fullyCreatedConnectorInfo); + } + else if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Right) + { + Output.Add(Output.Count, fullyCreatedConnectorInfo); + } + AddConnector(fullyCreatedConnectorInfo); } - else if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Right) - { - Output.Add(Output.Count, fullyCreatedConnectorInfo); - } - AddConnector(fullyCreatedConnectorInfo); } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs index 44c2f5a..1d039d2 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public MediaItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer) + public MediaItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -46,18 +46,15 @@ namespace AIStudio.Wpf.DiagramDesigner { base.LoadDesignerItemViewModel(parent, designerbase); - MediaDesignerItem designer = designerbase as MediaDesignerItem; - - this.Icon = designer.Icon; - - foreach (var connector in designer.Connectors) + if (designerbase is MediaDesignerItem designer) { - FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true); - fullyCreatedConnectorInfo.XRatio = connector.XRatio; - fullyCreatedConnectorInfo.YRatio = connector.YRatio; - fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth; - fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight; - AddConnector(fullyCreatedConnectorInfo); + this.Icon = designer.Icon; + + foreach (var connector in designer.Connectors) + { + FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector); + AddConnector(fullyCreatedConnectorInfo); + } } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs index 2a9a391..82edd50 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs @@ -10,7 +10,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public TextDesignerItemViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public TextDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs index 1f1b176..14d5488 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs @@ -13,7 +13,7 @@ namespace AIStudio.Wpf.DiagramDesigner { } - public VideoItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer) + public VideoItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs index b40f66c..2d88fc2 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public BarcodeDesignerItemViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public BarcodeDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -39,7 +39,10 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), (designerbase as DesignerItemBase).Reserve.ToString()); + if (designerbase is DesignerItemBase designer) + { + Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), designer.Reserve.ToString()); + } } public void AutoSize() diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs index 2f54ef0..93cbc4e 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public OutLineTextDesignerItemViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public OutLineTextDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs index d32cf0c..2d58781 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs @@ -11,7 +11,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public PathItemViewModel(IDiagramViewModel root, PathDesignerItem designer) : base(root, designer) + public PathItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs index 835efd7..a8c2f8c 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public PersistDesignerItemViewModel(IDiagramViewModel root, PersistDesignerItem designer) : base(root, designer) + public PersistDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -47,8 +47,10 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - PersistDesignerItem designer = designerbase as PersistDesignerItem; - this.HostUrl = designer.HostUrl; + if (designerbase is PersistDesignerItem designer) + { + this.HostUrl = designer.HostUrl; + } } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs index 998537d..f1d128d 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public SettingsDesignerItemViewModel(IDiagramViewModel root, SettingsDesignerItem designer) : base(root, designer) + public SettingsDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -46,8 +46,10 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - SettingsDesignerItem designer = designerbase as SettingsDesignerItem; - this.Setting = designer.Setting; + if (designerbase is SettingsDesignerItem designer) + { + this.Setting = designer.Setting; + } } public String Setting{ get; set; } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs index 74a471a..8fc6865 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs @@ -10,7 +10,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels { } - public SvgDesignerItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer) + public SvgDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.Flowchart/FlowchartService.cs b/AIStudio.Wpf.Flowchart/FlowchartService.cs index 6a6b6d4..391fda4 100644 --- a/AIStudio.Wpf.Flowchart/FlowchartService.cs +++ b/AIStudio.Wpf.Flowchart/FlowchartService.cs @@ -69,7 +69,7 @@ namespace AIStudio.Wpf.Flowchart /// /// /// - public static void InitData(List oASteps, List connectors, IDiagramViewModel viewModel) + public static void InitData(List oASteps, List connectors, IDiagramViewModel viewModel) { foreach (var edge in connectors) { diff --git a/AIStudio.Wpf.Flowchart/Models/DiagramDataExtention.cs b/AIStudio.Wpf.Flowchart/Models/DiagramDataExtention.cs index bdeb8f4..cf08a6c 100644 --- a/AIStudio.Wpf.Flowchart/Models/DiagramDataExtention.cs +++ b/AIStudio.Wpf.Flowchart/Models/DiagramDataExtention.cs @@ -16,7 +16,7 @@ namespace AIStudio.Wpf.Flowchart.Models { var json = JsonConvert.SerializeObject(new { Nodes = diagram.Items.OfType().Select(p => p.ToDiagramNode()).Where(p => p != null), - Links = diagram.Items.OfType().Select(p => p.ToDiagramLink()).Where(p => p != null) + Links = diagram.Items.OfType().Select(p => p.ToDiagramLink()).Where(p => p != null) }, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore @@ -65,7 +65,7 @@ namespace AIStudio.Wpf.Flowchart.Models return diagramNode; } - public static DiagramLink ToDiagramLink(this ConnectorViewModel linkModel) + public static DiagramLink ToDiagramLink(this ConnectionViewModel linkModel) { DiagramLink diagramLink = new DiagramLink(); @@ -221,11 +221,11 @@ namespace AIStudio.Wpf.Flowchart.Models return nodeModel; } - public static ConnectorViewModel ToLinkModel(this DiagramLink diagramLink, IDiagramViewModel diagram, DesignerItemViewModelBase sourceNode, DesignerItemViewModelBase targetNode) + public static ConnectionViewModel ToLinkModel(this DiagramLink diagramLink, IDiagramViewModel diagram, DesignerItemViewModelBase sourceNode, DesignerItemViewModelBase targetNode) { FullyCreatedConnectorInfo sourceConnectorInfo = sourceNode.Connectors.FirstOrDefault(p => p.Orientation.ToString() == diagramLink.SourcePortAlignment); FullyCreatedConnectorInfo sinkConnectorInfo = targetNode.Connectors.FirstOrDefault(p => p.Orientation.ToString() == diagramLink.TargetPortAlignment); - ConnectorViewModel linkModel = new ConnectorViewModel(diagram, sourceConnectorInfo, sinkConnectorInfo, diagram.DrawModeViewModel?.LineDrawMode ?? DrawMode.ConnectingLineSmooth, diagram.DrawModeViewModel?.LineRouterMode ?? RouterMode.RouterNormal); + ConnectionViewModel linkModel = new ConnectionViewModel(diagram, sourceConnectorInfo, sinkConnectorInfo, diagram.DrawModeViewModel?.LineDrawMode ?? DrawMode.ConnectingLineSmooth, diagram.DrawModeViewModel?.LineRouterMode ?? RouterMode.RouterNormal); linkModel.Id = new Guid(diagramLink.Id); linkModel.ColorViewModel.LineColor.Color = SerializeHelper.DeserializeColor(diagramLink.Color); linkModel.ColorViewModel.LineWidth = diagramLink.Width; diff --git a/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs b/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs index 420173a..6d99897 100644 --- a/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs +++ b/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs @@ -17,7 +17,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels Text = Kind.GetDescription(); } - public FlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public FlowNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -52,16 +52,18 @@ namespace AIStudio.Wpf.Flowchart.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - FlowNodeDesignerItem designer = designerbase as FlowNodeDesignerItem; - this.Color = designer.Color; - this.Kind = designer.Kind; - this.StateImage = designer.StateImage; - - if (this is MiddleFlowNode middle) + if (designerbase is FlowNodeDesignerItem designer) { - middle.UserIds = designer.UserIds; - middle.RoleIds = designer.RoleIds; - middle.ActType = designer.ActType; + this.Color = designer.Color; + this.Kind = designer.Kind; + this.StateImage = designer.StateImage; + + if (this is MiddleFlowNode middle) + { + middle.UserIds = designer.UserIds; + middle.RoleIds = designer.RoleIds; + middle.ActType = designer.ActType; + } } } @@ -132,7 +134,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public StartFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public StartFlowNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -150,7 +152,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public EndFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public EndFlowNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -168,7 +170,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public DecideFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public DecideFlowNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -186,7 +188,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public COBeginFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public COBeginFlowNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -204,7 +206,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public COEndFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public COEndFlowNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs index f82cad3..5ab5e2b 100644 --- a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs +++ b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs @@ -15,7 +15,7 @@ namespace AIStudio.Wpf.Logical.ViewModels ColorViewModel.FillColor.Color = Colors.Orange; } - public LogicalGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public LogicalGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -36,8 +36,10 @@ namespace AIStudio.Wpf.Logical.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; - this.Value = designer.Value; + if (designerbase is LogicalGateDesignerItemBase designer) + { + this.Value = designer.Value; + } } @@ -84,7 +86,7 @@ namespace AIStudio.Wpf.Logical.ViewModels { } - public SubtractGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public SubtractGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -100,7 +102,7 @@ namespace AIStudio.Wpf.Logical.ViewModels { } - public MultiplyGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public MultiplyGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -117,7 +119,7 @@ namespace AIStudio.Wpf.Logical.ViewModels { } - public DivideGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public DivideGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -134,7 +136,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public AverageGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public AverageGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -152,7 +154,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public MODGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public MODGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -170,7 +172,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ANDGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ANDGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -188,7 +190,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ORGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ORGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -206,7 +208,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public XORGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public XORGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -224,7 +226,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public NOTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public NOTGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -242,7 +244,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SHLGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public SHLGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -260,7 +262,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SHRGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public SHRGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -278,7 +280,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ROLGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ROLGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -296,7 +298,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public RORGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public RORGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -311,10 +313,10 @@ namespace AIStudio.Wpf.Logical.ViewModels { public SELGateItemViewModel() : base(LogicalType.SEL) { - + } - public SELGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public SELGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -332,7 +334,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public MAXGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public MAXGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -350,7 +352,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public MINGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public MINGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -368,7 +370,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LIMITGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public LIMITGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -386,7 +388,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public GTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public GTGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -404,7 +406,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public LTGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -422,7 +424,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public GEGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public GEGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -440,7 +442,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LEGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public LEGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -458,7 +460,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public EQGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public EQGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -476,7 +478,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public NEGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public NEGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -494,7 +496,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ABSGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ABSGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -512,7 +514,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SQRTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public SQRTGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -530,7 +532,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LNGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public LNGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -548,7 +550,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LOGGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public LOGGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -566,7 +568,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public EXPGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public EXPGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -584,7 +586,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SINGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public SINGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -602,7 +604,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public COSGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public COSGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -620,7 +622,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public TANGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public TANGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -638,7 +640,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ASINGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ASINGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -656,7 +658,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ACOSGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ACOSGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -674,7 +676,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ATANGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ATANGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -692,7 +694,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public EXPTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public EXPTGateItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -710,7 +712,7 @@ namespace AIStudio.Wpf.Logical.ViewModels ItemHeight = 28; } - public ConstantDesignerItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public ConstantDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -728,7 +730,7 @@ namespace AIStudio.Wpf.Logical.ViewModels ItemHeight = 28; } - public InputItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public InputItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -742,19 +744,24 @@ namespace AIStudio.Wpf.Logical.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; - this.Value = designer.Value; - LinkPoint = LogicalService.LinkPoint.FirstOrDefault(p => p.Id.ToString() == designer.Icon); //不想新增字段了,就用这个Icon保存自定义测点的Id吧。 - if (LinkPoint != null) + if (designerbase is LogicalGateDesignerItemBase designer) { - LinkPoint.Value = designer.Value; + this.Value = designer.Value; + LinkPoint = LogicalService.LinkPoint.FirstOrDefault(p => p.Id.ToString() == designer.Icon); //不想新增字段了,就用这个Icon保存自定义测点的Id吧。 + if (LinkPoint != null) + { + LinkPoint.Value = designer.Value; + } } } private LinkPoint _linkPoint; public LinkPoint LinkPoint { - get { return _linkPoint; } + get + { + return _linkPoint; + } set { if (SetProperty(ref _linkPoint, value)) @@ -782,7 +789,7 @@ namespace AIStudio.Wpf.Logical.ViewModels ItemHeight = 28; } - public OutputItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public OutputItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -796,19 +803,25 @@ namespace AIStudio.Wpf.Logical.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; - this.Value = designer.Value; - LinkPoint = LogicalService.LinkPoint.FirstOrDefault(p => p.Id.ToString() == designer.Icon); //不想新增字段了,就用这个Icon保存自定义测点的Id吧。 - if (LinkPoint != null) + if (designerbase is LogicalGateDesignerItemBase designer) { - LinkPoint.Value = designer.Value; + + this.Value = designer.Value; + LinkPoint = LogicalService.LinkPoint.FirstOrDefault(p => p.Id.ToString() == designer.Icon); //不想新增字段了,就用这个Icon保存自定义测点的Id吧。 + if (LinkPoint != null) + { + LinkPoint.Value = designer.Value; + } } } private LinkPoint _linkPoint; public LinkPoint LinkPoint { - get { return _linkPoint; } + get + { + return _linkPoint; + } set { if (SetProperty(ref _linkPoint, value)) @@ -843,7 +856,7 @@ namespace AIStudio.Wpf.Logical.ViewModels BuildMenuOptions(); } - public TimerDesignerItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer) + public TimerDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { BuildMenuOptions(); } @@ -902,7 +915,10 @@ namespace AIStudio.Wpf.Logical.ViewModels } } - public SimpleCommand MenuItemCommand { get; private set; } + public SimpleCommand MenuItemCommand + { + get; private set; + } private void BuildMenuOptions() { menuOptions = new ObservableCollection(); diff --git a/AIStudio.Wpf.SFC/Models/SFCNodeDesignerItem.cs b/AIStudio.Wpf.SFC/Models/SFCNodeDesignerItem.cs index 6539759..d7ff714 100644 --- a/AIStudio.Wpf.SFC/Models/SFCNodeDesignerItem.cs +++ b/AIStudio.Wpf.SFC/Models/SFCNodeDesignerItem.cs @@ -19,10 +19,10 @@ namespace AIStudio.Wpf.SFC.Models } public SFCNodeDesignerItem(SFCNode item) : base(item) { - this.Connectors = new List(); + this.Connectors = new List(); foreach (var fullyCreatedConnectorInfo in item.Connectors) { - ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo); + FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo); this.Connectors.Add(connector); } @@ -53,7 +53,7 @@ namespace AIStudio.Wpf.SFC.Models } [XmlArray] - public List Connectors { get; set; } + public List Connectors { get; set; } [XmlAttribute] public SFCNodeKinds Kind { get; set; } diff --git a/AIStudio.Wpf.SFC/SFCService.cs b/AIStudio.Wpf.SFC/SFCService.cs index d59d55b..8b14b16 100644 --- a/AIStudio.Wpf.SFC/SFCService.cs +++ b/AIStudio.Wpf.SFC/SFCService.cs @@ -41,7 +41,7 @@ namespace AIStudio.Wpf.SFC /// /// /// - public static void InitData(List nodes, List connectors, IDiagramViewModel viewModel) + public static void InitData(List nodes, List connectors, IDiagramViewModel viewModel) { var start = nodes.FirstOrDefault(p => p.Kind == SFCNodeKinds.Start); if (start == null) diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs index 7ca3163..64c073d 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs @@ -16,7 +16,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddLeftInput(null); } - public SFCActionNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public SFCActionNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs index d43b7fb..be3bfc1 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs @@ -17,7 +17,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddBottomOutput(null); } - public SFCCOBeginNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public SFCCOBeginNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs index 4982215..c4aa292 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs @@ -17,7 +17,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddTopInput(null); } - public SFCCOEndNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public SFCCOEndNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -43,7 +43,6 @@ namespace AIStudio.Wpf.SFC.ViewModels connector.XRatio = (40 + Output.Count * 200) / ItemWidth; Output.Add(Output.Count, connector); - AddConnector(connector); } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs index 7167989..3f81819 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddBottomOutput(null); } - public SFCConditionNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public SFCConditionNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs index edf27d5..599094f 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs @@ -21,7 +21,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ItemHeight = 40; } - public SFCNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public SFCNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } @@ -58,53 +58,46 @@ namespace AIStudio.Wpf.SFC.ViewModels { base.LoadDesignerItemViewModel(root, designerbase); - SFCNodeDesignerItem designer = designerbase as SFCNodeDesignerItem; - this.Kind = designer.Kind; - this.Expression = designer.Expression; - - foreach (var connector in designer.Connectors) + if (designerbase is SFCNodeDesignerItem designer) { - FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true); - fullyCreatedConnectorInfo.XRatio = connector.XRatio; - fullyCreatedConnectorInfo.YRatio = connector.YRatio; - fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth; - fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight; - fullyCreatedConnectorInfo.Orientation = connector.Orientation; - fullyCreatedConnectorInfo.IsInnerPoint = connector.IsInnerPoint; - fullyCreatedConnectorInfo.ValueTypePoint = connector.ValueTypePoint; - fullyCreatedConnectorInfo.ConnectorValue = connector.ConnectorValue; + this.Kind = designer.Kind; + this.Expression = designer.Expression; - if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Left) + foreach (var connector in designer.Connectors) { - Input.Add(Input.Count, fullyCreatedConnectorInfo); + FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector); + if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Left) + { + Input.Add(Input.Count, fullyCreatedConnectorInfo); + } + else if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Right) + { + Output.Add(Output.Count, fullyCreatedConnectorInfo); + } + AddConnector(fullyCreatedConnectorInfo); } - else if (fullyCreatedConnectorInfo.Orientation == ConnectorOrientation.Right) - { - Output.Add(Output.Count, fullyCreatedConnectorInfo); - } - AddConnector(fullyCreatedConnectorInfo); - } - if (this is SFCActionNode actionNode) - { - actionNode.LinkPoint = designer.LinkPoints.FirstOrDefault(); - } - else if (this is SFCConditionNode sFCConditionNode) - { - sFCConditionNode.LinkPoint = new System.Collections.ObjectModel.ObservableCollection(designer.LinkPoints); - } - else if (this is Simulate_SolenoidViewModel simulate_SolenoidViewModel) - { - simulate_SolenoidViewModel.DILinkPoint = designer.LinkPoints.FirstOrDefault(); - simulate_SolenoidViewModel.DOLinkPoint = designer.LinkPoints.LastOrDefault(); - } - else if (this is Simulate_StartViewModel simulate_StartViewModel) - { - simulate_StartViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault(); - } - else if (this is Simulate_TankViewModel simulate_TankViewModel) - { - simulate_TankViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault(); + if (this is SFCActionNode actionNode) + { + actionNode.LinkPoint = designer.LinkPoints.FirstOrDefault(); + } + else if (this is SFCConditionNode sFCConditionNode) + { + sFCConditionNode.LinkPoint = new System.Collections.ObjectModel.ObservableCollection(designer.LinkPoints); + } + else if (this is Simulate_SolenoidViewModel simulate_SolenoidViewModel) + { + simulate_SolenoidViewModel.DILinkPoint = designer.LinkPoints.FirstOrDefault(); + simulate_SolenoidViewModel.DOLinkPoint = designer.LinkPoints.LastOrDefault(); + } + else if (this is Simulate_StartViewModel simulate_StartViewModel) + { + simulate_StartViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault(); + } + else if (this is Simulate_TankViewModel simulate_TankViewModel) + { + simulate_TankViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault(); + } } } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs index 57613b3..11c46c2 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddActionOutput(null); } - public SFCNodeNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public SFCNodeNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs index b148b8d..3c97e7e 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs @@ -13,7 +13,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddBottomOutput(null); } - public SFCStartNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public SFCStartNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs index a878236..b8ab5fc 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ItemHeight = 260; } - public Simulate_ListViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public Simulate_ListViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs index 67307af..d730bfd 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs @@ -19,7 +19,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddRightOutput(null); } - public Simulate_SolenoidViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public Simulate_SolenoidViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs index 6ee95f4..4b48a96 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs @@ -16,7 +16,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddRightOutput(null); } - public Simulate_StartViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public Simulate_StartViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs index b379ceb..978da67 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs @@ -19,7 +19,7 @@ namespace AIStudio.Wpf.SFC.ViewModels ExecuteAddRightOutput(null); } - public Simulate_TankViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer) + public Simulate_TankViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) { }