From aa8ab61e37622c866b5331aae824e61765e62316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Mon, 24 Apr 2023 22:43:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=80=E4=B8=8B=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=8B=B7=E8=B4=9D=EF=BC=8C=E6=88=91=E4=B9=9F=E4=B8=8D?= =?UTF-8?q?=E8=AE=B0=E5=BE=97=E4=B9=8B=E5=89=8D=E4=B8=BA=E5=95=A5=E8=BF=99?= =?UTF-8?q?=E6=A0=B7=E5=86=99=E4=BA=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Connector/LogicalConnectorInfo.cs | 11 ++++-- .../BaseViewModel/DiagramViewModel.cs | 38 ++++++++++--------- .../BaseViewModel/SelectableViewModelBase.cs | 2 +- .../LogicalGateItemViewModelBase.cs | 6 ++- 4 files changed, 34 insertions(+), 23 deletions(-) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs index 29b7203..9b92bbb 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/LogicalConnectorInfo.cs @@ -68,17 +68,22 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public ConnectorValueType _valueType; + public ConnectorValueType _connectorValueType; public ConnectorValueType ConnectorValueType { get { - return _valueType; + return _connectorValueType; } set { - SetProperty(ref _valueType, value); + SetProperty(ref _connectorValueType, value); } } + + public bool IsError + { + get;set; + } } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index 7cc9d68..13db7b9 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -1420,6 +1420,7 @@ namespace AIStudio.Wpf.DiagramDesigner if (parameter is SelectableDesignerItemViewModelBase ite) { ite.IsSelected = false; + ite.Dispose(); Items.Remove(ite); } else if (parameter is IEnumerable items) @@ -1427,6 +1428,7 @@ namespace AIStudio.Wpf.DiagramDesigner foreach (var item in items) { item.IsSelected = false; + item.Dispose(); Items.Remove(item); } } @@ -1451,18 +1453,12 @@ namespace AIStudio.Wpf.DiagramDesigner if (olditems.Any()) { DoCommandManager.DoNewCommand(this.ToString(), - () => { - foreach (var item in olditems) - { - Items.Remove(item); - } - }, - () => { - foreach (var item in olditems) - { - Items.Add(item); - } - }); + () => { + Remove(olditems); + }, + () => { + Add(olditems); + }); } } @@ -3040,27 +3036,33 @@ namespace AIStudio.Wpf.DiagramDesigner } else if (DiagramOption.ShortcutOption.Copy(e)) { - return Copy(null) != null; + CopyCommand.Execute(null); + return true; } else if (DiagramOption.ShortcutOption.Paste(e)) { - return Paste(null) != null; + PasteCommand.Execute(null); + return true; } else if (DiagramOption.ShortcutOption.Cut(e)) { - return Cut(null) != null; + CutCommand.Execute(null); + return true; } else if (DiagramOption.ShortcutOption.Undo(e)) { - return Undo(null); + UndoCommand.Execute(null); + return true; } else if (DiagramOption.ShortcutOption.Redo(e)) { - return Redo(null); + RedoCommand.Execute(null); + return true; } else if (DiagramOption.ShortcutOption.Delete(e)) { - return Delete(null) != null; + DeleteCommand.Execute(null); + return true; } else if (DiagramOption.ShortcutOption.LeftMove(e)) { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs index 336a23e..e8cb3ad 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs @@ -14,7 +14,7 @@ using Newtonsoft.Json; namespace AIStudio.Wpf.DiagramDesigner { - public abstract class SelectableViewModelBase : BindableBase, ISelectable + public abstract class SelectableViewModelBase : BindableBase, ISelectable, IDisposable { protected IDiagramServiceProvider _service { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs index ba8c988..989be5a 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/LogicalGateItemViewModelBase.cs @@ -303,7 +303,11 @@ namespace AIStudio.Wpf.DiagramDesigner { foreach (var output in Output) { - if (output.Value.ConnectorValueType == ConnectorValueType.Bool) + if (output.Value.IsError) + { + output.Value.ColorViewModel.FillColor.Color = Colors.Orange; + } + else if (output.Value.ConnectorValueType == ConnectorValueType.Bool) { if (output.Value.ConnectorValue == 0) {