From a5005ac083df45bdfd91f46f583de2f601128c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Tue, 24 Jan 2023 23:10:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs | 2 +- .../Models/PathToolBoxData.cs | 2 +- .../ViewModels/DiagramsViewModel.cs | 3 - .../ViewModels/FlowchartViewModel.cs | 2 +- .../ViewModels/SFCViewModel.cs | 2 +- .../Controls/DesignerCanvas.cs | 4 +- .../Connector/ConnectorInfoItemBase.cs | 4 + .../FullyCreatedConnectorInfoItem.cs | 4 + .../Serializables/SelectableItemBase.cs | 50 ++- .../Serializables/SerializableObject.cs | 2 +- .../BaseViewModel/ConnectionViewModel.cs | 4 +- .../Connector/ConnectorInfoBase.cs | 6 +- .../Connector/ConnectorLabelModel.cs | 6 +- .../Connector/ConnectorPointModel.cs | 6 +- .../Connector/ConnectorVertexModel.cs | 6 +- .../Connector/FullyCreatedConnectorInfo.cs | 6 +- .../DesignerItemViewModelBase.cs | 6 +- .../BaseViewModel/DiagramViewModel.cs | 392 +++++++++--------- .../SelectableDesignerItemViewModelBase.cs | 2 +- .../BaseViewModel/SelectableViewModelBase.cs | 25 +- .../ViewModels/IDiagramViewModel.cs | 4 +- .../SimpleViewModel/GifImageItemViewModel.cs | 6 +- .../SimpleViewModel/ImageItemViewModel.cs | 6 +- .../LogicalGateItemViewModelBase.cs | 6 +- .../SimpleViewModel/MediaItemViewModel.cs | 6 +- .../TextDesignerItemViewModel.cs | 4 +- .../SimpleViewModel/VideoItemViewModel.cs | 2 +- .../BarcodeDesignerItemViewModel.cs | 4 +- .../OutLineTextDesignerItemViewModel.cs | 2 +- .../ViewModels/PathItemViewModel.cs | 6 +- .../PersistDesignerItemViewModel.cs | 6 +- .../SettingsDesignerItemViewModel.cs | 6 +- .../ViewModels/SvgDesignerItemViewModel.cs | 2 +- AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs | 16 +- .../ViewModels/MiddleFlowNode.cs | 2 +- .../ViewModels/LogicalGateItemViewModel.cs | 82 ++-- AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs | 2 +- AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs | 2 +- AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs | 2 +- .../ViewModels/SFCConditionNode.cs | 2 +- AIStudio.Wpf.SFC/ViewModels/SFCNode.cs | 6 +- AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs | 2 +- AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs | 2 +- .../ViewModels/Simulate_ListViewModel.cs | 2 +- .../ViewModels/Simulate_SolenoidViewModel.cs | 2 +- .../ViewModels/Simulate_StartViewModel.cs | 2 +- .../ViewModels/Simulate_TankViewModel.cs | 2 +- 47 files changed, 387 insertions(+), 333 deletions(-) diff --git a/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs b/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs index e72204f..393b986 100644 --- a/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs +++ b/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs @@ -177,7 +177,7 @@ DesignerItems.OfType() public void AddItems(IEnumerable selectedDesignerItems) { - var items = selectedDesignerItems.OfType().Select(p => p.ToXmlObject()); + var items = selectedDesignerItems.OfType().Select(p => p.GetSerializableObject()); foreach (var item in items) { if (item is PersistDesignerItem persistDesignerItem) diff --git a/AIStudio.Wpf.DiagramApp/Models/PathToolBoxData.cs b/AIStudio.Wpf.DiagramApp/Models/PathToolBoxData.cs index f717f73..53d5cf2 100644 --- a/AIStudio.Wpf.DiagramApp/Models/PathToolBoxData.cs +++ b/AIStudio.Wpf.DiagramApp/Models/PathToolBoxData.cs @@ -49,7 +49,7 @@ namespace AIStudio.Wpf.DiagramApp.Models public DesignerItemToolBoxData(DesignerItemBase designerItemBase, string filename, Type type, double width = 32, double height = 32) : base(null, null, type, width, height) { Addition = designerItemBase; - DesignerItemViewModel = (DesignerItemViewModelBase)Activator.CreateInstance(type, null, designerItemBase); + DesignerItemViewModel = Activator.CreateInstance(type, null, designerItemBase) as DesignerItemViewModelBase; FileName = filename; } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs index fb3f2c5..9c8d6a4 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs @@ -113,9 +113,6 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels public DiagramType DiagramType { get; set; } - private double OffsetX = 10; - private double OffsetY = 10; - private ObservableCollection _diagramViewModels; public ObservableCollection DiagramViewModels { diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs index d04f6bf..f817837 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs @@ -102,7 +102,7 @@ namespace AIStudio.Wpf.Flowchart ConnectionViewModel connector10 = new ConnectionViewModel(coend.BottomConnector, end.TopConnector, _service.DrawModeViewModel.LineDrawMode, _service.DrawModeViewModel.LineRouterMode); DiagramViewModel.DirectAddItemCommand.Execute(connector10); - DiagramViewModel.ClearSelectedItems(); + DiagramViewModel.ClearSelectedItemsCommand.Execute(null); FlowchartService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs index 47528a6..eb2bf87 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs @@ -270,7 +270,7 @@ namespace AIStudio.Wpf.Flowchart DiagramViewModel.DirectAddItemCommand.Execute(conn8); #endregion - DiagramViewModel.ClearSelectedItems(); + DiagramViewModel.ClearSelectedItemsCommand.Execute(null); SFCService.InitData(DiagramViewModel.Items.OfType().ToList(), DiagramViewModel.Items.OfType().ToList(), DiagramViewModel); diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs index eb21236..2f07c50 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs @@ -479,11 +479,11 @@ namespace AIStudio.Wpf.DiagramDesigner DesignerItemViewModelBase itemBase = null; if (dragObject.DesignerItem != null) { - itemBase = (DesignerItemViewModelBase)Activator.CreateInstance(dragObject.ContentType, _viewModel, dragObject.DesignerItem); + itemBase = Activator.CreateInstance(dragObject.ContentType, _viewModel, dragObject.DesignerItem) as DesignerItemViewModelBase; } else { - itemBase = (DesignerItemViewModelBase)Activator.CreateInstance(dragObject.ContentType); + itemBase = Activator.CreateInstance(dragObject.ContentType) as DesignerItemViewModelBase; itemBase.Icon = dragObject.Icon; itemBase.ColorViewModel = CopyHelper.Mapper(dragObject.ColorViewModel); if (dragObject.DesiredSize != null) diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorInfoItemBase.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorInfoItemBase.cs index b888464..828ce18 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorInfoItemBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/ConnectorInfoItemBase.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +using System.IO; using System.Text; +using System.Xml; using System.Xml.Serialization; namespace AIStudio.Wpf.DiagramDesigner @@ -50,5 +52,7 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } + + } } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/FullyCreatedConnectorInfoItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/FullyCreatedConnectorInfoItem.cs index 1a0b041..8912471 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/FullyCreatedConnectorInfoItem.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/Connector/FullyCreatedConnectorInfoItem.cs @@ -1,9 +1,11 @@ using AIStudio.Wpf.DiagramDesigner; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml; using System.Xml.Serialization; namespace AIStudio.Wpf.DiagramDesigner @@ -41,5 +43,7 @@ namespace AIStudio.Wpf.DiagramDesigner [XmlAttribute] public ValueTypePoint ValueTypePoint { get; set; } + + } } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs index d9ed4f4..d1b86dc 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableItemBase.cs @@ -3,11 +3,13 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; +using System.Xml; using System.Xml.Serialization; namespace AIStudio.Wpf.DiagramDesigner @@ -73,8 +75,7 @@ namespace AIStudio.Wpf.DiagramDesigner public FontItem FontItem { get; set; - } - + } } public class ColorItem : IColorViewModel @@ -487,8 +488,49 @@ namespace AIStudio.Wpf.DiagramDesigner string[] pieces = size.Split(new char[] { ',' }); return new Size(double.Parse(pieces[0]), double.Parse(pieces[1])); } - } + public static string SerializeObject(object obj, string serializableType) + { + if (serializableType?.ToLower() == "xml") + { + XmlSerializer serializer = new XmlSerializer(obj.GetType()); + XmlWriterSettings settings = new XmlWriterSettings(); + settings.Encoding = new UnicodeEncoding(false, false); // no BOM in a .NET string + settings.Indent = true; + settings.OmitXmlDeclaration = true; + + using (StringWriter textWriter = new StringWriter()) + { + using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, settings)) + { + serializer.Serialize(xmlWriter, obj); + } + return textWriter.ToString(); //This is the output as a string + } + } + else + { + return JsonConvert.SerializeObject(obj); + } + + } + + public static SelectableItemBase DeserializeObject(Type type, string serializableString, string serializableType) + { + if (serializableType?.ToLower() == "xml") + { + using (StringReader sr = new StringReader(serializableString)) + { + XmlSerializer serializer = new XmlSerializer(type); + return serializer.Deserialize(sr) as SelectableItemBase; + } + } + else + { + return JsonConvert.DeserializeObject(serializableString, type) as SelectableItemBase; + } + } + } public struct XmlFont { @@ -655,6 +697,8 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } + + } } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SerializableObject.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SerializableObject.cs index adec742..83295fe 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SerializableObject.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SerializableObject.cs @@ -22,7 +22,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Models } [XmlAttribute] - public string ObjectJson + public string SerializableString { get; set; } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs index 8e9270c..beda165 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs @@ -75,7 +75,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { if (IsFullConnection) { @@ -89,7 +89,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(ConnectionItem); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs index 2c84bb5..836bca6 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorInfoBase.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public ConnectorInfoBase(IDiagramViewModel root, string json) : base(root, json) + public ConnectorInfoBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -49,12 +49,12 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new ConnectorInfoItemBase(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(ConnectorInfoBase); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorLabelModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorLabelModel.cs index 933499c..65eefbc 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorLabelModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorLabelModel.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.DiagramDesigner Parent = connector; } - public ConnectorLabelModel(IDiagramViewModel root, ConnectionViewModel connector, string json) : base(root, json) + public ConnectorLabelModel(IDiagramViewModel root, ConnectionViewModel connector, string serializableString, string serializableType) : base(root, serializableString, serializableType) { Parent = connector; } @@ -43,12 +43,12 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new ConnectorLabelItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(ConnectorLabelItem); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorPointModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorPointModel.cs index 31df9a0..7a8c202 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorPointModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorPointModel.cs @@ -32,7 +32,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public ConnectorPointModel(IDiagramViewModel root, string json) : base(root, json) + public ConnectorPointModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -60,12 +60,12 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new ConnectorPointItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(ConnectorPointItem); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs index 40d033e..2e2e330 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs @@ -17,7 +17,7 @@ namespace AIStudio.Wpf.DiagramDesigner Parent = connector; } - public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, string json) : base(root, json) + public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, string serializableString, string serializableType) : base(root, serializableString, serializableType) { Parent = connector; } @@ -40,12 +40,12 @@ namespace AIStudio.Wpf.DiagramDesigner } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new ConnectorVertexItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(ConnectorVertexModel); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs index 44791ca..8d22a50 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs @@ -30,7 +30,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public FullyCreatedConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, string json) : base(root, json) + public FullyCreatedConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, string serializableString, string serializableType) : base(root, serializableString, serializableType) { this.DataItem = dataItem; if (IsInnerPoint == true) @@ -62,12 +62,12 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new FullyCreatedConnectorInfoItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(FullyCreatedConnectorInfo); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs index 6e10773..cced83d 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs @@ -23,7 +23,7 @@ namespace AIStudio.Wpf.DiagramDesigner ShapeDefiner = Shapes.Rectangle; } - public DesignerItemViewModelBase(IDiagramViewModel root, string json) : base(root, json) + public DesignerItemViewModelBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { ShapeDefiner = Shapes.Rectangle; } @@ -52,12 +52,12 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new DesignerItemBase(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(DesignerItemBase); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index 8d11b47..57a250f 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -18,6 +18,27 @@ namespace AIStudio.Wpf.DiagramDesigner public class DiagramViewModel : BindableBase, IDiagramViewModel { #region 属性 + public ObservableCollection Items { get; set; } = new ObservableCollection(); + public List SelectedItems + { + get + { + return Items.Where(x => x.IsSelected).ToList(); + } + } + + private SelectionService selectionService; + public SelectionService SelectionService + { + get + { + if (selectionService == null) + selectionService = new SelectionService(this); + + return selectionService; + } + } + private bool _isReadOnly; public bool IsReadOnly { @@ -61,7 +82,6 @@ namespace AIStudio.Wpf.DiagramDesigner } private Size _pageSize = new Size(1000, 600); - public Size PageSize { get @@ -388,145 +408,7 @@ namespace AIStudio.Wpf.DiagramDesigner private double OffsetY = 10; #endregion - private DoCommandManager DoCommandManager = new DoCommandManager(); - public DiagramViewModel() - { - CreateNewDiagramCommand = new SimpleCommand(ExecuteEnable, ExecuteCreateNewDiagramCommand); - AddItemCommand = new SimpleCommand(ExecuteEnable, ExecuteAddItemCommand); - DirectAddItemCommand = new SimpleCommand(ExecuteEnable, ExecuteDirectAddItemCommand); - RemoveItemCommand = new SimpleCommand(ExecuteEnable, ExecuteRemoveItemCommand); - DirectRemoveItemCommand = new SimpleCommand(ExecuteEnable, ExecuteDirectRemoveItemCommand); - ClearSelectedItemsCommand = new SimpleCommand(ExecuteEnable, ExecuteClearSelectedItemsCommand); - - AlignTopCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignTopCommand); - AlignVerticalCentersCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignVerticalCentersCommand); - AlignBottomCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignBottomCommand); - AlignLeftCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignLeftCommand); - AlignHorizontalCentersCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignHorizontalCentersCommand); - AlignRightCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignRightCommand); - BringForwardCommand = new SimpleCommand(ExecuteEnable, ExecuteBringForwardCommand); - BringToFrontCommand = new SimpleCommand(ExecuteEnable, ExecuteBringToFrontCommand); - SendBackwardCommand = new SimpleCommand(ExecuteEnable, ExecuteSendBackwardCommand); - SendToBackCommand = new SimpleCommand(ExecuteEnable, ExecuteSendToBackCommand); - DistributeHorizontalCommand = new SimpleCommand(ExecuteEnable, ExecuteDistributeHorizontalCommand); - DistributeVerticalCommand = new SimpleCommand(ExecuteEnable, ExecuteDistributeVerticalCommand); - SelectAllCommand = new SimpleCommand(ExecuteEnable, ExecuteSelectAllCommand); - CopyCommand = new SimpleCommand(ExecuteEnable, ExecuteCopyCommand); - PasteCommand = new SimpleCommand(ExecuteEnable, ExecutePasteCommand); - CutCommand = new SimpleCommand(ExecuteEnable, ExecuteCutCommand); - DeleteCommand = new SimpleCommand(ExecuteEnable, ExecuteDeleteCommand); - LeftMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteLeftMoveCommand); - RightMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteRightMoveCommand); - UpMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteUpMoveCommand); - DownMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteDownMoveCommand); - CenterMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteCenterMoveCommand); - SameSizeCommand = new SimpleCommand(ExecuteEnable, ExecuteSameSizeCommand); - SameWidthCommand = new SimpleCommand(ExecuteEnable, ExecuteSameWidthCommand); - SameHeightCommand = new SimpleCommand(ExecuteEnable, ExecuteSameHeightCommand); - SameAngleCommand = new SimpleCommand(ExecuteEnable, ExecuteSameAngleCommand); - GroupCommand = new SimpleCommand(ExecuteEnable, ExecuteGroupCommand); - UngroupCommand = new SimpleCommand(ExecuteEnable, ExecuteUngroupCommand); - LockCommand = new SimpleCommand(ExecuteEnable, ExecuteLockCommand); - UnlockCommand = new SimpleCommand(ExecuteEnable, ExecuteUnlockCommand); - Mediator.Instance.Register(this); - - Items.CollectionChanged += Items_CollectionChanged; - } - - public bool ExecuteEnable(object para) - { - return IsReadOnly == false; - } - - #region UnDo ReDo - - private void Do(object sender, string propertyName, object newvalue) - { - sender.SetPropertyValue(propertyName, newvalue); - } - - private void UnDo(object sender, string propertyName, object oldvalue) - { - sender.SetPropertyValue(propertyName, oldvalue); - } - - private bool _undoing; - private void UndoExecuted(object para) - { - _undoing = true; - DoCommandManager.UnDo(); - _undoing = false; - } - private void RedoExecuted(object para) - { - _undoing = true; - DoCommandManager.ReDo(); - _undoing = false; - } - private bool Undo_Enabled(object para) - { - return DoCommandManager.CanUnDo; - } - private bool Redo_Enabled(object para) - { - return DoCommandManager.CanReDo; - } - - #endregion - - private void Items_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) - { - if (e.OldItems != null) - { - foreach (var item in e.OldItems.OfType()) - { - item.PropertyChanged -= Item_PropertyChanged; - item.Dispose(); - } - } - if (e.NewItems != null) - { - foreach (var item in e.NewItems.OfType()) - { - item.PropertyChanged += Item_PropertyChanged; - } - } - - RaisePropertyChanged("Items"); - } - - private void Item_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - RaisePropertyChanged(sender, e.PropertyName); - - if (_undoing == true) return; - - //连续改变,需要特殊处理,不单独触发属性改变ReDo - if (sender is DesignerItemViewModelBase designer) - { - if (designer.BeginDo) return; - } - - if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs) - { - var property = sender.GetType().GetProperty(e.PropertyName); - var attr = property.GetCustomAttributes(typeof(CanDoAttribute), true); - if (attr != null && attr.Length != 0) - { - DoCommandManager.DoNewCommand(sender.ToString() + e.PropertyName, () => Do(sender, e.PropertyName, valuePropertyChangedEventArgs.NewValue), () => UnDo(sender, e.PropertyName, valuePropertyChangedEventArgs.OldValue), null, false); - } - } - } - - [MediatorMessageSink("DoneDrawingMessage")] - public void OnDoneDrawingMessage(bool dummy) - { - foreach (var item in Items.OfType()) - { - item.ShowConnectors = false; - } - } - + #region 命令 public SimpleCommand CreateNewDiagramCommand { get; private set; @@ -699,28 +581,144 @@ namespace AIStudio.Wpf.DiagramDesigner return this._redoCommand ?? (this._redoCommand = new SimpleCommand(Redo_Enabled, this.RedoExecuted)); } } + #endregion - - public ObservableCollection Items { get; set; } = new ObservableCollection(); - - public List SelectedItems + private DoCommandManager DoCommandManager = new DoCommandManager(); + public DiagramViewModel() { - get + CreateNewDiagramCommand = new SimpleCommand(ExecuteEnable, ExecuteCreateNewDiagramCommand); + AddItemCommand = new SimpleCommand(ExecuteEnable, ExecuteAddItemCommand); + DirectAddItemCommand = new SimpleCommand(ExecuteEnable, ExecuteDirectAddItemCommand); + RemoveItemCommand = new SimpleCommand(ExecuteEnable, ExecuteRemoveItemCommand); + DirectRemoveItemCommand = new SimpleCommand(ExecuteEnable, ExecuteDirectRemoveItemCommand); + ClearSelectedItemsCommand = new SimpleCommand(ExecuteEnable, ExecuteClearSelectedItemsCommand); + + AlignTopCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignTopCommand); + AlignVerticalCentersCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignVerticalCentersCommand); + AlignBottomCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignBottomCommand); + AlignLeftCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignLeftCommand); + AlignHorizontalCentersCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignHorizontalCentersCommand); + AlignRightCommand = new SimpleCommand(ExecuteEnable, ExecuteAlignRightCommand); + BringForwardCommand = new SimpleCommand(ExecuteEnable, ExecuteBringForwardCommand); + BringToFrontCommand = new SimpleCommand(ExecuteEnable, ExecuteBringToFrontCommand); + SendBackwardCommand = new SimpleCommand(ExecuteEnable, ExecuteSendBackwardCommand); + SendToBackCommand = new SimpleCommand(ExecuteEnable, ExecuteSendToBackCommand); + DistributeHorizontalCommand = new SimpleCommand(ExecuteEnable, ExecuteDistributeHorizontalCommand); + DistributeVerticalCommand = new SimpleCommand(ExecuteEnable, ExecuteDistributeVerticalCommand); + SelectAllCommand = new SimpleCommand(ExecuteEnable, ExecuteSelectAllCommand); + CopyCommand = new SimpleCommand(ExecuteEnable, ExecuteCopyCommand); + PasteCommand = new SimpleCommand(ExecuteEnable, ExecutePasteCommand); + CutCommand = new SimpleCommand(ExecuteEnable, ExecuteCutCommand); + DeleteCommand = new SimpleCommand(ExecuteEnable, ExecuteDeleteCommand); + LeftMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteLeftMoveCommand); + RightMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteRightMoveCommand); + UpMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteUpMoveCommand); + DownMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteDownMoveCommand); + CenterMoveCommand = new SimpleCommand(ExecuteEnable, ExecuteCenterMoveCommand); + SameSizeCommand = new SimpleCommand(ExecuteEnable, ExecuteSameSizeCommand); + SameWidthCommand = new SimpleCommand(ExecuteEnable, ExecuteSameWidthCommand); + SameHeightCommand = new SimpleCommand(ExecuteEnable, ExecuteSameHeightCommand); + SameAngleCommand = new SimpleCommand(ExecuteEnable, ExecuteSameAngleCommand); + GroupCommand = new SimpleCommand(ExecuteEnable, ExecuteGroupCommand); + UngroupCommand = new SimpleCommand(ExecuteEnable, ExecuteUngroupCommand); + LockCommand = new SimpleCommand(ExecuteEnable, ExecuteLockCommand); + UnlockCommand = new SimpleCommand(ExecuteEnable, ExecuteUnlockCommand); + Mediator.Instance.Register(this); + + Items.CollectionChanged += Items_CollectionChanged; + } + + public bool ExecuteEnable(object para) + { + return IsReadOnly == false; + } + + #region UnDo ReDo + + private void Do(object sender, string propertyName, object newvalue) + { + sender.SetPropertyValue(propertyName, newvalue); + } + + private void UnDo(object sender, string propertyName, object oldvalue) + { + sender.SetPropertyValue(propertyName, oldvalue); + } + + private bool _undoing; + private void UndoExecuted(object para) + { + _undoing = true; + DoCommandManager.UnDo(); + _undoing = false; + } + private void RedoExecuted(object para) + { + _undoing = true; + DoCommandManager.ReDo(); + _undoing = false; + } + private bool Undo_Enabled(object para) + { + return DoCommandManager.CanUnDo; + } + private bool Redo_Enabled(object para) + { + return DoCommandManager.CanReDo; + } + + #endregion + + private void Items_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + if (e.OldItems != null) { - return Items.Where(x => x.IsSelected).ToList(); + foreach (var item in e.OldItems.OfType()) + { + item.PropertyChanged -= Item_PropertyChanged; + item.Dispose(); + } + } + if (e.NewItems != null) + { + foreach (var item in e.NewItems.OfType()) + { + item.PropertyChanged += Item_PropertyChanged; + } + } + + RaisePropertyChanged("Items"); + } + + private void Item_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + RaisePropertyChanged(sender, e.PropertyName); + + if (_undoing == true) return; + + //连续改变,需要特殊处理,不单独触发属性改变ReDo + if (sender is DesignerItemViewModelBase designer) + { + if (designer.BeginDo) return; + } + + if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs) + { + var property = sender.GetType().GetProperty(e.PropertyName); + var attr = property.GetCustomAttributes(typeof(CanDoAttribute), true); + if (attr != null && attr.Length != 0) + { + DoCommandManager.DoNewCommand(sender.ToString() + e.PropertyName, () => Do(sender, e.PropertyName, valuePropertyChangedEventArgs.NewValue), () => UnDo(sender, e.PropertyName, valuePropertyChangedEventArgs.OldValue), null, false); + } } } - - private SelectionService selectionService; - public SelectionService SelectionService + [MediatorMessageSink("DoneDrawingMessage")] + public void OnDoneDrawingMessage(bool dummy) { - get + foreach (var item in Items.OfType()) { - if (selectionService == null) - selectionService = new SelectionService(this); - - return selectionService; + item.ShowConnectors = false; } } @@ -728,8 +726,6 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } - - public bool AddVerify(SelectableDesignerItemViewModelBase item) { if (item.InitData() == false) @@ -741,11 +737,11 @@ namespace AIStudio.Wpf.DiagramDesigner return true; } + #region 新增,删除 private void ExecuteCreateNewDiagramCommand(object parameter) { this.Items.Clear(); } - private void ExecuteDirectAddItemCommand(object parameter) { if (parameter is SelectableDesignerItemViewModelBase ite) @@ -766,7 +762,6 @@ namespace AIStudio.Wpf.DiagramDesigner } } } - private void Add(SelectableDesignerItemViewModelBase item) { item.Root = this; @@ -791,7 +786,6 @@ namespace AIStudio.Wpf.DiagramDesigner Items.Add(item); item.IsSelected = true; } - private void ExecuteAddItemCommand(object parameter) { if (parameter is SelectableDesignerItemViewModelBase ite) @@ -824,7 +818,6 @@ namespace AIStudio.Wpf.DiagramDesigner }); } } - private void ExecuteDirectRemoveItemCommand(object parameter) { if (parameter is SelectableDesignerItemViewModelBase ite) @@ -878,7 +871,6 @@ namespace AIStudio.Wpf.DiagramDesigner { ClearSelectedItems(); } - public void ClearSelectedItems() { foreach (var item in this.Items.ToList()) @@ -886,6 +878,14 @@ namespace AIStudio.Wpf.DiagramDesigner item.IsSelected = false; } } + private void ExecuteSelectAllCommand(object parameter) + { + foreach (var item in Items) + { + item.IsSelected = true; + } + } + #endregion #region 布局 private void ExecuteAlignTopCommand(object parameter) @@ -1079,7 +1079,7 @@ namespace AIStudio.Wpf.DiagramDesigner }); } } - #endregion + private void ExecuteBringForwardCommand(object parameter) { @@ -1316,7 +1316,6 @@ namespace AIStudio.Wpf.DiagramDesigner }); } } - private void ExecuteDistributeVerticalCommand(object parameter) { var selectedItems = from item in this.SelectedItems.OfType() @@ -1373,15 +1372,9 @@ namespace AIStudio.Wpf.DiagramDesigner }); } } + #endregion - private void ExecuteSelectAllCommand(object parameter) - { - foreach (var item in Items) - { - item.IsSelected = true; - } - } - + #region 复制,粘贴 private void ExecuteCopyCommand(object parameter) { List selectedDesignerItems = @@ -1413,8 +1406,8 @@ namespace AIStudio.Wpf.DiagramDesigner string json = new SerializableObject { - DesignerItems = selectedDesignerItems.Select(p => p.ToSerializabObject()).Where(p => p != null).ToList(), - Connections = selectedConnections.Select(p => p.ToSerializabObject()).Where(p => p != null).ToList(), + DesignerItems = selectedDesignerItems.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList(), + Connections = selectedConnections.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList(), }.ToJson(); OffsetX = 10; @@ -1436,7 +1429,6 @@ namespace AIStudio.Wpf.DiagramDesigner List items = new List(); SerializableObject copyitem = JsonConvert.DeserializeObject(clipboardData); - Dictionary mappingOldToNewIDs = new Dictionary(); foreach (var diagramItemData in copyitem.DesignerItems) @@ -1445,7 +1437,7 @@ namespace AIStudio.Wpf.DiagramDesigner Type type = TypeHelper.GetType(diagramItemData.TypeName); - DesignerItemViewModelBase itemBase = (DesignerItemViewModelBase)Activator.CreateInstance(type, this, diagramItemData.ObjectJson); + DesignerItemViewModelBase itemBase = Activator.CreateInstance(type, this, diagramItemData.SerializableString, "json") as DesignerItemViewModelBase; Guid newID = Guid.NewGuid(); mappingOldToNewIDs.Add(itemBase.Id, newID); itemBase.Id = newID; @@ -1467,7 +1459,7 @@ namespace AIStudio.Wpf.DiagramDesigner List connectors = new List(); foreach (var connection in copyitem.Connections) { - var connectionItem = JsonConvert.DeserializeObject(connection.ObjectJson); + var connectionItem = JsonConvert.DeserializeObject(connection.SerializableString); Guid newID = Guid.NewGuid(); mappingOldToNewIDs.Add(connectionItem.Id, newID); @@ -1549,7 +1541,6 @@ namespace AIStudio.Wpf.DiagramDesigner return false; } - private void ExecuteCutCommand(object parameter) { ExecutePasteCommand(null); @@ -1580,7 +1571,9 @@ namespace AIStudio.Wpf.DiagramDesigner RemoveItemCommand.Execute(itemsToRemove); } + #endregion + #region 移动 private void ExecuteLeftMoveCommand(object parameter) { foreach (var item in SelectedItems.OfType()) @@ -1622,6 +1615,20 @@ namespace AIStudio.Wpf.DiagramDesigner } } + public void UpdateZIndex() + { + List ordered = Items.OrderBy(p => p.ZIndex).ToList(); + + + for (int i = 0; i < ordered.Count; i++) + { + ordered[i].ZIndex = i; + } + } + #endregion + + #region 大小 + private void ExecuteSameSizeCommand(object parameter) { if (parameter is DesignerItemViewModelBase designerItem) @@ -1667,6 +1674,9 @@ namespace AIStudio.Wpf.DiagramDesigner } } + #endregion + + #region 分组 private void ExecuteGroupCommand(object parameter) { var items = from item in SelectedItems.OfType() @@ -1713,6 +1723,15 @@ namespace AIStudio.Wpf.DiagramDesigner } } + public bool BelongToSameGroup(IGroupable item1, IGroupable item2) + { + IGroupable root1 = SelectionService.GetGroupRoot(item1); + IGroupable root2 = SelectionService.GetGroupRoot(item2); + + return (root1.Id == root2.Id); + } + #endregion + private void ExecuteLockCommand(object parameter) { @@ -1722,25 +1741,10 @@ namespace AIStudio.Wpf.DiagramDesigner { } - - public bool BelongToSameGroup(IGroupable item1, IGroupable item2) - { - IGroupable root1 = SelectionService.GetGroupRoot(item1); - IGroupable root2 = SelectionService.GetGroupRoot(item2); - - return (root1.Id == root2.Id); - } - - public void UpdateZIndex() - { - List ordered = Items.OrderBy(p => p.ZIndex).ToList(); + + - for (int i = 0; i < ordered.Count; i++) - { - ordered[i].ZIndex = i; - } - } public RectangleBase GetBoundingRectangle(IEnumerable items) { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs index f6a013c..6b7489d 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs @@ -33,7 +33,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public SelectableDesignerItemViewModelBase(IDiagramViewModel root, string json) : base(root, json) + public SelectableDesignerItemViewModelBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs index 2266e66..34d71dd 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs @@ -33,24 +33,21 @@ namespace AIStudio.Wpf.DiagramDesigner (FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged; } - public SelectableViewModelBase(IDiagramViewModel root, string json) + public SelectableViewModelBase(IDiagramViewModel root, string serializableString, string serializableType) { Init(); - LoadDesignerItemViewModel(root, JsonConvert.DeserializeObject(json, ToXmlType()) as SelectableItemBase); + + SelectableItemBase obj = SerializeHelper.DeserializeObject(GetSerializableType(), serializableString, serializableType); + LoadDesignerItemViewModel(root, obj); (FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged; - } + } - public virtual SelectableItemBase ToXmlObject() + public virtual SerializableItem ToSerializableItem(string serializableType) { - return null; - } - - public virtual SerializableItem ToSerializabObject() - { - var obj = ToXmlObject(); + var obj = GetSerializableObject(); if (obj != null) { - return new SerializableItem() { TypeName = this.GetType().FullName, ObjectJson = obj.ToJson() }; + return new SerializableItem() { TypeName = this.GetType().FullName, SerializableString = SerializeHelper.SerializeObject(obj, serializableType) }; } else { @@ -58,8 +55,12 @@ namespace AIStudio.Wpf.DiagramDesigner } } + public virtual SelectableItemBase GetSerializableObject() + { + return null; + } - public virtual Type ToXmlType() + public virtual Type GetSerializableType() { return null; } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs index 3714968..8f9dd2c 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs @@ -187,10 +187,10 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } - void ClearSelectedItems(); + //void ClearSelectedItems(); //bool BelongToSameGroup(IGroupable item1, IGroupable item2); //Rectangle GetBoundingRectangle(IEnumerable items); - void UpdateZIndex(); + //void UpdateZIndex(); bool IsReadOnly { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs index b3ed048..b9b9405 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs @@ -30,17 +30,17 @@ namespace AIStudio.Wpf.DiagramDesigner } - public GifImageItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public GifImageItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new MediaDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(MediaDesignerItem); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs index 7f01820..5280a25 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/ImageItemViewModel.cs @@ -25,17 +25,17 @@ namespace AIStudio.Wpf.DiagramDesigner } - public ImageItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ImageItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new ImageDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(ImageDesignerItem); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs index 30556c5..66d9636 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/LogicalGateItemViewModelBase.cs @@ -78,17 +78,17 @@ namespace AIStudio.Wpf.DiagramDesigner BuildMenuOptions(); } - public LogicalGateItemViewModelBase(IDiagramViewModel root, string json) : base(root, json) + public LogicalGateItemViewModelBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { BuildMenuOptions(); } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new LogicalGateDesignerItemBase(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(LogicalGateDesignerItemBase); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs index 1d039d2..685a86f 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/MediaItemViewModel.cs @@ -19,17 +19,17 @@ namespace AIStudio.Wpf.DiagramDesigner } - public MediaItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public MediaItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new MediaDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(MediaDesignerItem); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs index 82edd50..3051c24 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs @@ -15,13 +15,13 @@ namespace AIStudio.Wpf.DiagramDesigner } - public TextDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public TextDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new TextDesignerItem(this); } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs index 14d5488..2dc82ea 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/VideoItemViewModel.cs @@ -19,7 +19,7 @@ namespace AIStudio.Wpf.DiagramDesigner } - public VideoItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public VideoItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs index 2d88fc2..5fe1f1d 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs @@ -19,11 +19,11 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public BarcodeDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public BarcodeDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new DesignerItemBase(this, Format.ToString()); } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs index 93cbc4e..3a0dd5b 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs @@ -19,7 +19,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public OutLineTextDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public OutLineTextDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs index 2d58781..78c9920 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PathItemViewModel.cs @@ -17,17 +17,17 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public PathItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public PathItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new PathDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(PathDesignerItem); } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs index a8c2f8c..1715cd1 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/PersistDesignerItemViewModel.cs @@ -19,18 +19,18 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public PersistDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public PersistDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new PersistDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(PersistDesignerItem); } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs index f1d128d..d303051 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs @@ -19,17 +19,17 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public SettingsDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SettingsDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new SettingsDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(SettingsDesignerItem); } diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs index 8fc6865..7371e85 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.cs @@ -15,7 +15,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels } - public SvgDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SvgDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs b/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs index 6d99897..1894dac 100644 --- a/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs +++ b/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs @@ -22,17 +22,17 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public FlowNode(IDiagramViewModel root, string json) : base(root, json) + public FlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new FlowNodeDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(FlowNodeDesignerItem); } @@ -139,7 +139,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public StartFlowNode(IDiagramViewModel root, string json) : base(root, json) + public StartFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -157,7 +157,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public EndFlowNode(IDiagramViewModel root, string json) : base(root, json) + public EndFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -175,7 +175,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public DecideFlowNode(IDiagramViewModel root, string json) : base(root, json) + public DecideFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -193,7 +193,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public COBeginFlowNode(IDiagramViewModel root, string json) : base(root, json) + public COBeginFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -211,7 +211,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public COEndFlowNode(IDiagramViewModel root, string json) : base(root, json) + public COEndFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs b/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs index 0239909..23dde51 100644 --- a/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs +++ b/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs @@ -18,7 +18,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels } - public MiddleFlowNode(IDiagramViewModel root, string json) : base(root, json) + public MiddleFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs index 5ab5e2b..4718850 100644 --- a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs +++ b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LogicalGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public LogicalGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -74,7 +74,7 @@ namespace AIStudio.Wpf.Logical.ViewModels { } - public AddGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public AddGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -90,7 +90,7 @@ namespace AIStudio.Wpf.Logical.ViewModels { } - public SubtractGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SubtractGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -106,7 +106,7 @@ namespace AIStudio.Wpf.Logical.ViewModels { } - public MultiplyGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public MultiplyGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -123,7 +123,7 @@ namespace AIStudio.Wpf.Logical.ViewModels { } - public DivideGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public DivideGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -141,7 +141,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public AverageGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public AverageGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -159,7 +159,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public MODGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public MODGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -177,7 +177,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ANDGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ANDGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -195,7 +195,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ORGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ORGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -213,7 +213,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public XORGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public XORGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -231,7 +231,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public NOTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public NOTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -249,7 +249,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SHLGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SHLGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -267,7 +267,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SHRGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SHRGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -285,7 +285,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ROLGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ROLGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -303,7 +303,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public RORGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public RORGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -321,7 +321,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SELGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SELGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -339,7 +339,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public MAXGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public MAXGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -357,7 +357,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public MINGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public MINGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -375,7 +375,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LIMITGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public LIMITGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -393,7 +393,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public GTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public GTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -411,7 +411,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public LTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -429,7 +429,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public GEGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public GEGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -447,7 +447,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LEGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public LEGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -465,7 +465,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public EQGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public EQGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -483,7 +483,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public NEGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public NEGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -501,7 +501,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ABSGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ABSGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -519,7 +519,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SQRTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SQRTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -537,7 +537,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LNGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public LNGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -555,7 +555,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public LOGGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public LOGGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -573,7 +573,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public EXPGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public EXPGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -591,7 +591,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public SINGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public SINGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -609,7 +609,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public COSGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public COSGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -627,7 +627,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public TANGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public TANGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -645,7 +645,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ASINGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ASINGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -663,7 +663,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ACOSGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ACOSGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -681,7 +681,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ATANGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ATANGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -699,7 +699,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public EXPTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public EXPTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -717,7 +717,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public ConstantDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public ConstantDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -735,7 +735,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public InputItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public InputItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -794,7 +794,7 @@ namespace AIStudio.Wpf.Logical.ViewModels } - public OutputItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public OutputItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } @@ -861,7 +861,7 @@ namespace AIStudio.Wpf.Logical.ViewModels BuildMenuOptions(); } - public TimerDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json) + public TimerDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { BuildMenuOptions(); } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs index 64c073d..40180ab 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCActionNode.cs @@ -21,7 +21,7 @@ namespace AIStudio.Wpf.SFC.ViewModels } - public SFCActionNode(IDiagramViewModel root, string json) : base(root, json) + public SFCActionNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs index be3bfc1..9bdfe1c 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCCOBeginNode.cs @@ -21,7 +21,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public SFCCOBeginNode(IDiagramViewModel root, string json) : base(root, json) + public SFCCOBeginNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs index c4aa292..8b8aedf 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCCOEndNode.cs @@ -21,7 +21,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public SFCCOEndNode(IDiagramViewModel root, string json) : base(root, json) + public SFCCOEndNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs index 3f81819..0b93d19 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs @@ -24,7 +24,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public SFCConditionNode(IDiagramViewModel root, string json) : base(root, json) + public SFCConditionNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs index 599094f..dc9bf89 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs @@ -26,17 +26,17 @@ namespace AIStudio.Wpf.SFC.ViewModels } - public SFCNode(IDiagramViewModel root, string json) : base(root, json) + public SFCNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } - public override SelectableItemBase ToXmlObject() + public override SelectableItemBase GetSerializableObject() { return new SFCNodeDesignerItem(this); } - public override Type ToXmlType() + public override Type GetSerializableType() { return typeof(SFCNodeDesignerItem); } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs index 11c46c2..46c9653 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCNodeNode.cs @@ -18,7 +18,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public SFCNodeNode(IDiagramViewModel root, string json) : base(root, json) + public SFCNodeNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs index 3c97e7e..f8f45cc 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCStartNode.cs @@ -17,7 +17,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public SFCStartNode(IDiagramViewModel root, string json) : base(root, json) + public SFCStartNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs index b8ab5fc..5ed7e86 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_ListViewModel.cs @@ -18,7 +18,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public Simulate_ListViewModel(IDiagramViewModel root, string json) : base(root, json) + public Simulate_ListViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs index d730bfd..f398d8d 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModel.cs @@ -23,7 +23,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public Simulate_SolenoidViewModel(IDiagramViewModel root, string json) : base(root, json) + public Simulate_SolenoidViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs index 4b48a96..147683c 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_StartViewModel.cs @@ -20,7 +20,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public Simulate_StartViewModel(IDiagramViewModel root, string json) : base(root, json) + public Simulate_StartViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { } diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs index 978da67..e3fa8e6 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModel.cs @@ -23,7 +23,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { } - public Simulate_TankViewModel(IDiagramViewModel root, string json) : base(root, json) + public Simulate_TankViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType) { }