序列化继续改进

This commit is contained in:
艾竹
2023-01-25 11:11:27 +08:00
parent a5005ac083
commit a01eb8825a
44 changed files with 319 additions and 398 deletions

View File

@@ -22,7 +22,7 @@ namespace AIStudio.Wpf.DiagramApp.Models
[XmlArray]
public List<DiagramItem> DiagramItems { get; set; }
public const string XMLNS = "http://AIStudio.Wpf.DiagramApp/DesignLayout";
public const string XMLNS = "https://gitee.com/akwkevin/aistudio.-wpf.-diagram";
private readonly object saveLock = new Object();
public void Save(FileInfo designFile)

View File

@@ -17,6 +17,7 @@ using AIStudio.Wpf.SFC.Models;
using AIStudio.Wpf.SFC.ViewModels;
using System.Windows;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramApp.Models
{
@@ -25,8 +26,7 @@ namespace AIStudio.Wpf.DiagramApp.Models
{
public DiagramItem()
{
this.ConnectionIds = new List<Guid>();
this.Connections = new List<ConnectionItem>();
}
[XmlAttribute]
@@ -84,7 +84,7 @@ namespace AIStudio.Wpf.DiagramApp.Models
[XmlAttribute]
public PageSizeType PageSizeType { get; set; }
[XmlAttribute]
[XmlIgnore]
public Size GridMarginSize { get; set; }
[JsonIgnore]
@@ -119,108 +119,9 @@ namespace AIStudio.Wpf.DiagramApp.Models
}
[XmlArray]
public List<DesignerItemBase> DesignerItems { get; set; } = new List<DesignerItemBase>();
public List<SerializableItem> DesignerItems { get; set; } = new List<SerializableItem>();
[XmlArray]
public List<PersistDesignerItem> PersistDesignerItems { get; set; } = new List<PersistDesignerItem>();
[XmlArray]
public List<SettingsDesignerItem> SettingsDesignerItems { get; set; } = new List<SettingsDesignerItem>();
[XmlArray]
public List<PathDesignerItem> PathDesignerItems { get; set; } = new List<PathDesignerItem>();
[XmlArray]
public List<MediaDesignerItem> MediaDesignerItems { get; set; } = new List<MediaDesignerItem>();
[XmlArray]
public List<ImageDesignerItem> ImageDesignerItems { get; set; } = new List<ImageDesignerItem>();
[XmlArray]
public List<TextDesignerItem> TextDesignerItems { get; set; } = new List<TextDesignerItem>();
[XmlArray]
public List<LogicalGateDesignerItemBase> LogicalGateItems { get; set; } = new List<LogicalGateDesignerItemBase>();
[XmlArray]
public List<FlowNodeDesignerItem> FlowNodeDesignerItems { get; set; } = new List<FlowNodeDesignerItem>();
[XmlArray]
public List<SFCNodeDesignerItem> SFCNodeDesignerItems { get; set; } = new List<SFCNodeDesignerItem>();
[JsonIgnore]
[XmlIgnore]
public List<DesignerItemBase> AllDesignerItems
{
get
{
return
DesignerItems.OfType<DesignerItemBase>()
.Union(TextDesignerItems.OfType<DesignerItemBase>())
.Union(LogicalGateItems.OfType<DesignerItemBase>())
.Union(MediaDesignerItems.OfType<DesignerItemBase>())
.Union(ImageDesignerItems.OfType<DesignerItemBase>())
.Union(PathDesignerItems.OfType<DesignerItemBase>())
.Union(PersistDesignerItems.OfType<DesignerItemBase>())
.Union(SettingsDesignerItems.OfType<DesignerItemBase>())
.Union(FlowNodeDesignerItems.OfType<DesignerItemBase>())
.Union(SFCNodeDesignerItems.OfType<DesignerItemBase>())
.ToList();
}
}
[XmlArray]
public List<Guid> ConnectionIds { get; set; }
[XmlArray]
public List<ConnectionItem> Connections { get; set; }
public void AddItems(IEnumerable<SelectableDesignerItemViewModelBase> selectedDesignerItems)
{
var items = selectedDesignerItems.OfType<DesignerItemViewModelBase>().Select(p => p.GetSerializableObject());
foreach (var item in items)
{
if (item is PersistDesignerItem persistDesignerItem)
{
PersistDesignerItems.Add(persistDesignerItem);
}
else if (item is SettingsDesignerItem settingsDesignerItem)
{
SettingsDesignerItems.Add(settingsDesignerItem);
}
else if (item is PathDesignerItem pathDesignerItem)
{
PathDesignerItems.Add(pathDesignerItem);
}
else if (item is MediaDesignerItem mediaDesignerItem)
{
MediaDesignerItems.Add(mediaDesignerItem);
}
else if (item is ImageDesignerItem imageDesignerItem)
{
ImageDesignerItems.Add(imageDesignerItem);
}
else if (item is TextDesignerItem textDesignerItem)
{
TextDesignerItems.Add(textDesignerItem);
}
else if (item is LogicalGateDesignerItemBase logicalGateDesignerItemBase)
{
LogicalGateItems.Add(logicalGateDesignerItemBase);
}
else if (item is FlowNodeDesignerItem flowNodeDesignerItem)
{
FlowNodeDesignerItems.Add(flowNodeDesignerItem);
}
else if (item is SFCNodeDesignerItem sFCNodeDesignerItem)
{
SFCNodeDesignerItems.Add(sFCNodeDesignerItem);
}
else if (item is DesignerItemBase designerItemBase)
{
DesignerItems.Add(designerItemBase);
}
}
}
public List<SerializableItem> Connections { get; set; } = new List<SerializableItem>();
}
}

