This commit is contained in:
艾竹
2023-04-22 21:06:52 +08:00
parent dfc299689a
commit 21467e26f5
4 changed files with 446 additions and 79 deletions

View File

@@ -8,7 +8,7 @@
<PackageIcon>A.png</PackageIcon>
<PackageIconUrl />
<NeutralLanguage />
<Version>1.0.9</Version>
<Version>1.1.0</Version>
<Description>一个Wpf的Diagram控件基础库</Description>
</PropertyGroup>

View File

@@ -29,5 +29,14 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
this.DialogResult = true;
this.Close();
}
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
if (this.DataContext is IDisposable disposable)
{
disposable.Dispose();
}
}
}
}

View File

@@ -21,6 +21,15 @@ namespace AIStudio.Wpf.DiagramDesigner
get; private set;
}
public virtual bool EnableAddInput
{
get;
} = false;
public virtual bool EnableAddOutput
{
get;
} = false;
public LogicalGateItemViewModelBase(LogicalType logicalType) : this(null, logicalType)
{
@@ -30,70 +39,16 @@ namespace AIStudio.Wpf.DiagramDesigner
public LogicalGateItemViewModelBase(IDiagramViewModel root, LogicalType logicalType) : base(root)
{
this.LogicalType = logicalType;
if (this.LogicalType == LogicalType.Input)
{
ClearConnectors();
ExecuteAddOutput(null);
}
else if (this.LogicalType == LogicalType.Output)
{
ClearConnectors();
ExecuteAddInput(null);
}
else if (this.LogicalType == LogicalType.Constant)
{
ClearConnectors();
ExecuteAddOutput(null);
}
else if (this.LogicalType == LogicalType.Time)
{
ClearConnectors();
ExecuteAddOutput(null);
}
else if (this.LogicalType == LogicalType.None)
{
ClearConnectors();
ExecuteAddOutput(null);
}
else if (this.LogicalType == LogicalType.NOT)
{
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
else if (this.LogicalType == LogicalType.SEL)
{
ClearConnectors();
ExecuteAddInput(null, 0);
ExecuteAddInput(null, 1);
ExecuteAddInput(null, 2);
ExecuteAddOutput(null, 0);
}
else if (this.LogicalType >= LogicalType.ABS && this.LogicalType <= LogicalType.EXPT)
{
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
else
{
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
BuildMenuOptions();
}
public LogicalGateItemViewModelBase(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
{
BuildMenuOptions();
}
public LogicalGateItemViewModelBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
BuildMenuOptions();
}
public override SelectableItemBase GetSerializableObject()
@@ -107,6 +62,7 @@ namespace AIStudio.Wpf.DiagramDesigner
ShowArrow = false;
AddInputCommand = new SimpleCommand(Command_Enable, para => ExecuteAddInput(para));
AddOutputCommand = new SimpleCommand(Command_Enable, para => ExecuteAddOutput(para));
BuildMenuOptions();
base.Init(root, initNew);
}
@@ -118,21 +74,8 @@ namespace AIStudio.Wpf.DiagramDesigner
private void BuildMenuOptions()
{
bool enAddInput = false;
bool enAddOutput = false;
if (LogicalType >= LogicalType.ADD && LogicalType <= LogicalType.AVE)
{
enAddInput = true;
enAddOutput = false;
}
else
{
enAddInput = false;
enAddOutput = false;
}
menuOptions = new ObservableCollection<CinchMenuItem>();
if (enAddInput == true)
if (EnableAddInput == true)
{
CinchMenuItem menuItem = new CinchMenuItem();
menuItem.Text = "添加输入";
@@ -140,7 +83,7 @@ namespace AIStudio.Wpf.DiagramDesigner
menuItem.CommandParameter = menuItem;
menuOptions.Add(menuItem);
}
if (enAddOutput == true)
if (EnableAddOutput == true)
{
CinchMenuItem menuItem = new CinchMenuItem();
menuItem.Text = "添加输出";

View File

@@ -100,6 +100,26 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override bool EnableAddInput
{
get;
} = true;
public override bool EnableAddOutput
{
get;
} = false;
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -129,6 +149,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -160,6 +190,26 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override bool EnableAddInput
{
get;
} = true;
public override bool EnableAddOutput
{
get;
} = false;
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -199,6 +249,26 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override bool EnableAddInput
{
get;
} = true;
public override bool EnableAddOutput
{
get;
} = false;
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -235,6 +305,26 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override bool EnableAddInput
{
get;
} = true;
public override bool EnableAddOutput
{
get;
} = false;
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -266,6 +356,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -297,6 +397,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -328,6 +438,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -359,6 +479,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -390,6 +520,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -430,6 +569,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -461,6 +610,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -492,6 +651,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -523,6 +692,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -554,6 +733,17 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null, 0);
ExecuteAddInput(null, 1);
ExecuteAddInput(null, 2);
ExecuteAddOutput(null, 0);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -585,6 +775,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -616,6 +816,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -647,6 +857,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -678,6 +898,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -709,6 +939,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -739,6 +979,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -770,6 +1020,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -801,6 +1061,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -832,6 +1102,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -864,6 +1144,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -895,6 +1184,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -926,6 +1224,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -957,6 +1264,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -988,6 +1304,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1019,6 +1344,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1050,6 +1384,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1081,6 +1424,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1112,6 +1464,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1143,6 +1504,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1174,6 +1544,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1205,6 +1584,15 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
ExecuteAddOutput(null);
}
public override void CalculateOutput()
{
foreach (var output in Output)
@@ -1237,9 +1625,17 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddOutput(null);
}
public override void GetInput()
{
//无输入
//无输入
}
public override void CalculateOutput()
@@ -1305,6 +1701,14 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddOutput(null);
}
public override void GetInput()
{
//无输入
@@ -1387,6 +1791,14 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
}
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddInput(null);
}
public override void CalculateOutput()
{
var first = Input.Values.FirstOrDefault();
@@ -1451,6 +1863,9 @@ namespace AIStudio.Wpf.Logical.ViewModels
protected override void InitNew()
{
base.InitNew();
ClearConnectors();
ExecuteAddOutput(null);
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)