From 3cece222b07ac485d41038efb760ea20b4f5dc2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Sun, 24 Nov 2024 21:46:31 +0800 Subject: [PATCH] xx --- .../Connector/ConnectorInfoBase.cs | 1 + .../Connector/LogicalConnectorInfo.cs | 1 + .../LogicalGateItemViewModelBase.cs | 36 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs index 2344143..44e81a9 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs @@ -11,6 +11,7 @@ namespace AIStudio.Wpf.DiagramDesigner { public abstract class ConnectorInfoBase : SelectableViewModelBase, IAttachTo { + public ConnectorInfoBase(ConnectorOrientation orientation) : this(null, orientation) { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs index 988f0b1..74e660d 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs @@ -44,6 +44,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } + private double _connectorValue; public double ConnectorValue { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs index 80c8833..fe5e6af 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs @@ -203,6 +203,26 @@ namespace AIStudio.Wpf.DiagramDesigner return connector; } + public virtual LogicalConnectorInfo ExecuteAddToInput(LogicalConnectorInfo connector) + { + if (Input.Values.Count >= 2) + { + this.ItemHeight = this.ItemHeight * (Input.Values.Count + 1) / Input.Values.Count; + } + connector.Orientation = ConnectorOrientation.Left; + connector.IsInnerPoint = true; + connector.IsPortless = false; + connector.XRatio = 0; + Input.Add(Input.Count, connector); + for (int i = 0; i < Input.Values.Count; i++) + { + Input[i].YRatio = (i + 1.0) / (Input.Values.Count + 1.0); + } + AddConnector(connector); + + return connector; + } + public virtual LogicalConnectorInfo ExecuteAddOutput(object parameter, int index = 0, string name = null) { LogicalConnectorInfo connector = new LogicalConnectorInfo(this, ConnectorOrientation.Right, true, false, ValueTypeOutput.Count > index ? ValueTypeOutput[index] : ValueTypeInput[0]); @@ -218,6 +238,22 @@ namespace AIStudio.Wpf.DiagramDesigner return connector; } + public virtual LogicalConnectorInfo ExecuteAddToOutput(LogicalConnectorInfo connector) + { + connector.Orientation = ConnectorOrientation.Right; + connector.IsInnerPoint = true; + connector.IsPortless = false; + connector.XRatio = 1; + Output.Add(Output.Count, connector); + for (int i = 0; i < Output.Values.Count; i++) + { + Output[i].YRatio = (i + 1.0) / (Output.Values.Count + 1.0); + } + AddConnector(connector); + + return connector; + } + public virtual List ValueTypeInput { get