View File

@@ -42,14 +42,16 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
public DiagramsViewModel(string filename)
{
FileName = filename;
var diagramDocument = OpenFile(filename);
OpenFile(diagramDocument);
string ext = Path.GetExtension(filename);
var diagramDocument = OpenFile(filename, ext);
OpenFile(diagramDocument, ext);
}
public DiagramsViewModel(string filename, DiagramDocument diagramDocument)
{
FileName = filename;
OpenFile(diagramDocument);
string ext = Path.GetExtension(filename);
OpenFile(diagramDocument, ext);
}
protected virtual void InitDiagramViewModel()
@@ -159,7 +161,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{
if (e.PropertyName == "IsSelected")
{
_service.SelectedItem = DiagramViewModel.SelectedItems?.FirstOrDefault();
_service.SelectedItem = DiagramViewModel?.SelectedItems?.FirstOrDefault();
}
var property = sender.GetType().GetProperty(e.PropertyName);
@@ -179,13 +181,13 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
return true;
}
public static DiagramDocument OpenFile(string filename)
public static DiagramDocument OpenFile(string filename, string ext)
{
try
{
DiagramDocument diagramDocument = null;
if (filename.ToLower().EndsWith(".xml"))
if (ext == ".xml")
{
XmlSerializer serializer = new XmlSerializer(typeof(DiagramDocument));
FileInfo fileInfo = new FileInfo(filename);
@@ -229,7 +231,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
}
protected virtual void OpenFile(DiagramDocument diagramDocument)
protected virtual void OpenFile(DiagramDocument diagramDocument, string ext)
{
Title = diagramDocument.Title;
DiagramType = diagramDocument.DiagramType;
@@ -250,27 +252,29 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
viewModel.GridMarginSize = diagramItem.GridMarginSize;
viewModel.GridColor = diagramItem.GridColor;
foreach (DesignerItemBase diagramItemData in diagramItem.AllDesignerItems)
foreach (var diagramItemData in diagramItem.DesignerItems)
{
Type type = TypeHelper.GetType(diagramItemData.ItemTypeName);
DesignerItemViewModelBase itemBase = (DesignerItemViewModelBase)Activator.CreateInstance(type, viewModel, diagramItemData);
viewModel.Items.Add(itemBase);
Type type = TypeHelper.GetType(diagramItemData.ModelTypeName);
DesignerItemViewModelBase itemBase = Activator.CreateInstance(type, viewModel, diagramItemData, ext) as DesignerItemViewModelBase;
viewModel.Items.Add(itemBase);
}
foreach (var connection in diagramItem.Connections)
{
connection.SourceType = System.Type.GetType(connection.SourceTypeName);
connection.SinkType = System.Type.GetType(connection.SinkTypeName);
DesignerItemViewModelBase sourceItem = GetConnectorDataItem(viewModel, connection.SourceId, connection.SourceType);
ConnectorOrientation sourceConnectorOrientation = connection.SourceOrientation;
FullyCreatedConnectorInfo sourceConnectorInfo = GetFullConnectorInfo(connection.Id, sourceItem, sourceConnectorOrientation, connection.SourceXRatio, connection.SourceYRatio, connection.SourceInnerPoint);
Type type = TypeHelper.GetType(connection.SerializableTypeName);
var connectionItem = SerializeHelper.DeserializeObject(type, connection.SerializableString, ext) as ConnectionItem;
DesignerItemViewModelBase sinkItem = GetConnectorDataItem(viewModel, connection.SinkId, connection.SinkType);
ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation;
FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation, connection.SinkXRatio, connection.SinkYRatio, connection.SinkInnerPoint);
connectionItem.SourceType = System.Type.GetType(connectionItem.SourceTypeName);
connectionItem.SinkType = System.Type.GetType(connectionItem.SinkTypeName);
DesignerItemViewModelBase sourceItem = GetConnectorDataItem(viewModel, connectionItem.SourceId, connectionItem.SourceType);
ConnectorOrientation sourceConnectorOrientation = connectionItem.SourceOrientation;
FullyCreatedConnectorInfo sourceConnectorInfo = GetFullConnectorInfo(connectionItem.Id, sourceItem, sourceConnectorOrientation, connectionItem.SourceXRatio, connectionItem.SourceYRatio, connectionItem.SourceInnerPoint);
ConnectionViewModel connectionVM = new ConnectionViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connection);
DesignerItemViewModelBase sinkItem = GetConnectorDataItem(viewModel, connectionItem.SinkId, connectionItem.SinkType);
ConnectorOrientation sinkConnectorOrientation = connectionItem.SinkOrientation;
FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connectionItem.Id, sinkItem, sinkConnectorOrientation, connectionItem.SinkXRatio, connectionItem.SinkYRatio, connectionItem.SinkInnerPoint);
ConnectionViewModel connectionVM = new ConnectionViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connectionItem);
viewModel.Items.Add(connectionVM);
}
@@ -299,7 +303,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
}
var para = Path.GetExtension(FileName);
var ext = Path.GetExtension(FileName);
DiagramDocument diagramDocument = new DiagramDocument();
diagramDocument.DiagramItems = new List<DiagramItem>();
@@ -321,22 +325,16 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
diagramItem.GridMarginSize = viewModel.GridMarginSize;
diagramItem.GridColor = viewModel.GridColor;
diagramItem.AddItems(DiagramViewModel.Items);
var selectedDesignerItems = viewModel.Items.OfType<DesignerItemViewModelBase>();
var selectedConnections = viewModel.Items.OfType<ConnectionViewModel>();
foreach (var connectionVM in DiagramViewModel.Items.OfType<ConnectionViewModel>())
{
if (!connectionVM.IsFullConnection)
continue;
ConnectionItem connection = new ConnectionItem(connectionVM);
diagramItem.ConnectionIds.Add(connectionVM.Id);
diagramItem.Connections.Add(connection);
}
diagramItem.DesignerItems = selectedDesignerItems.Select(p => p.ToSerializableItem(ext)).Where(p => p != null).ToList();
diagramItem.Connections = selectedConnections.Select(p => p.ToSerializableItem(ext)).Where(p => p != null).ToList();
diagramDocument.DiagramItems.Add(diagramItem);
}
if (para == ".xml")
if (ext == ".xml")
{
FileInfo file = new FileInfo(FileName);
diagramDocument.Save(file);
@@ -455,7 +453,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
public void LockAction(LockObject lockObject, string propertyName)
{
foreach (var item in DiagramViewModel.SelectedItems)
foreach (var item in DiagramViewModel?.SelectedItems)
{
item.LockObjectViewModel.SetValue(lockObject);
}
@@ -496,19 +494,11 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
diagramItem.GridMarginSize = viewModel.GridMarginSize;
diagramItem.GridColor = viewModel.GridColor;
diagramItem.AddItems(DiagramViewModel.Items);
var selectedDesignerItems = viewModel.Items.OfType<DesignerItemViewModelBase>();
var selectedConnections = viewModel.Items.OfType<ConnectionViewModel>();
foreach (var connectionVM in DiagramViewModel.Items.OfType<ConnectionViewModel>())
{
if (connectionVM.IsFullConnection == false) continue;
FullyCreatedConnectorInfo sinkConnector = connectionVM.SinkConnectorInfoFully;
ConnectionItem connection = new ConnectionItem(connectionVM);
diagramItem.ConnectionIds.Add(connectionVM.Id);
diagramItem.Connections.Add(connection);
}
diagramItem.DesignerItems = selectedDesignerItems.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList();
diagramItem.Connections = selectedConnections.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList();
viewModel = new DiagramViewModel();
viewModel.Name = NewNameHelper.GetNewName(DiagramViewModels.Select(p => p.Name), "页-");
@@ -523,27 +513,28 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
viewModel.GridMarginSize = diagramItem.GridMarginSize;
viewModel.GridColor = diagramItem.GridColor;
foreach (DesignerItemBase diagramItemData in diagramItem.AllDesignerItems)
foreach (var diagramItemData in diagramItem.DesignerItems)
{
Type type = TypeHelper.GetType(diagramItemData.ItemTypeName);
DesignerItemViewModelBase itemBase = (DesignerItemViewModelBase)Activator.CreateInstance(type, viewModel, diagramItemData);
Type type = TypeHelper.GetType(diagramItemData.ModelTypeName);
DesignerItemViewModelBase itemBase = Activator.CreateInstance(type, viewModel, diagramItemData, "json") as DesignerItemViewModelBase;
viewModel.Items.Add(itemBase);
}
foreach (var connection in diagramItem.Connections)
{
connection.SourceType = System.Type.GetType(connection.SourceTypeName);
connection.SinkType = System.Type.GetType(connection.SinkTypeName);
DesignerItemViewModelBase sourceItem = GetConnectorDataItem(viewModel, connection.SourceId, connection.SourceType);
ConnectorOrientation sourceConnectorOrientation = connection.SourceOrientation;
FullyCreatedConnectorInfo sourceConnectorInfo = GetFullConnectorInfo(connection.Id, sourceItem, sourceConnectorOrientation, connection.SourceXRatio, connection.SourceYRatio, connection.SourceInnerPoint);
var connectionItem = JsonConvert.DeserializeObject<ConnectionItem>(connection.SerializableString);
DesignerItemViewModelBase sinkItem = GetConnectorDataItem(viewModel, connection.SinkId, connection.SinkType);
ConnectorOrientation sinkConnectorOrientation = connection.SinkOrientation;
FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation, connection.SinkXRatio, connection.SinkYRatio, connection.SinkInnerPoint);
connectionItem.SourceType = System.Type.GetType(connectionItem.SourceTypeName);
connectionItem.SinkType = System.Type.GetType(connectionItem.SinkTypeName);
DesignerItemViewModelBase sourceItem = GetConnectorDataItem(viewModel, connectionItem.SourceId, connectionItem.SourceType);
ConnectorOrientation sourceConnectorOrientation = connectionItem.SourceOrientation;
FullyCreatedConnectorInfo sourceConnectorInfo = GetFullConnectorInfo(connectionItem.Id, sourceItem, sourceConnectorOrientation, connectionItem.SourceXRatio, connectionItem.SourceYRatio, connectionItem.SourceInnerPoint);
ConnectionViewModel connectionVM = new ConnectionViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connection);
DesignerItemViewModelBase sinkItem = GetConnectorDataItem(viewModel, connectionItem.SinkId, connectionItem.SinkType);
ConnectorOrientation sinkConnectorOrientation = connectionItem.SinkOrientation;
FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connectionItem.Id, sinkItem, sinkConnectorOrientation, connectionItem.SinkXRatio, connectionItem.SinkYRatio, connectionItem.SinkInnerPoint);
ConnectionViewModel connectionVM = new ConnectionViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connectionItem);
viewModel.Items.Add(connectionVM);
}
@@ -590,7 +581,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
public void AddImageExecuted(object para)
{
ImageItemViewModel itemBase = new ImageItemViewModel();
DiagramViewModel.DirectAddItemCommand.Execute(itemBase);
DiagramViewModel?.DirectAddItemCommand.Execute(itemBase);
if (itemBase.Root != null)
{
_service.DrawModeViewModel.CursorMode = CursorMode.Move;
@@ -627,7 +618,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
public void AddVideoExecuted(object para)
{
VideoItemViewModel itemBase = new VideoItemViewModel();
DiagramViewModel.DirectAddItemCommand.Execute(itemBase);
DiagramViewModel?.DirectAddItemCommand.Execute(itemBase);
if (itemBase.Root != null)
{
_service.DrawModeViewModel.CursorMode = CursorMode.Move;
@@ -637,7 +628,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
public void AddOutLineTextExecuted(object para)
{
OutLineTextDesignerItemViewModel itemBase = new OutLineTextDesignerItemViewModel();
DiagramViewModel.DirectAddItemCommand.Execute(itemBase);
DiagramViewModel?.DirectAddItemCommand.Execute(itemBase);
if (itemBase.Root != null)
{
_service.DrawModeViewModel.CursorMode = CursorMode.Move;
@@ -647,7 +638,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
public void AddBarcodeExecuted(object para)
{
BarcodeDesignerItemViewModel itemBase = new BarcodeDesignerItemViewModel() { Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), para.ToString()), Text="AIStudio.Wpf.DiagramApp" };
DiagramViewModel.DirectAddItemCommand.Execute(itemBase);
DiagramViewModel?.DirectAddItemCommand.Execute(itemBase);
if (itemBase.Root != null)
{
_service.DrawModeViewModel.CursorMode = CursorMode.Move;

View File

@@ -779,7 +779,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
return;
}
var diagram = DiagramsViewModel.OpenFile(filename);
var diagram = DiagramsViewModel.OpenFile(filename, Path.GetExtension(filename));
DiagramsViewModel flow;
if (diagram.DiagramType == DiagramType.FlowChart)
{

View File

@@ -19,6 +19,7 @@ using System.Windows.Media;
using AIStudio.Wpf.Flowchart.Models;
using AIStudio.Wpf.SFC.Models;
using System.Windows;
using System;
namespace AIStudio.Wpf.DiagramApp.ViewModels
{
@@ -239,10 +240,13 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{
try
{
var xmlobject = JsonConvert.DeserializeObject<DiagramDocument>(File.ReadAllText(filename));
var diagramItemData = xmlobject.DiagramItems[0].AllDesignerItems[0];
var xmlobject = JsonConvert.DeserializeObject<DiagramDocument>(File.ReadAllText(filename));
return diagramItemData;
Type type = TypeHelper.GetType(xmlobject.DiagramItems[0].DesignerItems[0].SerializableTypeName);
var itemBase = JsonConvert.DeserializeObject(xmlobject.DiagramItems[0].DesignerItems[0].SerializableString, type) as DesignerItemBase;
return itemBase;
}
catch
{
@@ -259,7 +263,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
DiagramDocument diagramDocument = new DiagramDocument();
diagramDocument.DiagramItems = new List<DiagramItem>();
DiagramItem diagramItem = new DiagramItem();
diagramItem.AddItems(new List<DesignerItemViewModelBase> { designer });
diagramItem.DesignerItems = new List<DiagramDesigner.Models.SerializableItem> { designer.ToSerializableItem(".json") };
diagramDocument.DiagramItems.Add(diagramItem);
string newname = NewNameHelper.GetNewName(MyToolBoxCategory.ToolBoxItems.OfType<DesignerItemToolBoxData>().Select(p => Path.GetFileNameWithoutExtension(p.FileName)), "");
var filename = $"{_custom}\\{newname}.json";

View File

@@ -25,12 +25,26 @@ namespace AIStudio.Wpf.DiagramDesigner
Offset = viewmodel.Offset;
}
[XmlAttribute]
[XmlIgnore]
public double? Distance
{
get; set;
}
[JsonIgnore]
[XmlAttribute("Distance")]
public string XmlDistance
{
get
{
return SerializeHelper.SerializeDoubleNull(Distance);
}
set
{
Distance = SerializeHelper.DeserializeDoubleNull(value);
}
}
[XmlIgnore]
public Point Offset
{

View File

@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using AIStudio.Wpf.DiagramDesigner.Helpers;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -489,9 +490,24 @@ namespace AIStudio.Wpf.DiagramDesigner
return new Size(double.Parse(pieces[0]), double.Parse(pieces[1]));
}
public static string SerializeDoubleNull(double? point)
{
return point?.ToString();
}
public static double? DeserializeDoubleNull(string point)
{
double? value = null;
if (Double.TryParse(point, out var result))
{
value = result;
}
return value;
}
public static string SerializeObject(object obj, string serializableType)
{
if (serializableType?.ToLower() == "xml")
if (serializableType?.ToLower() == ".xml")
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
XmlWriterSettings settings = new XmlWriterSettings();
@@ -517,7 +533,24 @@ namespace AIStudio.Wpf.DiagramDesigner
public static SelectableItemBase DeserializeObject(Type type, string serializableString, string serializableType)
{
if (serializableType?.ToLower() == "xml")
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 static SelectableItemBase DeserializeObject(string typename, string serializableString, string serializableType)
{
Type type = TypeHelper.GetType(typename);
if (serializableType?.ToLower() == ".xml")
{
using (StringReader sr = new StringReader(serializableString))
{

View File

@@ -10,13 +10,25 @@ namespace AIStudio.Wpf.DiagramDesigner.Models
public class SerializableItem
{
[XmlIgnore]
public Type Type
public Type ModelType
{
get; set;
}
[XmlAttribute]
public string TypeName
public string ModelTypeName
{
get; set;
}
[XmlIgnore]
public Type SerializableType
{
get; set;
}
[XmlAttribute]
public string SerializableTypeName
{
get; set;
}

View File

@@ -36,6 +36,20 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public override SelectableItemBase GetSerializableObject()
{
if (IsFullConnection)
{
ConnectionItem connection = new ConnectionItem(this);
return connection;
}
else
{
return null;
}
}
protected virtual void Init(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo)
{
this.Root = sourceConnectorInfo.DataItem.Root;
@@ -73,26 +87,7 @@ namespace AIStudio.Wpf.DiagramDesigner
Vertices = new ObservableCollection<ConnectorVertexModel>(designer.Vertices.Select(p => new ConnectorVertexModel(this.Root, this, designer)));
Labels = new ObservableCollection<ConnectorLabelModel>(designer.Labels.Select(p => new ConnectorLabelModel(this.Root, this, designer)));
}
}
public override SelectableItemBase GetSerializableObject()
{
if (IsFullConnection)
{
ConnectionItem connection = new ConnectionItem(this);
return connection;
}
else
{
return null;
}
}
public override Type GetSerializableType()
{
return typeof(ConnectionItem);
}
}
#region
private string _text;

View File

@@ -5,6 +5,7 @@ using System.Text;
using System.Windows;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -20,11 +21,16 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public ConnectorInfoBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ConnectorInfoBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorInfoItemBase(this);
}
protected override void Init()
{
base.Init();
@@ -49,16 +55,6 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorInfoItemBase(this);
}
public override Type GetSerializableType()
{
return typeof(ConnectorInfoBase);
}
#region
public virtual PointBase Position
{

View File

@@ -1,6 +1,7 @@
using System;
using System.Linq;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Models;
using SvgPathProperties;
namespace AIStudio.Wpf.DiagramDesigner
@@ -20,11 +21,16 @@ namespace AIStudio.Wpf.DiagramDesigner
Parent = connector;
}
public ConnectorLabelModel(IDiagramViewModel root, ConnectionViewModel connector, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ConnectorLabelModel(IDiagramViewModel root, ConnectionViewModel connector, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
Parent = connector;
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorLabelItem(this);
}
protected override void Init()
{
base.Init();
@@ -43,15 +49,6 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorLabelItem(this);
}
public override Type GetSerializableType()
{
return typeof(ConnectorLabelItem);
}
#region
public ConnectionViewModel Connector

View File

@@ -5,6 +5,7 @@ using System.Text;
using System.Windows;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -32,11 +33,16 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public ConnectorPointModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ConnectorPointModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorPointItem(this);
}
protected override void Init()
{
base.Init();
@@ -60,16 +66,6 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorPointItem(this);
}
public override Type GetSerializableType()
{
return typeof(ConnectorPointItem);
}
/// <summary>
/// 中间X
/// </summary>

View File

@@ -1,5 +1,6 @@
using System;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -17,11 +18,16 @@ namespace AIStudio.Wpf.DiagramDesigner
Parent = connector;
}
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
Parent = connector;
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorVertexItem(this);
}
protected override void Init()
{
base.Init();
@@ -40,16 +46,6 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorVertexItem(this);
}
public override Type GetSerializableType()
{
return typeof(ConnectorVertexModel);
}
public ConnectionViewModel Connector
{
get

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Windows;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -30,7 +31,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public FullyCreatedConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public FullyCreatedConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
this.DataItem = dataItem;
if (IsInnerPoint == true)
@@ -39,6 +40,11 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public override SelectableItemBase GetSerializableObject()
{
return new FullyCreatedConnectorInfoItem(this);
}
protected override void Init()
{
base.Init();
@@ -62,16 +68,6 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public override SelectableItemBase GetSerializableObject()
{
return new FullyCreatedConnectorInfoItem(this);
}
public override Type GetSerializableType()
{
return typeof(FullyCreatedConnectorInfo);
}
#region
public override PointBase Position
{

View File

@@ -23,11 +23,16 @@ namespace AIStudio.Wpf.DiagramDesigner
ShapeDefiner = Shapes.Rectangle;
}
public DesignerItemViewModelBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public DesignerItemViewModelBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
ShapeDefiner = Shapes.Rectangle;
}
public override SelectableItemBase GetSerializableObject()
{
return new DesignerItemBase(this);
}
protected override void Init()
{
base.Init();
@@ -52,16 +57,6 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public override SelectableItemBase GetSerializableObject()
{
return new DesignerItemBase(this);
}
public override Type GetSerializableType()
{
return typeof(DesignerItemBase);
}
protected virtual void InitConnector()
{
connectors.Add(new FullyCreatedConnectorInfo(this, ConnectorOrientation.Top));

View File

@@ -221,7 +221,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
private bool _showGrid;
private bool _showGrid = true;
public bool ShowGrid
{
get
@@ -1406,8 +1406,8 @@ namespace AIStudio.Wpf.DiagramDesigner
string json = new SerializableObject
{
DesignerItems = selectedDesignerItems.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList(),
Connections = selectedConnections.Select(p => p.ToSerializableItem("json")).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;
@@ -1420,9 +1420,9 @@ namespace AIStudio.Wpf.DiagramDesigner
{
if (System.Windows.Clipboard.ContainsData(System.Windows.DataFormats.Serializable))
{
String clipboardData = System.Windows.Clipboard.GetData(System.Windows.DataFormats.Serializable) as String;
string clipboardData = System.Windows.Clipboard.GetData(System.Windows.DataFormats.Serializable) as String;
if (String.IsNullOrEmpty(clipboardData))
if (string.IsNullOrEmpty(clipboardData))
return;
try
{
@@ -1435,9 +1435,9 @@ namespace AIStudio.Wpf.DiagramDesigner
{
DesignerItemViewModelBase newItem = null;
Type type = TypeHelper.GetType(diagramItemData.TypeName);
Type type = TypeHelper.GetType(diagramItemData.ModelTypeName);
DesignerItemViewModelBase itemBase = Activator.CreateInstance(type, this, diagramItemData.SerializableString, "json") as DesignerItemViewModelBase;
DesignerItemViewModelBase itemBase = Activator.CreateInstance(type, this, diagramItemData, ".json") as DesignerItemViewModelBase;
Guid newID = Guid.NewGuid();
mappingOldToNewIDs.Add(itemBase.Id, newID);
itemBase.Id = newID;

View File

@@ -33,7 +33,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public SelectableDesignerItemViewModelBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SelectableDesignerItemViewModelBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -33,11 +33,11 @@ namespace AIStudio.Wpf.DiagramDesigner
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
public SelectableViewModelBase(IDiagramViewModel root, string serializableString, string serializableType)
public SelectableViewModelBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType)
{
Init();
SelectableItemBase obj = SerializeHelper.DeserializeObject(GetSerializableType(), serializableString, serializableType);
SelectableItemBase obj = SerializeHelper.DeserializeObject(serializableItem.SerializableTypeName, serializableItem.SerializableString, serializableType);
LoadDesignerItemViewModel(root, obj);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
@@ -47,7 +47,7 @@ namespace AIStudio.Wpf.DiagramDesigner
var obj = GetSerializableObject();
if (obj != null)
{
return new SerializableItem() { TypeName = this.GetType().FullName, SerializableString = SerializeHelper.SerializeObject(obj, serializableType) };
return new SerializableItem() { ModelTypeName = this.GetType().FullName, SerializableTypeName = obj.GetType().FullName, SerializableString = SerializeHelper.SerializeObject(obj, serializableType) };
}
else
{
@@ -60,11 +60,6 @@ namespace AIStudio.Wpf.DiagramDesigner
return null;
}
public virtual Type GetSerializableType()
{
return null;
}
protected virtual void Init()
{
ColorViewModel = _service.CopyDefaultColorViewModel();

View File

@@ -9,6 +9,7 @@ using System.Text;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -30,7 +31,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public GifImageItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public GifImageItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -40,11 +41,6 @@ namespace AIStudio.Wpf.DiagramDesigner
return new MediaDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(MediaDesignerItem);
}
protected override void Init()
{
AddItemCommand = new SimpleCommand(ExecuteAddItemCommand);

View File

@@ -9,6 +9,7 @@ using System.Text;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -25,7 +26,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public ImageItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ImageItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -35,11 +36,6 @@ namespace AIStudio.Wpf.DiagramDesigner
return new ImageDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(ImageDesignerItem);
}
protected override void Init()
{
base.Init();

View File

@@ -5,6 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -78,7 +79,7 @@ namespace AIStudio.Wpf.DiagramDesigner
BuildMenuOptions();
}
public LogicalGateItemViewModelBase(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public LogicalGateItemViewModelBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
BuildMenuOptions();
}
@@ -88,11 +89,6 @@ namespace AIStudio.Wpf.DiagramDesigner
return new LogicalGateDesignerItemBase(this);
}
public override Type GetSerializableType()
{
return typeof(LogicalGateDesignerItemBase);
}
protected override void Init()
{
ShowRotate = false;

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -19,7 +20,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public MediaItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public MediaItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -29,11 +30,6 @@ namespace AIStudio.Wpf.DiagramDesigner
return new MediaDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(MediaDesignerItem);
}
protected override void Init()
{
base.Init();

View File

@@ -1,4 +1,6 @@
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using System;
using System.Windows.Media;
namespace AIStudio.Wpf.DiagramDesigner
@@ -15,12 +17,11 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public TextDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public TextDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
public override SelectableItemBase GetSerializableObject()
{
return new TextDesignerItem(this);

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -19,9 +20,14 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public VideoItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public VideoItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
public override SelectableItemBase GetSerializableObject()
{
return new MediaDesignerItem(this);
}
}
}

View File

@@ -1,5 +1,6 @@
using System;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
using ZXing;
@@ -19,7 +20,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
}
public BarcodeDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public BarcodeDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -2,6 +2,7 @@
using System.Windows;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
@@ -19,11 +20,16 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
}
public OutLineTextDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public OutLineTextDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
public override SelectableItemBase GetSerializableObject()
{
return new TextDesignerItem(this);
}
protected override void Init()
{
base.Init();

View File

@@ -1,5 +1,6 @@
using System;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramHelper.Extensions.Models;
namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
@@ -17,7 +18,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
}
public PathItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public PathItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -27,11 +28,6 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
return new PathDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(PathDesignerItem);
}
protected override void Init()
{
base.Init();

View File

@@ -1,5 +1,6 @@
using System;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.DiagramHelper.Extensions.Models;
@@ -19,7 +20,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
}
public PersistDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public PersistDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -29,12 +30,6 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
return new PersistDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(PersistDesignerItem);
}
protected override void Init()
{
base.Init();

View File

@@ -1,5 +1,6 @@
using System;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.DiagramHelper.Extensions.Models;
@@ -19,7 +20,7 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
}
public SettingsDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SettingsDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -29,11 +30,6 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
return new SettingsDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(SettingsDesignerItem);
}
protected override void Init()
{
base.Init();

View File

@@ -1,4 +1,5 @@
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
{
@@ -15,9 +16,14 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
}
public SvgDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SvgDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
public override SelectableItemBase GetSerializableObject()
{
return new MediaDesignerItem(this);
}
}
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.Flowchart.Models;
@@ -22,7 +23,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
}
public FlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public FlowNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -32,11 +33,6 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
return new FlowNodeDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(FlowNodeDesignerItem);
}
protected override void Init()
{
base.Init();
@@ -139,7 +135,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
}
public StartFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public StartFlowNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -157,7 +153,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
}
public EndFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public EndFlowNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -175,7 +171,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
}
public DecideFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public DecideFlowNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -193,7 +189,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
}
public COBeginFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public COBeginFlowNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -211,7 +207,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
}
public COEndFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public COEndFlowNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -3,6 +3,7 @@ using System.ComponentModel;
using System.Windows;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Controls;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.Flowchart.ViewModels
{
@@ -18,7 +19,7 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
}
public MiddleFlowNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public MiddleFlowNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -3,6 +3,7 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
namespace AIStudio.Wpf.Logical.ViewModels
@@ -20,11 +21,16 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public LogicalGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public LogicalGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
public override SelectableItemBase GetSerializableObject()
{
return new LogicalGateDesignerItemBase(this);
}
protected override void Init()
{
base.Init();
@@ -74,7 +80,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
{
}
public AddGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public AddGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -90,7 +96,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
{
}
public SubtractGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SubtractGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -106,7 +112,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
{
}
public MultiplyGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public MultiplyGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -123,7 +129,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
{
}
public DivideGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public DivideGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -141,7 +147,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public AverageGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public AverageGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -159,7 +165,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public MODGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public MODGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -177,7 +183,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ANDGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ANDGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -195,7 +201,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ORGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ORGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -213,7 +219,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public XORGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public XORGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -231,7 +237,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public NOTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public NOTGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -249,7 +255,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public SHLGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SHLGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -267,7 +273,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public SHRGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SHRGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -285,7 +291,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ROLGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ROLGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -303,7 +309,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public RORGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public RORGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -321,7 +327,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public SELGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SELGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -339,7 +345,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public MAXGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public MAXGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -357,7 +363,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public MINGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public MINGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -375,7 +381,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public LIMITGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public LIMITGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -393,7 +399,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public GTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public GTGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -411,7 +417,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public LTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public LTGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -429,7 +435,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public GEGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public GEGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -447,7 +453,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public LEGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public LEGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -465,7 +471,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public EQGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public EQGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -483,7 +489,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public NEGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public NEGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -501,7 +507,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ABSGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ABSGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -519,7 +525,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public SQRTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SQRTGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -537,7 +543,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public LNGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public LNGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -555,7 +561,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public LOGGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public LOGGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -573,7 +579,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public EXPGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public EXPGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -591,7 +597,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public SINGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SINGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -609,7 +615,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public COSGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public COSGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -627,7 +633,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public TANGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public TANGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -645,7 +651,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ASINGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ASINGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -663,7 +669,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ACOSGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ACOSGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -681,7 +687,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ATANGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ATANGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -699,7 +705,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public EXPTGateItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public EXPTGateItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -717,7 +723,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public ConstantDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public ConstantDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -735,7 +741,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public InputItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public InputItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -794,7 +800,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
}
public OutputItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public OutputItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -861,7 +867,7 @@ namespace AIStudio.Wpf.Logical.ViewModels
BuildMenuOptions();
}
public TimerDesignerItemViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public TimerDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
BuildMenuOptions();
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -21,7 +22,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
}
public SFCActionNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SFCActionNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -21,7 +22,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public SFCCOBeginNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SFCCOBeginNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -21,7 +22,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public SFCCOEndNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SFCCOEndNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -5,6 +5,7 @@ using System.Linq;
using System.Text;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -24,7 +25,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public SFCConditionNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SFCConditionNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -4,6 +4,7 @@ using System.ComponentModel;
using System.Linq;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.SFC.Models;
@@ -26,7 +27,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
}
public SFCNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SFCNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
@@ -36,11 +37,6 @@ namespace AIStudio.Wpf.SFC.ViewModels
return new SFCNodeDesignerItem(this);
}
public override Type GetSerializableType()
{
return typeof(SFCNodeDesignerItem);
}
protected override void Init()
{
IsInnerConnector = true;

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -18,7 +19,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public SFCNodeNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SFCNodeNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -17,7 +18,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public SFCStartNode(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public SFCStartNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -18,7 +19,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public Simulate_ListViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public Simulate_ListViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -4,6 +4,7 @@ using System.Collections.ObjectModel;
using System.Reactive.Linq;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -23,7 +24,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public Simulate_SolenoidViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public Simulate_SolenoidViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -20,7 +21,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public Simulate_StartViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public Simulate_StartViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.SFC.ViewModels
{
@@ -23,7 +24,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{
}
public Simulate_TankViewModel(IDiagramViewModel root, string serializableString, string serializableType) : base(root, serializableString, serializableType)
public Simulate_TankViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}