mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-28 12:13:25 +08:00
序列化继续整理
This commit is contained in:
@@ -273,7 +273,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation;
|
ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation;
|
||||||
FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation, connection.SinkXRatio, connection.SinkYRatio, connection.SinkInnerPoint);
|
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);
|
viewModel.Items.Add(connectionVM);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -326,7 +326,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
diagramItem.AddItems(DiagramViewModel.Items);
|
diagramItem.AddItems(DiagramViewModel.Items);
|
||||||
|
|
||||||
foreach (var connectionVM in DiagramViewModel.Items.OfType<ConnectorViewModel>())
|
foreach (var connectionVM in DiagramViewModel.Items.OfType<ConnectionViewModel>())
|
||||||
{
|
{
|
||||||
if (!connectionVM.IsFullConnection)
|
if (!connectionVM.IsFullConnection)
|
||||||
continue;
|
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<ConnectorViewModel>())
|
foreach (var connector in DiagramViewModel.Items.OfType<ConnectionViewModel>())
|
||||||
{
|
{
|
||||||
if (connector.SinkConnectorInfo == sinkConnector)
|
if (connector.SinkConnectorInfo == sinkConnector)
|
||||||
{
|
{
|
||||||
@@ -501,7 +501,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
diagramItem.AddItems(DiagramViewModel.Items);
|
diagramItem.AddItems(DiagramViewModel.Items);
|
||||||
|
|
||||||
foreach (var connectionVM in DiagramViewModel.Items.OfType<ConnectorViewModel>())
|
foreach (var connectionVM in DiagramViewModel.Items.OfType<ConnectionViewModel>())
|
||||||
{
|
{
|
||||||
if (connectionVM.IsFullConnection == false) continue;
|
if (connectionVM.IsFullConnection == false) continue;
|
||||||
|
|
||||||
@@ -546,7 +546,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation;
|
ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation;
|
||||||
FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation, connection.SinkXRatio, connection.SinkYRatio, connection.SinkInnerPoint);
|
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);
|
viewModel.Items.Add(connectionVM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace AIStudio.Wpf.Flowchart
|
|||||||
{
|
{
|
||||||
if (DiagramViewModel != null)
|
if (DiagramViewModel != null)
|
||||||
{
|
{
|
||||||
FlowchartService.InitData(DiagramViewModel.Items.OfType<FlowNode>().ToList(), DiagramViewModel.Items.OfType<ConnectorViewModel>().ToList(), DiagramViewModel);
|
FlowchartService.InitData(DiagramViewModel.Items.OfType<FlowNode>().ToList(), DiagramViewModel.Items.OfType<ConnectionViewModel>().ToList(), DiagramViewModel);
|
||||||
}
|
}
|
||||||
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
|
_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() };
|
DesignerItemViewModelBase end = new EndFlowNode() { Left = 100, Top = 700, ItemWidth = 80, ItemHeight = 40, Color = Colors.Yellow.ToString() };
|
||||||
DiagramViewModel.DirectAddItemCommand.Execute(end);
|
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);
|
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);
|
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);
|
DiagramViewModel.DirectAddItemCommand.Execute(connector3);
|
||||||
connector3.AddLabel(">=3");
|
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);
|
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);
|
DiagramViewModel.DirectAddItemCommand.Execute(connector5);
|
||||||
connector5.AddLabel("<3");
|
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);
|
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);
|
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);
|
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);
|
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.DirectAddItemCommand.Execute(connector10);
|
||||||
|
|
||||||
DiagramViewModel.ClearSelectedItems();
|
DiagramViewModel.ClearSelectedItems();
|
||||||
|
|
||||||
FlowchartService.InitData(DiagramViewModel.Items.OfType<FlowNode>().ToList(), DiagramViewModel.Items.OfType<ConnectorViewModel>().ToList(), DiagramViewModel);
|
FlowchartService.InitData(DiagramViewModel.Items.OfType<FlowNode>().ToList(), DiagramViewModel.Items.OfType<ConnectionViewModel>().ToList(), DiagramViewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
|
|||||||
@@ -74,28 +74,28 @@ namespace AIStudio.Wpf.Logical
|
|||||||
out1.LinkPoint = LogicalService.LinkPoint[4];
|
out1.LinkPoint = LogicalService.LinkPoint[4];
|
||||||
DiagramViewModel.DirectAddItemCommand.Execute(out1);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
DiagramViewModel.DirectAddItemCommand.Execute(connector8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,11 +124,11 @@ namespace AIStudio.Wpf.Logical
|
|||||||
if (base.AddVerify(arg) == false)
|
if (base.AddVerify(arg) == false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (arg is ConnectorViewModel connector)
|
if (arg is ConnectionViewModel connector)
|
||||||
{
|
{
|
||||||
if (connector.IsFullConnection)
|
if (connector.IsFullConnection)
|
||||||
{
|
{
|
||||||
if (DiagramViewModel.Items.OfType<ConnectorViewModel>().Any(p => p.SinkConnectorInfo == connector.SinkConnectorInfoFully))
|
if (DiagramViewModel.Items.OfType<ConnectionViewModel>().Any(p => p.SinkConnectorInfo == connector.SinkConnectorInfoFully))
|
||||||
{
|
{
|
||||||
return false;
|
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<ConnectorViewModel>())
|
foreach (var connector in DiagramViewModel.Items.OfType<ConnectionViewModel>())
|
||||||
{
|
{
|
||||||
if (connector.SinkConnectorInfo == sinkConnector)
|
if (connector.SinkConnectorInfo == sinkConnector)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace AIStudio.Wpf.Flowchart
|
|||||||
{
|
{
|
||||||
if (DiagramViewModel != null)
|
if (DiagramViewModel != null)
|
||||||
{
|
{
|
||||||
SFCService.InitData(DiagramViewModel.Items.OfType<SFCNode>().ToList(), DiagramViewModel.Items.OfType<ConnectorViewModel>().ToList(), DiagramViewModel);
|
SFCService.InitData(DiagramViewModel.Items.OfType<SFCNode>().ToList(), DiagramViewModel.Items.OfType<ConnectionViewModel>().ToList(), DiagramViewModel);
|
||||||
}
|
}
|
||||||
readDataTimer.Elapsed += timeCycle;
|
readDataTimer.Elapsed += timeCycle;
|
||||||
readDataTimer.Interval = 1000;
|
readDataTimer.Interval = 1000;
|
||||||
@@ -120,79 +120,79 @@ namespace AIStudio.Wpf.Flowchart
|
|||||||
SFCCOEndNode coend = new SFCCOEndNode() { Left = 38, Top = 720, Text = "" };
|
SFCCOEndNode coend = new SFCCOEndNode() { Left = 38, Top = 720, Text = "" };
|
||||||
DiagramViewModel.DirectAddItemCommand.Execute(coend);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
DiagramViewModel.DirectAddItemCommand.Execute(connector20);
|
||||||
|
|
||||||
#region 模拟部分
|
#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") };
|
Simulate_TankViewModel tank3 = new Simulate_TankViewModel() { Left = 500, Top = 103, ItemWidth = 48, ItemHeight = 60, Text = "T3", LinkPoint = SFCService.LinkPoint.FirstOrDefault(p => p.Name == "T3") };
|
||||||
DiagramViewModel.DirectAddItemCommand.Execute(tank3);
|
DiagramViewModel.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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
DiagramViewModel.DirectAddItemCommand.Execute(conn8);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
DiagramViewModel.ClearSelectedItems();
|
DiagramViewModel.ClearSelectedItems();
|
||||||
|
|
||||||
SFCService.InitData(DiagramViewModel.Items.OfType<SFCNode>().ToList(), DiagramViewModel.Items.OfType<ConnectorViewModel>().ToList(), DiagramViewModel);
|
SFCService.InitData(DiagramViewModel.Items.OfType<SFCNode>().ToList(), DiagramViewModel.Items.OfType<ConnectionViewModel>().ToList(), DiagramViewModel);
|
||||||
|
|
||||||
readDataTimer.Elapsed += timeCycle;
|
readDataTimer.Elapsed += timeCycle;
|
||||||
readDataTimer.Interval = 1000;
|
readDataTimer.Interval = 1000;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
private IDiagramViewModel _viewModel { get { return DataContext as IDiagramViewModel; } }
|
private IDiagramViewModel _viewModel { get { return DataContext as IDiagramViewModel; } }
|
||||||
private IDiagramServiceProvider _service { get { return DiagramServicesProvider.Instance.Provider; } }
|
private IDiagramServiceProvider _service { get { return DiagramServicesProvider.Instance.Provider; } }
|
||||||
|
|
||||||
private ConnectorViewModel partialConnection;
|
private ConnectionViewModel partialConnection;
|
||||||
private List<Connector> connectorsHit = new List<Connector>();
|
private List<Connector> connectorsHit = new List<Connector>();
|
||||||
|
|
||||||
private Point? rubberbandSelectionStartPoint = null;
|
private Point? rubberbandSelectionStartPoint = null;
|
||||||
@@ -217,7 +217,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
Rect rectangleBounds = sourceConnector.TransformToVisual(this).TransformBounds(new Rect(sourceConnector.RenderSize));
|
Rect rectangleBounds = sourceConnector.TransformToVisual(this).TransformBounds(new Rect(sourceConnector.RenderSize));
|
||||||
Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2),
|
Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2),
|
||||||
rectangleBounds.Bottom + (rectangleBounds.Height / 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);
|
_viewModel.DirectAddItemCommand.Execute(partialConnection);
|
||||||
}
|
}
|
||||||
@@ -239,7 +239,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
Rect rectangleBounds = new Rect(sourceConnectorInfo.DataItem.Left, sourceConnectorInfo.DataItem.Top, 3, 3);
|
Rect rectangleBounds = new Rect(sourceConnectorInfo.DataItem.Left, sourceConnectorInfo.DataItem.Top, 3, 3);
|
||||||
Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2),
|
Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2),
|
||||||
rectangleBounds.Bottom + (rectangleBounds.Height / 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);
|
_viewModel.DirectAddItemCommand.Execute(partialConnection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -323,7 +323,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
if (e.LeftButton == MouseButtonState.Pressed)
|
if (e.LeftButton == MouseButtonState.Pressed)
|
||||||
{
|
{
|
||||||
partialConnection.SinkConnectorInfo = new PartCreatedConnectionInfo(currentPoint.X, currentPoint.Y);
|
partialConnection.SinkConnectorInfo = new PartCreatedConnectorInfo(currentPoint.X, currentPoint.Y);
|
||||||
HitTesting(currentPoint);
|
HitTesting(currentPoint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -376,7 +376,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
int indexOfLastTempConnection = sinkDataItem.DataItem.Root.Items.Count - 1;
|
int indexOfLastTempConnection = sinkDataItem.DataItem.Root.Items.Count - 1;
|
||||||
sinkDataItem.DataItem.Root.DirectRemoveItemCommand.Execute(
|
sinkDataItem.DataItem.Root.DirectRemoveItemCommand.Execute(
|
||||||
sinkDataItem.DataItem.Root.Items[indexOfLastTempConnection]);
|
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)
|
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.DirectRemoveItemCommand.Execute(_viewModel.Items[indexOfLastTempConnection]);
|
||||||
_viewModel.DirectAddItemCommand.Execute(pointItemView);
|
_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);
|
_viewModel.AddItemCommand.Execute(connector);
|
||||||
|
|
||||||
sourceDataItem.DataItem.ZIndex++;
|
sourceDataItem.DataItem.ZIndex++;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
|||||||
{
|
{
|
||||||
// we only move DesignerItems
|
// we only move DesignerItems
|
||||||
designerItems = designerItem.Root.SelectedItems.ToList();
|
designerItems = designerItem.Root.SelectedItems.ToList();
|
||||||
if (designerItem is ConnectorViewModel connector)
|
if (designerItem is ConnectionViewModel connector)
|
||||||
{
|
{
|
||||||
designerItems.Add(connector.SourceConnectorInfo.DataItem);
|
designerItems.Add(connector.SourceConnectorInfo.DataItem);
|
||||||
if (connector.IsFullConnection)
|
if (connector.IsFullConnection)
|
||||||
|
|||||||
@@ -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
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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.SourceId = viewmodel.SourceConnectorInfo.DataItem.Id;
|
||||||
this.SourceOrientation = viewmodel.SourceConnectorInfo.Orientation;
|
this.SourceOrientation = viewmodel.SourceConnectorInfo.Orientation;
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 连接点
|
||||||
|
/// </summary>
|
||||||
|
[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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,27 +9,23 @@ using System.Xml.Serialization;
|
|||||||
namespace AIStudio.Wpf.DiagramDesigner
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 连接点
|
/// 完整连接点
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Serializable]
|
[Serializable]
|
||||||
[XmlInclude(typeof(ConnectorItem))]
|
[XmlInclude(typeof(FullyCreatedConnectorInfoItem))]
|
||||||
public class ConnectorItem : SelectableItemBase
|
public class FullyCreatedConnectorInfoItem : ConnectorInfoItemBase
|
||||||
{
|
{
|
||||||
public ConnectorItem()
|
public FullyCreatedConnectorInfoItem()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ConnectorItem(FullyCreatedConnectorInfo viewmodel) : base(viewmodel)
|
public FullyCreatedConnectorInfoItem(FullyCreatedConnectorInfo viewmodel) : base(viewmodel)
|
||||||
{
|
{
|
||||||
XRatio = viewmodel.XRatio;
|
XRatio = viewmodel.XRatio;
|
||||||
YRatio = viewmodel.YRatio;
|
YRatio = viewmodel.YRatio;
|
||||||
ConnectorWidth = viewmodel.ConnectorWidth;
|
|
||||||
ConnectorHeight = viewmodel.ConnectorHeight;
|
|
||||||
Orientation = viewmodel.Orientation;
|
|
||||||
IsInnerPoint = viewmodel.IsInnerPoint;
|
IsInnerPoint = viewmodel.IsInnerPoint;
|
||||||
ValueTypePoint = viewmodel.ValueTypePoint;
|
ValueTypePoint = viewmodel.ValueTypePoint;
|
||||||
ConnectorValue = viewmodel.ConnectorValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -39,22 +35,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
public double YRatio { get; set; }
|
public double YRatio { get; set; }
|
||||||
|
|
||||||
[XmlAttribute]
|
|
||||||
public double ConnectorWidth { get; set; }
|
|
||||||
|
|
||||||
[XmlAttribute]
|
|
||||||
public double ConnectorHeight { get; set; }
|
|
||||||
|
|
||||||
[XmlAttribute]
|
|
||||||
public ConnectorOrientation Orientation { get; set; }
|
|
||||||
|
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
public bool IsInnerPoint { get; set; }
|
public bool IsInnerPoint { get; set; }
|
||||||
|
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
public ValueTypePoint ValueTypePoint { get; set; }
|
public ValueTypePoint ValueTypePoint { get; set; }
|
||||||
|
|
||||||
[XmlAttribute]
|
|
||||||
public double ConnectorValue { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,16 +12,16 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
public ImageDesignerItem(ImageItemViewModel item) : base(item)
|
public ImageDesignerItem(ImageItemViewModel item) : base(item)
|
||||||
{
|
{
|
||||||
Icon = item.Icon;
|
Icon = item.Icon;
|
||||||
Connectors = new List<ConnectorItem>();
|
Connectors = new List<FullyCreatedConnectorInfoItem>();
|
||||||
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
||||||
{
|
{
|
||||||
ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
|
FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo);
|
||||||
Connectors.Add(connector);
|
Connectors.Add(connector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[XmlArray]
|
[XmlArray]
|
||||||
public List<ConnectorItem> Connectors { get; set; }
|
public List<FullyCreatedConnectorInfoItem> Connectors { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
}
|
}
|
||||||
public LogicalGateDesignerItemBase(LogicalGateItemViewModelBase item) : base(item)
|
public LogicalGateDesignerItemBase(LogicalGateItemViewModelBase item) : base(item)
|
||||||
{
|
{
|
||||||
this.Connectors = new List<ConnectorItem>();
|
this.Connectors = new List<FullyCreatedConnectorInfoItem>();
|
||||||
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
||||||
{
|
{
|
||||||
ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
|
FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo);
|
||||||
this.Connectors.Add(connector);
|
this.Connectors.Add(connector);
|
||||||
}
|
}
|
||||||
this.OrderNumber = item.OrderNumber;
|
this.OrderNumber = item.OrderNumber;
|
||||||
@@ -28,7 +28,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
}
|
}
|
||||||
|
|
||||||
[XmlArray]
|
[XmlArray]
|
||||||
public List<ConnectorItem> Connectors { get; set; }
|
public List<FullyCreatedConnectorInfoItem> Connectors { get; set; }
|
||||||
|
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
public int OrderNumber { get; set; }
|
public int OrderNumber { get; set; }
|
||||||
|
|||||||
@@ -12,26 +12,26 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
|
|
||||||
public MediaDesignerItem(GifImageItemViewModel item) : base(item)
|
public MediaDesignerItem(GifImageItemViewModel item) : base(item)
|
||||||
{
|
{
|
||||||
Connectors = new List<ConnectorItem>();
|
Connectors = new List<FullyCreatedConnectorInfoItem>();
|
||||||
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
||||||
{
|
{
|
||||||
ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
|
FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo);
|
||||||
Connectors.Add(connector);
|
Connectors.Add(connector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MediaDesignerItem(MediaItemViewModel item) : base(item)
|
public MediaDesignerItem(MediaItemViewModel item) : base(item)
|
||||||
{
|
{
|
||||||
Connectors = new List<ConnectorItem>();
|
Connectors = new List<FullyCreatedConnectorInfoItem>();
|
||||||
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
||||||
{
|
{
|
||||||
ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
|
FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo);
|
||||||
Connectors.Add(connector);
|
Connectors.Add(connector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[XmlArray]
|
[XmlArray]
|
||||||
public List<ConnectorItem> Connectors { get; set; }
|
public List<FullyCreatedConnectorInfoItem> Connectors { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class ConnectingLineBoundary : IPathGenerator
|
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);
|
return PathGenerators.Boundary(_, link, route, source, target);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class ConnectingLineCorner : IPathGenerator
|
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);
|
return PathGenerators.Corner(_, link, route, source, target);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class ConnectingLineSmooth : IPathGenerator
|
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);
|
return PathGenerators.Smooth(_, link, route, source, target);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class ConnectingLineStraight : IPathGenerator
|
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);
|
return PathGenerators.Straight(_, link, route, source, target);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public interface IPathGenerator
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public static partial class PathGenerators
|
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);
|
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]);
|
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(
|
var middle = GetMiddlePoints(
|
||||||
link.SourceConnectorInfo.MiddlePosition,
|
link.SourceConnectorInfo.MiddlePosition,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public static partial class PathGenerators
|
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);
|
route = ConcatRouteAndSourceAndTarget(route, source, target);
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
|
|
||||||
private const int const_margin = 20;
|
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;
|
var sourceInnerPoint = link.SourceConnectorInfo.IsInnerPoint;
|
||||||
PointBase sourcePoint = link.SourceConnectorInfo.MiddlePosition;
|
PointBase sourcePoint = link.SourceConnectorInfo.MiddlePosition;
|
||||||
@@ -240,7 +240,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
return linePoints.ToArray();
|
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;
|
var sourceInnerPoint = link.SourceConnectorInfo.IsInnerPoint;
|
||||||
PointBase sourcePoint = link.SourceConnectorInfo.MiddlePosition;
|
PointBase sourcePoint = link.SourceConnectorInfo.MiddlePosition;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
private const double _margin = 125;
|
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);
|
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]);
|
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 sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowSize);
|
||||||
double targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowSize);
|
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]);
|
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)
|
if (link.IsPortless)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public static partial class PathGenerators
|
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);
|
route = ConcatRouteAndSourceAndTarget(route, source, target);
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DoShift(PointBase[] points, ConnectorViewModel link)
|
private static void DoShift(PointBase[] points, ConnectionViewModel link)
|
||||||
{
|
{
|
||||||
double left = link.Area.Left;
|
double left = link.Area.Left;
|
||||||
double top = link.Area.Top;
|
double top = link.Area.Top;
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public interface IRouter
|
public interface IRouter
|
||||||
{
|
{
|
||||||
PointBase[] Get(IDiagramViewModel _, ConnectorViewModel link);
|
PointBase[] Get(IDiagramViewModel _, ConnectionViewModel link);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class RouterNormal : IRouter
|
public class RouterNormal : IRouter
|
||||||
{
|
{
|
||||||
public PointBase[] Get(IDiagramViewModel _, ConnectorViewModel link)
|
public PointBase[] Get(IDiagramViewModel _, ConnectionViewModel link)
|
||||||
{
|
{
|
||||||
return Routers.Normal(_, link);
|
return Routers.Normal(_, link);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class RouterOrthogonal : IRouter
|
public class RouterOrthogonal : IRouter
|
||||||
{
|
{
|
||||||
public PointBase[] Get(IDiagramViewModel _, ConnectorViewModel link)
|
public PointBase[] Get(IDiagramViewModel _, ConnectionViewModel link)
|
||||||
{
|
{
|
||||||
return Routers.Orthogonal(_, link);
|
return Routers.Orthogonal(_, link);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public static partial class Routers
|
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();
|
return link.Vertices.Select(v => v.MiddlePosition).ToArray();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public static partial class Routers
|
public static partial class Routers
|
||||||
{
|
{
|
||||||
public static PointBase[] Orthogonal(IDiagramViewModel _, ConnectorViewModel link)
|
public static PointBase[] Orthogonal(IDiagramViewModel _, ConnectionViewModel link)
|
||||||
{
|
{
|
||||||
if (link.IsPortless)
|
if (link.IsPortless)
|
||||||
throw new Exception("Orthogonal router doesn't work with portless links yet");
|
throw new Exception("Orthogonal router doesn't work with portless links yet");
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
return (Style)itemsControl.FindResource("designerItemStyle");
|
return (Style)itemsControl.FindResource("designerItemStyle");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item is ConnectorViewModel)
|
if (item is ConnectionViewModel)
|
||||||
{
|
{
|
||||||
return (Style)itemsControl.FindResource("connectorItemStyle");
|
return (Style)itemsControl.FindResource("connectorItemStyle");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
|
|
||||||
private void LineControl_Unloaded(object sender, RoutedEventArgs e)
|
private void LineControl_Unloaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (this.DataContext is ConnectorViewModel connector)
|
if (this.DataContext is ConnectionViewModel connector)
|
||||||
{
|
{
|
||||||
connector.PropertyChanged -= Connector_PropertyChanged;
|
connector.PropertyChanged -= Connector_PropertyChanged;
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
|
|
||||||
private async void PathAnimation_Loaded(object sender, RoutedEventArgs e)
|
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;
|
||||||
connector.PropertyChanged += Connector_PropertyChanged;
|
connector.PropertyChanged += Connector_PropertyChanged;
|
||||||
@@ -70,8 +70,8 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
switch (e.PropertyName)
|
switch (e.PropertyName)
|
||||||
{
|
{
|
||||||
case nameof(ConnectorViewModel.LineAnimation):
|
case nameof(ConnectionViewModel.LineAnimation):
|
||||||
case nameof(ConnectorViewModel.PathGeneratorResult):
|
case nameof(ConnectionViewModel.PathGeneratorResult):
|
||||||
await DoAnimation();
|
await DoAnimation();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
|
|
||||||
private async Task DoAnimation()
|
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);
|
await System.Threading.Tasks.Task.Delay(100);
|
||||||
switch (connector.LineAnimation)
|
switch (connector.LineAnimation)
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ using SvgPathProperties;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramDesigner
|
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;
|
Root = root;
|
||||||
PathMode = drawMode.ToString();
|
PathMode = drawMode.ToString();
|
||||||
@@ -23,16 +23,15 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
Init(sourceConnectorInfo, sinkConnectorInfo);
|
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;
|
PathMode = designer.PathMode;
|
||||||
RouterMode = designer.RouterMode;
|
RouterMode = designer.RouterMode;
|
||||||
|
|
||||||
Init(sourceConnectorInfo, sinkConnectorInfo);
|
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);
|
AddLabelCommand = new SimpleCommand(AddLabel);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
|
||||||
{
|
{
|
||||||
ConnectionItem designer = designerbase as ConnectionItem;
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
Vertices = new ObservableCollection<ConnectorVertexModel>(designer.Vertices.Select(p => new ConnectorVertexModel(this, new PointBase(p.X, p.Y))));
|
|
||||||
|
|
||||||
|
if (designerbase is ConnectionItem designer)
|
||||||
|
{
|
||||||
|
Vertices = new ObservableCollection<ConnectorVertexModel>(designer.Vertices.Select(p => new ConnectorVertexModel(this.Root, this, designer)));
|
||||||
|
Labels = new ObservableCollection<ConnectorLabelModel>(designer.Labels.Select(p => new ConnectorLabelModel(this.Root, this, designer)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SelectableItemBase ToXmlObject()
|
public override SelectableItemBase ToXmlObject()
|
||||||
@@ -364,11 +367,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public PartCreatedConnectionInfo SinkConnectorInfoPart
|
public PartCreatedConnectorInfo SinkConnectorInfoPart
|
||||||
{
|
{
|
||||||
get
|
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)
|
private void ConnectorViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
{
|
{
|
||||||
if (sender is ConnectorViewModel)
|
if (sender is ConnectionViewModel)
|
||||||
{
|
{
|
||||||
switch (e.PropertyName)
|
switch (e.PropertyName)
|
||||||
{
|
{
|
||||||
@@ -15,6 +15,16 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
this.Orientation = orientation;
|
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()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
base.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 属性
|
#region 属性
|
||||||
public virtual PointBase Position
|
public virtual PointBase Position
|
||||||
{
|
{
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using AIStudio.Wpf.DiagramDesigner.Geometrys;
|
using AIStudio.Wpf.DiagramDesigner.Geometrys;
|
||||||
using SvgPathProperties;
|
using SvgPathProperties;
|
||||||
|
|
||||||
@@ -6,7 +7,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class ConnectorLabelModel : ConnectorPointModel, ISelectable
|
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;
|
Parent = connector;
|
||||||
Text = content;
|
Text = content;
|
||||||
@@ -14,6 +15,16 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
Offset = offset ?? new PointBase();
|
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()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
base.Init();
|
base.Init();
|
||||||
@@ -21,12 +32,33 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
DeleteLabelCommand = new SimpleCommand(DeleteLabel);
|
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 属性
|
#region 属性
|
||||||
public ConnectorViewModel Connector
|
public ConnectionViewModel Connector
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Parent as ConnectorViewModel;
|
return Parent as ConnectionViewModel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,6 +27,16 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
Y = y;
|
Y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ConnectorPointModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConnectorPointModel(IDiagramViewModel root, string json) : base(root, json)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
base.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);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 中间X
|
/// 中间X
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1,16 +1,27 @@
|
|||||||
using AIStudio.Wpf.DiagramDesigner.Geometrys;
|
using System;
|
||||||
|
using AIStudio.Wpf.DiagramDesigner.Geometrys;
|
||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramDesigner
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
{
|
{
|
||||||
public class ConnectorVertexModel : ConnectorPointModel
|
public class ConnectorVertexModel : ConnectorPointModel
|
||||||
{
|
{
|
||||||
public ConnectorVertexModel(ConnectorViewModel connector, PointBase? position = null)
|
public ConnectorVertexModel(ConnectionViewModel connector, PointBase? position = null)
|
||||||
{
|
{
|
||||||
Parent = connector;
|
Parent = connector;
|
||||||
X = position?.X ?? 0;
|
X = position?.X ?? 0;
|
||||||
Y = position?.Y ?? 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()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
base.Init();
|
base.Init();
|
||||||
@@ -22,13 +33,28 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
base.LoadDesignerItemViewModel(root, designerbase);
|
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
|
get
|
||||||
{
|
{
|
||||||
return Parent as ConnectorViewModel;
|
return Parent as ConnectionViewModel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9,6 +9,70 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class FullyCreatedConnectorInfo : ConnectorInfoBase
|
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<CinchMenuItem>();
|
||||||
|
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
|
public override PointBase Position
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -18,62 +82,14 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<CinchMenuItem> menuOptions;
|
private List<CinchMenuItem> menuOptions;
|
||||||
|
public IEnumerable<CinchMenuItem> MenuOptions
|
||||||
public FullyCreatedConnectorInfo(DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, ValueTypePoint valueTypePoint = 0)
|
|
||||||
: base(orientation)
|
|
||||||
{
|
{
|
||||||
this.DataItem = dataItem;
|
get
|
||||||
this.IsInnerPoint = isInnerPoint;
|
|
||||||
this.ValueTypePoint = valueTypePoint;
|
|
||||||
|
|
||||||
menuOptions = new List<CinchMenuItem>();
|
|
||||||
MenuItemCommand = new SimpleCommand(ExecuteMenuItemCommand);
|
|
||||||
DeleteCommand = new SimpleCommand(ExecuteDeleteCommand);
|
|
||||||
if (IsInnerPoint == true)
|
|
||||||
{
|
{
|
||||||
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
|
public DesignerItemViewModelBase DataItem
|
||||||
{
|
{
|
||||||
get; private set;
|
get; private set;
|
||||||
@@ -148,7 +164,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
SetProperty(ref _style, value);
|
SetProperty(ref _style, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 方法
|
||||||
public SimpleCommand DeleteCommand
|
public SimpleCommand DeleteCommand
|
||||||
{
|
{
|
||||||
get; private set;
|
get; private set;
|
||||||
@@ -157,13 +175,45 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
get; private set;
|
get; private set;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
public IEnumerable<CinchMenuItem> MenuOptions
|
public void ExecuteMenuItemCommand(object arg)
|
||||||
{
|
{
|
||||||
get
|
Orientation = (ConnectorOrientation)arg;
|
||||||
{
|
}
|
||||||
return menuOptions;
|
|
||||||
}
|
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()
|
public double GetXRatioFromConnector()
|
||||||
@@ -7,7 +7,7 @@ using AIStudio.Wpf.DiagramDesigner.Geometrys;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramDesigner
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
{
|
{
|
||||||
public class PartCreatedConnectionInfo : ConnectorInfoBase
|
public class PartCreatedConnectorInfo : ConnectorInfoBase
|
||||||
{
|
{
|
||||||
private PointBase position;
|
private PointBase position;
|
||||||
public override 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);
|
this.position = new PointBase(X, Y);
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
ShapeDefiner = Shapes.Rectangle;
|
ShapeDefiner = Shapes.Rectangle;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DesignerItemViewModelBase(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public DesignerItemViewModelBase(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
ShapeDefiner = Shapes.Rectangle;
|
ShapeDefiner = Shapes.Rectangle;
|
||||||
}
|
}
|
||||||
@@ -39,16 +39,17 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
base.LoadDesignerItemViewModel(root, designerbase);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
DesignerItemBase designer = designerbase as DesignerItemBase;
|
if (designerbase is DesignerItemBase designer)
|
||||||
|
{
|
||||||
this.Left = designer.Left;
|
this.Left = designer.Left;
|
||||||
this.Top = designer.Top;
|
this.Top = designer.Top;
|
||||||
this.Angle = designer.Angle;
|
this.Angle = designer.Angle;
|
||||||
this.ScaleX = designer.ScaleX;
|
this.ScaleX = designer.ScaleX;
|
||||||
this.ScaleY = designer.ScaleY;
|
this.ScaleY = designer.ScaleY;
|
||||||
this.ItemWidth = designer.ItemWidth;
|
this.ItemWidth = designer.ItemWidth;
|
||||||
this.ItemHeight = designer.ItemHeight;
|
this.ItemHeight = designer.ItemHeight;
|
||||||
this.Icon = designer.Icon;
|
this.Icon = designer.Icon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SelectableItemBase ToXmlObject()
|
public override SelectableItemBase ToXmlObject()
|
||||||
|
|||||||
@@ -1361,10 +1361,10 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
List<DesignerItemViewModelBase> selectedDesignerItems =
|
List<DesignerItemViewModelBase> selectedDesignerItems =
|
||||||
SelectedItems.OfType<DesignerItemViewModelBase>().ToList();
|
SelectedItems.OfType<DesignerItemViewModelBase>().ToList();
|
||||||
|
|
||||||
List<ConnectorViewModel> selectedConnections =
|
List<ConnectionViewModel> selectedConnections =
|
||||||
SelectedItems.OfType<ConnectorViewModel>().ToList();
|
SelectedItems.OfType<ConnectionViewModel>().ToList();
|
||||||
|
|
||||||
foreach (ConnectorViewModel connection in Items.OfType<ConnectorViewModel>())
|
foreach (ConnectionViewModel connection in Items.OfType<ConnectionViewModel>())
|
||||||
{
|
{
|
||||||
if (!selectedConnections.Contains(connection))
|
if (!selectedConnections.Contains(connection))
|
||||||
{
|
{
|
||||||
@@ -1458,7 +1458,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
ConnectorOrientation sinkConnectorOrientation = connectionItem.SinkOrientation;
|
ConnectorOrientation sinkConnectorOrientation = connectionItem.SinkOrientation;
|
||||||
FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connectionItem.Id, sinkItem, sinkConnectorOrientation, connectionItem.SinkXRatio, connectionItem.SinkYRatio, connectionItem.SinkInnerPoint);
|
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);
|
connectors.Add(connectionVM);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1537,7 +1537,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
List<SelectableDesignerItemViewModelBase> itemsToRemove = SelectedItems.OfType<SelectableDesignerItemViewModelBase>().ToList();
|
List<SelectableDesignerItemViewModelBase> itemsToRemove = SelectedItems.OfType<SelectableDesignerItemViewModelBase>().ToList();
|
||||||
List<SelectableDesignerItemViewModelBase> connectionsToAlsoRemove = new List<SelectableDesignerItemViewModelBase>();
|
List<SelectableDesignerItemViewModelBase> connectionsToAlsoRemove = new List<SelectableDesignerItemViewModelBase>();
|
||||||
|
|
||||||
foreach (var connector in Items.OfType<ConnectorViewModel>())
|
foreach (var connector in Items.OfType<ConnectionViewModel>())
|
||||||
{
|
{
|
||||||
if (ItemsToDeleteHasConnector(itemsToRemove, connector.SourceConnectorInfo))
|
if (ItemsToDeleteHasConnector(itemsToRemove, connector.SourceConnectorInfo))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
MediaDesignerItem designer = designerbase as MediaDesignerItem;
|
if (designerbase is MediaDesignerItem designer)
|
||||||
|
|
||||||
this.Icon = designer.Icon;
|
|
||||||
foreach (var connector in designer.Connectors)
|
|
||||||
{
|
{
|
||||||
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true);
|
this.Icon = designer.Icon;
|
||||||
fullyCreatedConnectorInfo.XRatio = connector.XRatio;
|
foreach (var connector in designer.Connectors)
|
||||||
fullyCreatedConnectorInfo.YRatio = connector.YRatio;
|
{
|
||||||
fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth;
|
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
|
||||||
fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight;
|
AddConnector(fullyCreatedConnectorInfo);
|
||||||
AddConnector(fullyCreatedConnectorInfo);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
ImageDesignerItem designer = designerbase as ImageDesignerItem;
|
if (designerbase is ImageDesignerItem designer)
|
||||||
|
|
||||||
this.Icon = designer.Icon;
|
|
||||||
Suffix = Path.GetExtension(this.Icon).ToLower();
|
|
||||||
foreach (var connector in designer.Connectors)
|
|
||||||
{
|
{
|
||||||
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true);
|
this.Icon = designer.Icon;
|
||||||
fullyCreatedConnectorInfo.XRatio = connector.XRatio;
|
Suffix = Path.GetExtension(this.Icon).ToLower();
|
||||||
fullyCreatedConnectorInfo.YRatio = connector.YRatio;
|
foreach (var connector in designer.Connectors)
|
||||||
fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth;
|
{
|
||||||
fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight;
|
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
|
||||||
AddConnector(fullyCreatedConnectorInfo);
|
AddConnector(fullyCreatedConnectorInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
|
|
||||||
this.ClearConnectors();
|
this.ClearConnectors();
|
||||||
this.AddConnector(new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true));
|
this.AddConnector(new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true));
|
||||||
|
|
||||||
ItemWidth = 5;
|
ItemWidth = 5;
|
||||||
ItemHeight = 5;
|
ItemHeight = 5;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
BuildMenuOptions();
|
BuildMenuOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
public LogicalGateItemViewModelBase(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
|
public LogicalGateItemViewModelBase(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
BuildMenuOptions();
|
BuildMenuOptions();
|
||||||
}
|
}
|
||||||
@@ -141,37 +141,31 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
base.LoadDesignerItemViewModel(root, designerbase);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
|
if (designerbase is LogicalGateDesignerItemBase designer)
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true);
|
this.LogicalType = designer.LogicalType;
|
||||||
fullyCreatedConnectorInfo.XRatio = connector.XRatio;
|
this.OrderNumber = designer.OrderNumber;
|
||||||
fullyCreatedConnectorInfo.YRatio = connector.YRatio;
|
this.Value = designer.Value;
|
||||||
fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth;
|
this.IsEnabled = designer.IsEnabled;
|
||||||
fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight;
|
|
||||||
fullyCreatedConnectorInfo.Orientation = connector.Orientation;
|
|
||||||
fullyCreatedConnectorInfo.IsInnerPoint = connector.IsInnerPoint;
|
|
||||||
fullyCreatedConnectorInfo.ValueTypePoint = connector.ValueTypePoint;
|
|
||||||
fullyCreatedConnectorInfo.ConnectorValue = connector.ConnectorValue;
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
base.LoadDesignerItemViewModel(parent, designerbase);
|
||||||
|
|
||||||
MediaDesignerItem designer = designerbase as MediaDesignerItem;
|
if (designerbase is MediaDesignerItem designer)
|
||||||
|
|
||||||
this.Icon = designer.Icon;
|
|
||||||
|
|
||||||
foreach (var connector in designer.Connectors)
|
|
||||||
{
|
{
|
||||||
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true);
|
this.Icon = designer.Icon;
|
||||||
fullyCreatedConnectorInfo.XRatio = connector.XRatio;
|
|
||||||
fullyCreatedConnectorInfo.YRatio = connector.YRatio;
|
foreach (var connector in designer.Connectors)
|
||||||
fullyCreatedConnectorInfo.ConnectorWidth = connector.ConnectorWidth;
|
{
|
||||||
fullyCreatedConnectorInfo.ConnectorHeight = connector.ConnectorHeight;
|
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
|
||||||
AddConnector(fullyCreatedConnectorInfo);
|
AddConnector(fullyCreatedConnectorInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
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()
|
public void AutoSize()
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
PersistDesignerItem designer = designerbase as PersistDesignerItem;
|
if (designerbase is PersistDesignerItem designer)
|
||||||
this.HostUrl = designer.HostUrl;
|
{
|
||||||
|
this.HostUrl = designer.HostUrl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
SettingsDesignerItem designer = designerbase as SettingsDesignerItem;
|
if (designerbase is SettingsDesignerItem designer)
|
||||||
this.Setting = designer.Setting;
|
{
|
||||||
|
this.Setting = designer.Setting;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String Setting{ get; set; }
|
public String Setting{ get; set; }
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ namespace AIStudio.Wpf.Flowchart
|
|||||||
/// <param name="json"></param>
|
/// <param name="json"></param>
|
||||||
/// <param name="id"></param>
|
/// <param name="id"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static void InitData(List<FlowNode> oASteps, List<ConnectorViewModel> connectors, IDiagramViewModel viewModel)
|
public static void InitData(List<FlowNode> oASteps, List<ConnectionViewModel> connectors, IDiagramViewModel viewModel)
|
||||||
{
|
{
|
||||||
foreach (var edge in connectors)
|
foreach (var edge in connectors)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace AIStudio.Wpf.Flowchart.Models
|
|||||||
{
|
{
|
||||||
var json = JsonConvert.SerializeObject(new {
|
var json = JsonConvert.SerializeObject(new {
|
||||||
Nodes = diagram.Items.OfType<DesignerItemViewModelBase>().Select(p => p.ToDiagramNode()).Where(p => p != null),
|
Nodes = diagram.Items.OfType<DesignerItemViewModelBase>().Select(p => p.ToDiagramNode()).Where(p => p != null),
|
||||||
Links = diagram.Items.OfType<ConnectorViewModel>().Select(p => p.ToDiagramLink()).Where(p => p != null)
|
Links = diagram.Items.OfType<ConnectionViewModel>().Select(p => p.ToDiagramLink()).Where(p => p != null)
|
||||||
}, new JsonSerializerSettings
|
}, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
|
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
|
||||||
@@ -65,7 +65,7 @@ namespace AIStudio.Wpf.Flowchart.Models
|
|||||||
return diagramNode;
|
return diagramNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DiagramLink ToDiagramLink(this ConnectorViewModel linkModel)
|
public static DiagramLink ToDiagramLink(this ConnectionViewModel linkModel)
|
||||||
{
|
{
|
||||||
DiagramLink diagramLink = new DiagramLink();
|
DiagramLink diagramLink = new DiagramLink();
|
||||||
|
|
||||||
@@ -221,11 +221,11 @@ namespace AIStudio.Wpf.Flowchart.Models
|
|||||||
return nodeModel;
|
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 sourceConnectorInfo = sourceNode.Connectors.FirstOrDefault(p => p.Orientation.ToString() == diagramLink.SourcePortAlignment);
|
||||||
FullyCreatedConnectorInfo sinkConnectorInfo = targetNode.Connectors.FirstOrDefault(p => p.Orientation.ToString() == diagramLink.TargetPortAlignment);
|
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.Id = new Guid(diagramLink.Id);
|
||||||
linkModel.ColorViewModel.LineColor.Color = SerializeHelper.DeserializeColor(diagramLink.Color);
|
linkModel.ColorViewModel.LineColor.Color = SerializeHelper.DeserializeColor(diagramLink.Color);
|
||||||
linkModel.ColorViewModel.LineWidth = diagramLink.Width;
|
linkModel.ColorViewModel.LineWidth = diagramLink.Width;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
|
|||||||
Text = Kind.GetDescription();
|
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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
FlowNodeDesignerItem designer = designerbase as FlowNodeDesignerItem;
|
if (designerbase is FlowNodeDesignerItem designer)
|
||||||
this.Color = designer.Color;
|
|
||||||
this.Kind = designer.Kind;
|
|
||||||
this.StateImage = designer.StateImage;
|
|
||||||
|
|
||||||
if (this is MiddleFlowNode middle)
|
|
||||||
{
|
{
|
||||||
middle.UserIds = designer.UserIds;
|
this.Color = designer.Color;
|
||||||
middle.RoleIds = designer.RoleIds;
|
this.Kind = designer.Kind;
|
||||||
middle.ActType = designer.ActType;
|
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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
|
|||||||
ColorViewModel.FillColor.Color = Colors.Orange;
|
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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
|
if (designerbase is LogicalGateDesignerItemBase designer)
|
||||||
this.Value = designer.Value;
|
{
|
||||||
|
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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -314,7 +316,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
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;
|
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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
|
if (designerbase is LogicalGateDesignerItemBase designer)
|
||||||
this.Value = designer.Value;
|
|
||||||
LinkPoint = LogicalService.LinkPoint.FirstOrDefault(p => p.Id.ToString() == designer.Icon); //不想新增字段了,就用这个Icon保存自定义测点的Id吧。
|
|
||||||
if (LinkPoint != null)
|
|
||||||
{
|
{
|
||||||
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;
|
private LinkPoint _linkPoint;
|
||||||
public LinkPoint LinkPoint
|
public LinkPoint LinkPoint
|
||||||
{
|
{
|
||||||
get { return _linkPoint; }
|
get
|
||||||
|
{
|
||||||
|
return _linkPoint;
|
||||||
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (SetProperty(ref _linkPoint, value))
|
if (SetProperty(ref _linkPoint, value))
|
||||||
@@ -782,7 +789,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
|
|||||||
ItemHeight = 28;
|
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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
|
if (designerbase is LogicalGateDesignerItemBase designer)
|
||||||
this.Value = designer.Value;
|
|
||||||
LinkPoint = LogicalService.LinkPoint.FirstOrDefault(p => p.Id.ToString() == designer.Icon); //不想新增字段了,就用这个Icon保存自定义测点的Id吧。
|
|
||||||
if (LinkPoint != null)
|
|
||||||
{
|
{
|
||||||
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;
|
private LinkPoint _linkPoint;
|
||||||
public LinkPoint LinkPoint
|
public LinkPoint LinkPoint
|
||||||
{
|
{
|
||||||
get { return _linkPoint; }
|
get
|
||||||
|
{
|
||||||
|
return _linkPoint;
|
||||||
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (SetProperty(ref _linkPoint, value))
|
if (SetProperty(ref _linkPoint, value))
|
||||||
@@ -843,7 +856,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
|
|||||||
BuildMenuOptions();
|
BuildMenuOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
public TimerDesignerItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
|
public TimerDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
BuildMenuOptions();
|
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()
|
private void BuildMenuOptions()
|
||||||
{
|
{
|
||||||
menuOptions = new ObservableCollection<CinchMenuItem>();
|
menuOptions = new ObservableCollection<CinchMenuItem>();
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ namespace AIStudio.Wpf.SFC.Models
|
|||||||
}
|
}
|
||||||
public SFCNodeDesignerItem(SFCNode item) : base(item)
|
public SFCNodeDesignerItem(SFCNode item) : base(item)
|
||||||
{
|
{
|
||||||
this.Connectors = new List<ConnectorItem>();
|
this.Connectors = new List<FullyCreatedConnectorInfoItem>();
|
||||||
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
foreach (var fullyCreatedConnectorInfo in item.Connectors)
|
||||||
{
|
{
|
||||||
ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
|
FullyCreatedConnectorInfoItem connector = new FullyCreatedConnectorInfoItem(fullyCreatedConnectorInfo);
|
||||||
|
|
||||||
this.Connectors.Add(connector);
|
this.Connectors.Add(connector);
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@ namespace AIStudio.Wpf.SFC.Models
|
|||||||
}
|
}
|
||||||
|
|
||||||
[XmlArray]
|
[XmlArray]
|
||||||
public List<ConnectorItem> Connectors { get; set; }
|
public List<FullyCreatedConnectorInfoItem> Connectors { get; set; }
|
||||||
|
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
public SFCNodeKinds Kind { get; set; }
|
public SFCNodeKinds Kind { get; set; }
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace AIStudio.Wpf.SFC
|
|||||||
/// <param name="json"></param>
|
/// <param name="json"></param>
|
||||||
/// <param name="id"></param>
|
/// <param name="id"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static void InitData(List<SFCNode> nodes, List<ConnectorViewModel> connectors, IDiagramViewModel viewModel)
|
public static void InitData(List<SFCNode> nodes, List<ConnectionViewModel> connectors, IDiagramViewModel viewModel)
|
||||||
{
|
{
|
||||||
var start = nodes.FirstOrDefault(p => p.Kind == SFCNodeKinds.Start);
|
var start = nodes.FirstOrDefault(p => p.Kind == SFCNodeKinds.Start);
|
||||||
if (start == null)
|
if (start == null)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddLeftInput(null);
|
ExecuteAddLeftInput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SFCActionNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public SFCActionNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddBottomOutput(null);
|
ExecuteAddBottomOutput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SFCCOBeginNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public SFCCOBeginNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddTopInput(null);
|
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;
|
connector.XRatio = (40 + Output.Count * 200) / ItemWidth;
|
||||||
Output.Add(Output.Count, connector);
|
Output.Add(Output.Count, connector);
|
||||||
|
|
||||||
|
|
||||||
AddConnector(connector);
|
AddConnector(connector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddBottomOutput(null);
|
ExecuteAddBottomOutput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SFCConditionNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public SFCConditionNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ItemHeight = 40;
|
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);
|
base.LoadDesignerItemViewModel(root, designerbase);
|
||||||
|
|
||||||
SFCNodeDesignerItem designer = designerbase as SFCNodeDesignerItem;
|
if (designerbase is SFCNodeDesignerItem designer)
|
||||||
this.Kind = designer.Kind;
|
|
||||||
this.Expression = designer.Expression;
|
|
||||||
|
|
||||||
foreach (var connector in designer.Connectors)
|
|
||||||
{
|
{
|
||||||
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this, connector.Orientation, true);
|
this.Kind = designer.Kind;
|
||||||
fullyCreatedConnectorInfo.XRatio = connector.XRatio;
|
this.Expression = designer.Expression;
|
||||||
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;
|
|
||||||
|
|
||||||
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)
|
if (this is SFCActionNode actionNode)
|
||||||
{
|
{
|
||||||
actionNode.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
actionNode.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||||
}
|
}
|
||||||
else if (this is SFCConditionNode sFCConditionNode)
|
else if (this is SFCConditionNode sFCConditionNode)
|
||||||
{
|
{
|
||||||
sFCConditionNode.LinkPoint = new System.Collections.ObjectModel.ObservableCollection<LinkPoint>(designer.LinkPoints);
|
sFCConditionNode.LinkPoint = new System.Collections.ObjectModel.ObservableCollection<LinkPoint>(designer.LinkPoints);
|
||||||
}
|
}
|
||||||
else if (this is Simulate_SolenoidViewModel simulate_SolenoidViewModel)
|
else if (this is Simulate_SolenoidViewModel simulate_SolenoidViewModel)
|
||||||
{
|
{
|
||||||
simulate_SolenoidViewModel.DILinkPoint = designer.LinkPoints.FirstOrDefault();
|
simulate_SolenoidViewModel.DILinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||||
simulate_SolenoidViewModel.DOLinkPoint = designer.LinkPoints.LastOrDefault();
|
simulate_SolenoidViewModel.DOLinkPoint = designer.LinkPoints.LastOrDefault();
|
||||||
}
|
}
|
||||||
else if (this is Simulate_StartViewModel simulate_StartViewModel)
|
else if (this is Simulate_StartViewModel simulate_StartViewModel)
|
||||||
{
|
{
|
||||||
simulate_StartViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
simulate_StartViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||||
}
|
}
|
||||||
else if (this is Simulate_TankViewModel simulate_TankViewModel)
|
else if (this is Simulate_TankViewModel simulate_TankViewModel)
|
||||||
{
|
{
|
||||||
simulate_TankViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
simulate_TankViewModel.LinkPoint = designer.LinkPoints.FirstOrDefault();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddActionOutput(null);
|
ExecuteAddActionOutput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SFCNodeNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public SFCNodeNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddBottomOutput(null);
|
ExecuteAddBottomOutput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SFCStartNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public SFCStartNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ItemHeight = 260;
|
ItemHeight = 260;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Simulate_ListViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public Simulate_ListViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddRightOutput(null);
|
ExecuteAddRightOutput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Simulate_SolenoidViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public Simulate_SolenoidViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddRightOutput(null);
|
ExecuteAddRightOutput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Simulate_StartViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public Simulate_StartViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
|
|||||||
ExecuteAddRightOutput(null);
|
ExecuteAddRightOutput(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Simulate_TankViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
|
public Simulate_TankViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user