整理序列化

This commit is contained in:
艾竹
2023-01-24 16:20:39 +08:00
parent f39a57b3e5
commit 8dbe05636d
55 changed files with 588 additions and 464 deletions

View File

@@ -594,7 +594,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{ {
ImageItemViewModel itemBase = new ImageItemViewModel(); ImageItemViewModel itemBase = new ImageItemViewModel();
DiagramViewModel.DirectAddItemCommand.Execute(itemBase); DiagramViewModel.DirectAddItemCommand.Execute(itemBase);
if (itemBase.Parent != null) if (itemBase.Root != null)
{ {
_service.DrawModeViewModel.CursorMode = CursorMode.Move; _service.DrawModeViewModel.CursorMode = CursorMode.Move;
} }
@@ -631,7 +631,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{ {
VideoItemViewModel itemBase = new VideoItemViewModel(); VideoItemViewModel itemBase = new VideoItemViewModel();
DiagramViewModel.DirectAddItemCommand.Execute(itemBase); DiagramViewModel.DirectAddItemCommand.Execute(itemBase);
if (itemBase.Parent != null) if (itemBase.Root != null)
{ {
_service.DrawModeViewModel.CursorMode = CursorMode.Move; _service.DrawModeViewModel.CursorMode = CursorMode.Move;
} }
@@ -641,7 +641,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{ {
OutLineTextDesignerItemViewModel itemBase = new OutLineTextDesignerItemViewModel(); OutLineTextDesignerItemViewModel itemBase = new OutLineTextDesignerItemViewModel();
DiagramViewModel.DirectAddItemCommand.Execute(itemBase); DiagramViewModel.DirectAddItemCommand.Execute(itemBase);
if (itemBase.Parent != null) if (itemBase.Root != null)
{ {
_service.DrawModeViewModel.CursorMode = CursorMode.Move; _service.DrawModeViewModel.CursorMode = CursorMode.Move;
} }
@@ -651,7 +651,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{ {
BarcodeDesignerItemViewModel itemBase = new BarcodeDesignerItemViewModel() { Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), para.ToString()), Text="AIStudio.Wpf.DiagramApp" }; 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.Parent != null) if (itemBase.Root != null)
{ {
_service.DrawModeViewModel.CursorMode = CursorMode.Move; _service.DrawModeViewModel.CursorMode = CursorMode.Move;
} }

View File

@@ -373,10 +373,10 @@ namespace AIStudio.Wpf.DiagramDesigner
Connector sinkConnector = connectorsHit.Last(); Connector sinkConnector = connectorsHit.Last();
FullyCreatedConnectorInfo sinkDataItem = sinkConnector.DataContext as FullyCreatedConnectorInfo; FullyCreatedConnectorInfo sinkDataItem = sinkConnector.DataContext as FullyCreatedConnectorInfo;
int indexOfLastTempConnection = sinkDataItem.DataItem.Parent.Items.Count - 1; int indexOfLastTempConnection = sinkDataItem.DataItem.Root.Items.Count - 1;
sinkDataItem.DataItem.Parent.DirectRemoveItemCommand.Execute( sinkDataItem.DataItem.Root.DirectRemoveItemCommand.Execute(
sinkDataItem.DataItem.Parent.Items[indexOfLastTempConnection]); sinkDataItem.DataItem.Root.Items[indexOfLastTempConnection]);
sinkDataItem.DataItem.Parent.AddItemCommand.Execute(new ConnectorViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode)); sinkDataItem.DataItem.Root.AddItemCommand.Execute(new ConnectorViewModel(_viewModel, sourceDataItem, sinkDataItem, DrawMode, RouterMode));
} }
else if (_service.DrawModeViewModel.GetDrawMode() == DrawMode.DirectLine && connectorsHit.Count() == 1) else if (_service.DrawModeViewModel.GetDrawMode() == DrawMode.DirectLine && connectorsHit.Count() == 1)
{ {
@@ -396,9 +396,9 @@ namespace AIStudio.Wpf.DiagramDesigner
else else
{ {
//Need to remove last item as we did not finish drawing the path //Need to remove last item as we did not finish drawing the path
int indexOfLastTempConnection = sourceDataItem.DataItem.Parent.Items.Count - 1; int indexOfLastTempConnection = sourceDataItem.DataItem.Root.Items.Count - 1;
sourceDataItem.DataItem.Parent.DirectRemoveItemCommand.Execute( sourceDataItem.DataItem.Root.DirectRemoveItemCommand.Execute(
sourceDataItem.DataItem.Parent.Items[indexOfLastTempConnection]); sourceDataItem.DataItem.Root.Items[indexOfLastTempConnection]);
} }

View File

@@ -27,7 +27,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
if (designerItem != null && designerItem.IsSelected) if (designerItem != null && designerItem.IsSelected)
{ {
// we only move DesignerItems // we only move DesignerItems
designerItems = designerItem.Parent.SelectedItems.ToList(); designerItems = designerItem.Root.SelectedItems.ToList();
if (designerItem is ConnectorViewModel connector) if (designerItem is ConnectorViewModel connector)
{ {
designerItems.Add(connector.SourceConnectorInfo.DataItem); designerItems.Add(connector.SourceConnectorInfo.DataItem);

View File

@@ -31,7 +31,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
void DragThumb_DragDelta(object sender, DragDeltaEventArgs e) void DragThumb_DragDelta(object sender, DragDeltaEventArgs e)
{ {
if (this.DataContext is ConnectorPoint point) if (this.DataContext is ConnectorPointModel point)
{ {
point.X += e.HorizontalChange; point.X += e.HorizontalChange;
point.Y += e.VerticalChange; point.Y += e.VerticalChange;

View File

@@ -23,10 +23,10 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e) private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e)
{ {
DesignerItemViewModelBase designerItem = this.DataContext as DesignerItemViewModelBase; DesignerItemViewModelBase designerItem = this.DataContext as DesignerItemViewModelBase;
diagarmViewModel = designerItem.Parent; diagarmViewModel = designerItem.Root;
if (designerItem != null && designerItem.IsSelected) if (designerItem != null && designerItem.IsSelected)
{ {
designerItems = designerItem.Parent.SelectedItems.ToList(); designerItems = designerItem.Root.SelectedItems.ToList();
foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>()) foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>())
{ {
item.BeginDo = true; item.BeginDo = true;

View File

@@ -32,7 +32,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
if (this.designerItem != null) if (this.designerItem != null)
{ {
designerItems = designerItem.Parent.SelectedItems.ToList(); designerItems = designerItem.Root.SelectedItems.ToList();
foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>()) foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>())
{ {

View File

@@ -29,7 +29,7 @@ namespace AIStudio.Wpf.DiagramDesigner
PathGeometry pathGeometry = new PathGeometry(); PathGeometry pathGeometry = new PathGeometry();
if (values[0] != null) if (values[0] != null)
{ {
List<ConnectorPoint> points = (List<ConnectorPoint>)values[0]; List<ConnectorPointModel> points = (List<ConnectorPointModel>)values[0];
PathFigure figure = new PathFigure(); PathFigure figure = new PathFigure();
figure.StartPoint = (PointBase)points[0]; figure.StartPoint = (PointBase)points[0];

View File

@@ -11,9 +11,12 @@ using System.Xml.Serialization;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
/// <summary>
/// 连接线
/// </summary>
[Serializable] [Serializable]
[XmlInclude(typeof(ConnectionItem))] [XmlInclude(typeof(ConnectionItem))]
public class ConnectionItem : SelectableDesignerItemBase public class ConnectionItem : SelectableItemBase
{ {
public ConnectionItem() public ConnectionItem()
{ {
@@ -39,7 +42,8 @@ namespace AIStudio.Wpf.DiagramDesigner
this.SinkInnerPoint = viewmodel.SinkConnectorInfoFully.IsInnerPoint; this.SinkInnerPoint = viewmodel.SinkConnectorInfoFully.IsInnerPoint;
this.RouterMode = viewmodel.RouterMode; this.RouterMode = viewmodel.RouterMode;
this.PathMode = viewmodel.PathMode; this.PathMode = viewmodel.PathMode;
this.Vertices = viewmodel.Vertices.Select(p => (Point)p.MiddlePosition).ToList(); this.Vertices = viewmodel.Vertices.Select(p => new ConnectorVertexItem(p)).ToList();
this.Labels = viewmodel.Labels.Select(p => new ConnectorLabelItem(p)).ToList();
} }
@@ -97,28 +101,14 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set; get; set;
} }
[XmlIgnore] [XmlArray]
public List<Point> Vertices public List<ConnectorVertexItem> Vertices
{ {
get; set; get; set;
} }
[JsonIgnore]
[XmlAttribute("Vertices")]
public string XmlVertices
{
get
{
return SerializeHelper.SerializePointList(Vertices);
}
set
{
Vertices = SerializeHelper.DeserializePointList(value);
}
}
[XmlArray] [XmlArray]
public List<ConnectorLabelItem> Connectors public List<ConnectorLabelItem> Labels
{ {
get; set; get; set;
} }

View File

@@ -4,20 +4,57 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Serialization;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
public class ConnectorItem /// <summary>
/// 连接点
/// </summary>
[Serializable]
[XmlInclude(typeof(ConnectorItem))]
public class ConnectorItem : SelectableItemBase
{ {
public Guid ParentId { get; set; } public ConnectorItem()
public Guid Id { get; set; } {
}
public ConnectorItem(FullyCreatedConnectorInfo viewmodel) : base(viewmodel)
{
XRatio = viewmodel.XRatio;
YRatio = viewmodel.YRatio;
ConnectorWidth = viewmodel.ConnectorWidth;
ConnectorHeight = viewmodel.ConnectorHeight;
Orientation = viewmodel.Orientation;
IsInnerPoint = viewmodel.IsInnerPoint;
ValueTypePoint = viewmodel.ValueTypePoint;
ConnectorValue = viewmodel.ConnectorValue;
}
[XmlAttribute]
public double XRatio { get; set; } public double XRatio { get; set; }
[XmlAttribute]
public double YRatio { get; set; } public double YRatio { get; set; }
[XmlAttribute]
public double ConnectorWidth { get; set; } public double ConnectorWidth { get; set; }
[XmlAttribute]
public double ConnectorHeight { get; set; } public double ConnectorHeight { get; set; }
[XmlAttribute]
public ConnectorOrientation Orientation { get; set; } public ConnectorOrientation Orientation { get; set; }
[XmlAttribute]
public bool IsInnerPoint { get; set; } public bool IsInnerPoint { get; set; }
[XmlAttribute]
public ValueTypePoint ValueTypePoint { get; set; } public ValueTypePoint ValueTypePoint { get; set; }
[XmlAttribute]
public double ConnectorValue { get; set; } public double ConnectorValue { get; set; }
} }
} }

View File

@@ -1,11 +1,54 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Windows;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
public class ConnectorLabelItem /// <summary>
/// 连接点文字
/// </summary>
[Serializable]
[XmlInclude(typeof(ConnectorLabelItem))]
public class ConnectorLabelItem : ConnectorPointItem
{ {
public ConnectorLabelItem()
{
}
public ConnectorLabelItem(ConnectorLabelModel viewmodel) : base(viewmodel)
{
Distance = viewmodel.Distance;
Offset = viewmodel.Offset;
}
[XmlAttribute]
public double? Distance
{
get; set;
}
[XmlIgnore]
public Point Offset
{
get; set;
}
[JsonIgnore]
[XmlAttribute("Offset")]
public string XmlOffset
{
get
{
return SerializeHelper.SerializePoint(Offset);
}
set
{
Offset = SerializeHelper.DeserializePoint(value);
}
}
} }
} }

View File

@@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
namespace AIStudio.Wpf.DiagramDesigner
{
/// <summary>
/// 连接中间点
/// </summary>
[Serializable]
[XmlInclude(typeof(ConnectorPointItem))]
public class ConnectorPointItem : SelectableItemBase
{
public ConnectorPointItem()
{
}
public ConnectorPointItem(ConnectorPointModel viewmodel) : base(viewmodel)
{
X = viewmodel.X;
Y = viewmodel.Y;
ConnectorWidth = viewmodel.ConnectorWidth;
ConnectorHeight = viewmodel.ConnectorHeight;
}
[XmlAttribute]
public double X
{
get;set;
}
[XmlAttribute]
public double Y
{
get; set;
}
[XmlAttribute]
public double ConnectorWidth
{
get; set;
}
[XmlAttribute]
public double ConnectorHeight
{
get; set;
}
}
}

View File

@@ -1,10 +1,25 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Xml.Serialization;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
class ConnectorVertexItem /// <summary>
/// 连接线。中间点
/// </summary>
[Serializable]
[XmlInclude(typeof(ConnectorVertexItem))]
public class ConnectorVertexItem : ConnectorPointItem
{ {
public ConnectorVertexItem()
{
}
public ConnectorVertexItem(ConnectorVertexModel viewmodel) : base(viewmodel)
{
}
} }
} }

View File

@@ -11,7 +11,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
[Serializable] [Serializable]
[XmlInclude(typeof(DesignerItemBase))] [XmlInclude(typeof(DesignerItemBase))]
public class DesignerItemBase : SelectableDesignerItemBase public class DesignerItemBase : SelectableItemBase
{ {
public DesignerItemBase() public DesignerItemBase()
{ {

View File

@@ -15,14 +15,7 @@ namespace AIStudio.Wpf.DiagramDesigner
Connectors = new List<ConnectorItem>(); Connectors = new List<ConnectorItem>();
foreach (var fullyCreatedConnectorInfo in item.Connectors) foreach (var fullyCreatedConnectorInfo in item.Connectors)
{ {
ConnectorItem connector = new ConnectorItem() ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
{
XRatio = fullyCreatedConnectorInfo.XRatio,
YRatio = fullyCreatedConnectorInfo.YRatio,
ConnectorWidth = fullyCreatedConnectorInfo.ConnectorWidth,
ConnectorHeight = fullyCreatedConnectorInfo.ConnectorHeight,
Orientation = fullyCreatedConnectorInfo.Orientation
};
Connectors.Add(connector); Connectors.Add(connector);
} }
} }

View File

@@ -18,17 +18,7 @@ namespace AIStudio.Wpf.DiagramDesigner
this.Connectors = new List<ConnectorItem>(); this.Connectors = new List<ConnectorItem>();
foreach (var fullyCreatedConnectorInfo in item.Connectors) foreach (var fullyCreatedConnectorInfo in item.Connectors)
{ {
ConnectorItem connector = new ConnectorItem() ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
{
XRatio = fullyCreatedConnectorInfo.XRatio,
YRatio = fullyCreatedConnectorInfo.YRatio,
ConnectorWidth = fullyCreatedConnectorInfo.ConnectorWidth,
ConnectorHeight = fullyCreatedConnectorInfo.ConnectorHeight,
Orientation = fullyCreatedConnectorInfo.Orientation,
IsInnerPoint = fullyCreatedConnectorInfo.IsInnerPoint,
ValueTypePoint = fullyCreatedConnectorInfo.ValueTypePoint,
ConnectorValue = fullyCreatedConnectorInfo.ConnectorValue
};
this.Connectors.Add(connector); this.Connectors.Add(connector);
} }
this.OrderNumber = item.OrderNumber; this.OrderNumber = item.OrderNumber;

View File

@@ -15,14 +15,7 @@ namespace AIStudio.Wpf.DiagramDesigner
Connectors = new List<ConnectorItem>(); Connectors = new List<ConnectorItem>();
foreach (var fullyCreatedConnectorInfo in item.Connectors) foreach (var fullyCreatedConnectorInfo in item.Connectors)
{ {
ConnectorItem connector = new ConnectorItem() ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
{
XRatio = fullyCreatedConnectorInfo.XRatio,
YRatio = fullyCreatedConnectorInfo.YRatio,
ConnectorWidth = fullyCreatedConnectorInfo.ConnectorWidth,
ConnectorHeight = fullyCreatedConnectorInfo.ConnectorHeight,
Orientation = fullyCreatedConnectorInfo.Orientation
};
Connectors.Add(connector); Connectors.Add(connector);
} }
} }
@@ -32,14 +25,7 @@ namespace AIStudio.Wpf.DiagramDesigner
Connectors = new List<ConnectorItem>(); Connectors = new List<ConnectorItem>();
foreach (var fullyCreatedConnectorInfo in item.Connectors) foreach (var fullyCreatedConnectorInfo in item.Connectors)
{ {
ConnectorItem connector = new ConnectorItem() ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
{
XRatio = fullyCreatedConnectorInfo.XRatio,
YRatio = fullyCreatedConnectorInfo.YRatio,
ConnectorWidth = fullyCreatedConnectorInfo.ConnectorWidth,
ConnectorHeight = fullyCreatedConnectorInfo.ConnectorHeight,
Orientation = fullyCreatedConnectorInfo.Orientation
};
Connectors.Add(connector); Connectors.Add(connector);
} }
} }

View File

@@ -13,27 +13,15 @@ using System.Xml.Serialization;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
public abstract class SelectableDesignerItemBase public abstract class SelectableItemBase
{ {
public SelectableDesignerItemBase() public SelectableItemBase()
{ {
ColorItem = new ColorItem() { LineColor = new ColorObjectItem(), FillColor = new ColorObjectItem() }; ColorItem = new ColorItem() { LineColor = new ColorObjectItem(), FillColor = new ColorObjectItem() };
FontItem = new FontItem(); FontItem = new FontItem();
} }
//public SelectableDesignerItemBase(Guid id, int zIndex, bool isGroup, Guid parentId, IColorViewModel colorViewModel, IFontViewModel fontViewModel) public SelectableItemBase(SelectableViewModelBase viewmodel)
//{
// this.Id = id;
// this.ZIndex = zIndex;
// this.IsGroup = isGroup;
// this.ParentId = parentId;
// ColorItem = CopyHelper.Mapper<ColorItem>(colorViewModel);
// FontItem = CopyHelper.Mapper<FontItem, IFontViewModel>(fontViewModel);
//}
public SelectableDesignerItemBase(SelectableDesignerItemViewModelBase viewmodel)
{ {
this.Id = viewmodel.Id; this.Id = viewmodel.Id;
this.ZIndex = viewmodel.ZIndex; this.ZIndex = viewmodel.ZIndex;
@@ -45,6 +33,12 @@ namespace AIStudio.Wpf.DiagramDesigner
FontItem = CopyHelper.Mapper<FontItem, IFontViewModel>(viewmodel.FontViewModel); FontItem = CopyHelper.Mapper<FontItem, IFontViewModel>(viewmodel.FontViewModel);
} }
[XmlAttribute]
public Guid ParentId
{
get; set;
}
[XmlAttribute] [XmlAttribute]
public Guid Id public Guid Id
{ {
@@ -63,12 +57,6 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set; get; set;
} }
[XmlAttribute]
public Guid ParentId
{
get; set;
}
[XmlAttribute] [XmlAttribute]
public string Text public string Text
{ {

View File

@@ -8,8 +8,25 @@ using AIStudio.Wpf.DiagramDesigner.Geometrys;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
public abstract class ConnectorInfoBase : BindableBase public abstract class ConnectorInfoBase : SelectableViewModelBase
{ {
public ConnectorInfoBase(ConnectorOrientation orientation)
{
this.Orientation = orientation;
}
protected override void Init()
{
base.Init();
ColorViewModel = new ColorViewModel()
{
LineColor = new ColorObject() { Color = Color.FromArgb(0xAA, 0x00, 0x00, 0x80) },
FillColor = new ColorObject() { Color = Colors.Lavender },
};
}
#region
public virtual PointBase Position public virtual PointBase Position
{ {
get; get;
@@ -23,16 +40,6 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
} }
public ConnectorInfoBase(ConnectorOrientation orientation)
{
this.Orientation = orientation;
ColorViewModel = new ColorViewModel()
{
LineColor = new ColorObject() { Color = Color.FromArgb(0xAA, 0x00, 0x00, 0x80) },
FillColor = new ColorObject() { Color = Colors.Lavender },
};
}
private ConnectorOrientation _orientation; private ConnectorOrientation _orientation;
public ConnectorOrientation Orientation public ConnectorOrientation Orientation
{ {
@@ -72,19 +79,6 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
} }
private IColorViewModel _colorViewModel;
public IColorViewModel ColorViewModel
{
get
{
return _colorViewModel;
}
set
{
SetProperty(ref _colorViewModel, value);
}
}
public double _connectorValue; public double _connectorValue;
public double ConnectorValue public double ConnectorValue
{ {
@@ -97,5 +91,6 @@ namespace AIStudio.Wpf.DiagramDesigner
SetProperty(ref _connectorValue, value); SetProperty(ref _connectorValue, value);
} }
} }
#endregion
} }
} }

View File

@@ -4,43 +4,29 @@ using SvgPathProperties;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
public class ConnectorLabelModel : ConnectorPoint, ISelectable public class ConnectorLabelModel : ConnectorPointModel, ISelectable
{ {
public ConnectorLabelModel(ConnectorViewModel parent, string content, double? distance = null, PointBase? offset = null) public ConnectorLabelModel(ConnectorViewModel connector, string content, double? distance = null, PointBase? offset = null)
{ {
Parent = parent; Parent = connector;
Text = content; Text = content;
Distance = distance; Distance = distance;
Offset = offset ?? new PointBase(); Offset = offset ?? new PointBase();
FontViewModel = Parent.FontViewModel; }
ColorViewModel = Parent.ColorViewModel;
protected override void Init()
{
base.Init();
DeleteLabelCommand = new SimpleCommand(DeleteLabel); DeleteLabelCommand = new SimpleCommand(DeleteLabel);
} }
public ConnectorViewModel Parent #region
{ public ConnectorViewModel Connector
get;
}
public bool IsHitTestVisible
{ {
get get
{ {
return Parent.IsHitTestVisible; return Parent as ConnectorViewModel;
}
}
private string _text;
public string Text
{
get
{
return _text;
}
set
{
SetProperty(ref _text, value);
} }
} }
@@ -59,8 +45,8 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set; get; set;
} }
private bool _isSelected; //private bool _isSelected;
public bool IsSelected public override bool IsSelected
{ {
get get
{ {
@@ -73,7 +59,7 @@ namespace AIStudio.Wpf.DiagramDesigner
//如果没有文字,失去焦点自动清除 //如果没有文字,失去焦点自动清除
if (_isSelected == false && string.IsNullOrEmpty(Text)) if (_isSelected == false && string.IsNullOrEmpty(Text))
{ {
Parent.Labels.Remove(this); Connector.Labels.Remove(this);
} }
} }
@@ -84,6 +70,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
get; set; get; set;
} }
#endregion
private bool updating = false; private bool updating = false;
@@ -120,7 +107,7 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
else else
{ {
length = totalLength * (Parent.Labels.IndexOf(this) + 1) / (Parent.Labels.Count + 1); length = totalLength * (Connector.Labels.IndexOf(this) + 1) / (Connector.Labels.Count + 1);
} }
@@ -153,9 +140,9 @@ namespace AIStudio.Wpf.DiagramDesigner
Offset += new VectorBase(0, newvalue - oldvalue); Offset += new VectorBase(0, newvalue - oldvalue);
} }
public void AddToSelection(bool selected) public override void AddToSelection(bool selected)
{ {
foreach (var item in Parent.Labels.ToList()) foreach (var item in Connector.Labels.ToList())
item.IsSelected = false; item.IsSelected = false;
if (selected == true) if (selected == true)
@@ -168,7 +155,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
if (parameter is ConnectorLabelModel label) if (parameter is ConnectorLabelModel label)
{ {
Parent.Labels.Remove(label); Connector.Labels.Remove(label);
} }
} }

View File

@@ -8,29 +8,35 @@ using AIStudio.Wpf.DiagramDesigner.Geometrys;
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
public class ConnectorPoint : BindableBase public class ConnectorPointModel : SelectableViewModelBase
{ {
public ConnectorPoint() public ConnectorPointModel()
{ {
ColorViewModel = new ColorViewModel()
{
LineColor = new ColorObject() { Color = Color.FromArgb(0xAA, 0x00, 0x00, 0x80) },
FillColor = new ColorObject() { Color = Colors.Lavender },
};
} }
public ConnectorPoint(PointBase point) : this() public ConnectorPointModel(PointBase point) : this()
{ {
X = point.X; X = point.X;
Y = point.Y; Y = point.Y;
} }
public ConnectorPoint(double x, double y) : this() public ConnectorPointModel(double x, double y) : this()
{ {
X = x; X = x;
Y = y; Y = y;
} }
protected override void Init()
{
base.Init();
ColorViewModel = new ColorViewModel()
{
LineColor = new ColorObject() { Color = Color.FromArgb(0xAA, 0x00, 0x00, 0x80) },
FillColor = new ColorObject() { Color = Colors.Lavender },
};
}
/// <summary> /// <summary>
/// 中间X /// 中间X
/// </summary> /// </summary>
@@ -114,54 +120,28 @@ namespace AIStudio.Wpf.DiagramDesigner
set { connectorHeight = value; } set { connectorHeight = value; }
} }
private IColorViewModel _colorViewModel; public static ConnectorPointModel operator -(ConnectorPointModel a, ConnectorPointModel b)
public IColorViewModel ColorViewModel
{ {
get return new ConnectorPointModel(a.X - b.X, a.Y - b.Y);
{ }
return _colorViewModel; public static ConnectorPointModel operator +(ConnectorPointModel a, ConnectorPointModel b)
} {
set return new ConnectorPointModel(a.X + b.X, a.Y + b.Y);
{
SetProperty(ref _colorViewModel, value);
}
} }
private IFontViewModel _fontViewModel; public static implicit operator ConnectorPointModel(PointBase point)
public IFontViewModel FontViewModel
{ {
get return new ConnectorPointModel(point);
{
return _fontViewModel;
}
set
{
SetProperty(ref _fontViewModel, value);
}
} }
public static ConnectorPoint operator -(ConnectorPoint a, ConnectorPoint b) public static implicit operator PointBase(ConnectorPointModel pointInfoBase)
{
return new ConnectorPoint(a.X - b.X, a.Y - b.Y);
}
public static ConnectorPoint operator +(ConnectorPoint a, ConnectorPoint b)
{
return new ConnectorPoint(a.X + b.X, a.Y + b.Y);
}
public static implicit operator ConnectorPoint(PointBase point)
{
return new ConnectorPoint(point);
}
public static implicit operator PointBase(ConnectorPoint pointInfoBase)
{ {
return new PointBase(pointInfoBase.X, pointInfoBase.Y); return new PointBase(pointInfoBase.X, pointInfoBase.Y);
} }
public static List<ConnectorPoint> ToList(List<PointBase> lst) public static List<ConnectorPointModel> ToList(List<PointBase> lst)
{ {
return lst.Select(p => (ConnectorPoint)p).ToList(); return lst.Select(p => (ConnectorPointModel)p).ToList();
} }
public override string ToString() => $"ConnectorPoint(x={X}, y={Y})"; public override string ToString() => $"ConnectorPoint(x={X}, y={Y})";

View File

@@ -2,31 +2,45 @@
namespace AIStudio.Wpf.DiagramDesigner namespace AIStudio.Wpf.DiagramDesigner
{ {
public class ConnectorVertexModel : ConnectorPoint public class ConnectorVertexModel : ConnectorPointModel
{ {
public ConnectorVertexModel(ConnectorViewModel parent, PointBase? position = null) public ConnectorVertexModel(ConnectorViewModel connector, PointBase? position = null)
{ {
Parent = parent; Parent = connector;
X = position?.X ?? 0; X = position?.X ?? 0;
Y = position?.Y ?? 0; Y = position?.Y ?? 0;
}
protected override void Init()
{
base.Init();
DeleteVertexCommand = new SimpleCommand(DeleteVertex); DeleteVertexCommand = new SimpleCommand(DeleteVertex);
} }
public ConnectorViewModel Parent protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
get; base.LoadDesignerItemViewModel(root, designerbase);
}
public ConnectorViewModel Connector
{
get
{
return Parent as ConnectorViewModel;
}
} }
public override PointBase Position public override PointBase Position
{ {
get get
{ {
return new PointBase(Parent.Area.Left + Left, Parent.Area.Top + Top); return new PointBase(Connector.Area.Left + Left, Connector.Area.Top + Top);
} }
} }
public override PointBase MiddlePosition => new PointBase(Parent.Area.Left + Left + ConnectorWidth / 2, Parent.Area.Top + Top + ConnectorHeight / 2); public override PointBase MiddlePosition => new PointBase(Connector.Area.Left + Left + ConnectorWidth / 2, Connector.Area.Top + Top + ConnectorHeight / 2);
public SimpleCommand DeleteVertexCommand public SimpleCommand DeleteVertexCommand
{ {
@@ -37,7 +51,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
if (parameter is ConnectorVertexModel vertice) if (parameter is ConnectorVertexModel vertice)
{ {
Parent.Vertices.Remove(vertice); Connector.Vertices.Remove(vertice);
} }
} }

View File

@@ -15,15 +15,15 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
public class ConnectorViewModel : SelectableDesignerItemViewModelBase public class ConnectorViewModel : SelectableDesignerItemViewModelBase
{ {
public ConnectorViewModel(IDiagramViewModel parent, FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode) public ConnectorViewModel(IDiagramViewModel root, FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode)
{ {
Parent = parent; Root = root;
PathMode = drawMode.ToString(); PathMode = drawMode.ToString();
RouterMode = routerMode.ToString(); RouterMode = routerMode.ToString();
Init(sourceConnectorInfo, sinkConnectorInfo); Init(sourceConnectorInfo, sinkConnectorInfo);
} }
public ConnectorViewModel(IDiagramViewModel parent, FullyCreatedConnectorInfo sourceConnectorInfo, FullyCreatedConnectorInfo sinkConnectorInfo, ConnectionItem designer) : base(parent, designer) public ConnectorViewModel(IDiagramViewModel root, FullyCreatedConnectorInfo sourceConnectorInfo, FullyCreatedConnectorInfo sinkConnectorInfo, ConnectionItem designer) : base(root, designer)
{ {
PathMode = designer.PathMode; PathMode = designer.PathMode;
RouterMode = designer.RouterMode; RouterMode = designer.RouterMode;
@@ -39,11 +39,11 @@ namespace AIStudio.Wpf.DiagramDesigner
protected virtual void Init(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo) protected virtual void Init(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo)
{ {
this.Parent = sourceConnectorInfo.DataItem.Parent; this.Root = sourceConnectorInfo.DataItem.Root;
if (Parent != null && Parent.ColorViewModel != null) if (Root != null && Root.ColorViewModel != null)
{ {
this.ColorViewModel = CopyHelper.Mapper(Parent.ColorViewModel); this.ColorViewModel = CopyHelper.Mapper(Root.ColorViewModel);
} }
if (sinkConnectorInfo is FullyCreatedConnectorInfo sink && sink.DataItem.ShowArrow == false) if (sinkConnectorInfo is FullyCreatedConnectorInfo sink && sink.DataItem.ShowArrow == false)
{ {
@@ -65,14 +65,14 @@ namespace AIStudio.Wpf.DiagramDesigner
AddLabelCommand = new SimpleCommand(AddLabel); AddLabelCommand = new SimpleCommand(AddLabel);
} }
protected void LoadDesignerItemViewModel(SelectableDesignerItemBase designerbase) protected void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{ {
ConnectionItem designer = designerbase as ConnectionItem; ConnectionItem designer = designerbase as ConnectionItem;
Vertices = new ObservableCollection<ConnectorVertexModel>(designer.Vertices.Select(p => new ConnectorVertexModel(this, new PointBase(p.X, p.Y)))); Vertices = new ObservableCollection<ConnectorVertexModel>(designer.Vertices.Select(p => new ConnectorVertexModel(this, new PointBase(p.X, p.Y))));
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
if (IsFullConnection) if (IsFullConnection)
{ {
@@ -92,6 +92,51 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
#region #region
private string _text;
[Browsable(true)]
[CanDo]
public override string Text
{
get
{
var text = _text;
if (Labels?.Count > 0)
{
text = Labels[0].Text;
}
if (FontViewModel.FontCase == FontCase.Upper)
{
return text?.ToUpper();
}
else if (FontViewModel.FontCase == FontCase.Lower)
{
return text?.ToLower();
}
else
{
return text;
}
}
set
{
if (SetProperty(ref _text, value))
{
if (!string.IsNullOrEmpty(_text))
{
if (Labels?.Count > 0)
{
Labels[0].Text = _text;
}
else
{
AddLabel(_text);
}
}
}
}
}
private PointBase _sourceA; private PointBase _sourceA;
public PointBase SourceA public PointBase SourceA
{ {
@@ -438,8 +483,8 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
switch (e.PropertyName) switch (e.PropertyName)
{ {
case nameof(ConnectorPoint.X): case nameof(ConnectorPointModel.X):
case nameof(ConnectorPoint.Y): case nameof(ConnectorPointModel.Y):
UpdatePathGeneratorResult(); UpdatePathGeneratorResult();
break; break;
@@ -449,7 +494,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
switch (e.PropertyName) switch (e.PropertyName)
{ {
case nameof(ConnectorPoint.X): case nameof(ConnectorPointModel.X):
{ {
if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs) if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs)
{ {
@@ -457,7 +502,7 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
break; break;
} }
case nameof(ConnectorPoint.Y): case nameof(ConnectorPointModel.Y):
{ {
if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs) if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs)
{ {
@@ -479,13 +524,13 @@ namespace AIStudio.Wpf.DiagramDesigner
if (SourceConnectorInfo == null || SinkConnectorInfo == null) if (SourceConnectorInfo == null || SinkConnectorInfo == null)
return; return;
var route = Router.Get(Parent, this); var route = Router.Get(Root, this);
(var source, var target) = FindConnectionPoints(route); (var source, var target) = FindConnectionPoints(route);
if (source == null || target == null) if (source == null || target == null)
return; return;
PathGeneratorResult = PathGenerator.Get(Parent, this, route, source.Value, target.Value); PathGeneratorResult = PathGenerator.Get(Root, this, route, source.Value, target.Value);
//修正旋转 //修正旋转
switch (SourceConnectorInfo.Orientation) switch (SourceConnectorInfo.Orientation)
@@ -560,9 +605,9 @@ namespace AIStudio.Wpf.DiagramDesigner
private void DeleteConnection(object args) private void DeleteConnection(object args)
{ {
if (this.Parent is IDiagramViewModel) if (this.Root is IDiagramViewModel)
{ {
var diagramVM = this.Parent as IDiagramViewModel; var diagramVM = this.Root as IDiagramViewModel;
diagramVM.RemoveItemCommand.Execute(this); diagramVM.RemoveItemCommand.Execute(this);
} }
} }

View File

@@ -18,12 +18,12 @@ namespace AIStudio.Wpf.DiagramDesigner
ShapeDefiner = Shapes.Rectangle; ShapeDefiner = Shapes.Rectangle;
} }
public DesignerItemViewModelBase(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public DesignerItemViewModelBase(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
ShapeDefiner = Shapes.Rectangle; ShapeDefiner = Shapes.Rectangle;
} }
public DesignerItemViewModelBase(IDiagramViewModel parent, string json) : base(parent, json) public DesignerItemViewModelBase(IDiagramViewModel root, string json) : base(root, json)
{ {
ShapeDefiner = Shapes.Rectangle; ShapeDefiner = Shapes.Rectangle;
} }
@@ -35,9 +35,9 @@ namespace AIStudio.Wpf.DiagramDesigner
InitConnector(); InitConnector();
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
DesignerItemBase designer = designerbase as DesignerItemBase; DesignerItemBase designer = designerbase as DesignerItemBase;
@@ -51,7 +51,7 @@ namespace AIStudio.Wpf.DiagramDesigner
this.Icon = designer.Icon; this.Icon = designer.Icon;
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new DesignerItemBase(this); return new DesignerItemBase(this);
} }
@@ -382,41 +382,41 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
if (!(this is TextDesignerItemViewModel)) if (!(this is TextDesignerItemViewModel))
{ {
if (Parent.CellHorizontalAlignment == CellHorizontalAlignment.Center) if (Root.CellHorizontalAlignment == CellHorizontalAlignment.Center)
{ {
if (Parent.GridCellSize.Width > this.ItemWidth) if (Root.GridCellSize.Width > this.ItemWidth)
{ {
this.Left = (int)(this.Left / Parent.GridCellSize.Width) * Parent.GridCellSize.Width + Parent.GridMargin + (Parent.GridCellSize.Width - this.ItemWidth) / 2; this.Left = (int)(this.Left / Root.GridCellSize.Width) * Root.GridCellSize.Width + Root.GridMargin + (Root.GridCellSize.Width - this.ItemWidth) / 2;
} }
} }
else if (Parent.CellHorizontalAlignment == CellHorizontalAlignment.Left) else if (Root.CellHorizontalAlignment == CellHorizontalAlignment.Left)
{ {
this.Left = (int)(this.Left / Parent.GridCellSize.Width) * Parent.GridCellSize.Width + Parent.GridMargin; this.Left = (int)(this.Left / Root.GridCellSize.Width) * Root.GridCellSize.Width + Root.GridMargin;
} }
else if (Parent.CellHorizontalAlignment == CellHorizontalAlignment.Right) else if (Root.CellHorizontalAlignment == CellHorizontalAlignment.Right)
{ {
if (Parent.GridCellSize.Width > this.ItemWidth) if (Root.GridCellSize.Width > this.ItemWidth)
{ {
this.Left = (int)(this.Left / Parent.GridCellSize.Width) * Parent.GridCellSize.Width + Parent.GridMargin + (Parent.GridCellSize.Width - this.ItemWidth); this.Left = (int)(this.Left / Root.GridCellSize.Width) * Root.GridCellSize.Width + Root.GridMargin + (Root.GridCellSize.Width - this.ItemWidth);
} }
} }
if (Parent.CellVerticalAlignment == CellVerticalAlignment.Center) if (Root.CellVerticalAlignment == CellVerticalAlignment.Center)
{ {
if (Parent.GridCellSize.Height > this.ItemHeight) if (Root.GridCellSize.Height > this.ItemHeight)
{ {
this.Top = (int)(this.Top / Parent.GridCellSize.Height) * Parent.GridCellSize.Height + Parent.GridMargin + (Parent.GridCellSize.Height - this.ItemHeight) / 2; this.Top = (int)(this.Top / Root.GridCellSize.Height) * Root.GridCellSize.Height + Root.GridMargin + (Root.GridCellSize.Height - this.ItemHeight) / 2;
} }
} }
else if (Parent.CellVerticalAlignment == CellVerticalAlignment.Top) else if (Root.CellVerticalAlignment == CellVerticalAlignment.Top)
{ {
this.Top = (int)(this.Top / Parent.GridCellSize.Height) * Parent.GridCellSize.Height + Parent.GridMargin; this.Top = (int)(this.Top / Root.GridCellSize.Height) * Root.GridCellSize.Height + Root.GridMargin;
} }
else if (Parent.CellVerticalAlignment == CellVerticalAlignment.Bottom) else if (Root.CellVerticalAlignment == CellVerticalAlignment.Bottom)
{ {
if (Parent.GridCellSize.Height > this.ItemHeight) if (Root.GridCellSize.Height > this.ItemHeight)
{ {
this.Top = (int)(this.Top / Parent.GridCellSize.Height) * Parent.GridCellSize.Height + Parent.GridMargin + (Parent.GridCellSize.Height - this.ItemHeight); this.Top = (int)(this.Top / Root.GridCellSize.Height) * Root.GridCellSize.Height + Root.GridMargin + (Root.GridCellSize.Height - this.ItemHeight);
} }
} }
} }

View File

@@ -743,7 +743,7 @@ namespace AIStudio.Wpf.DiagramDesigner
private void Add(SelectableDesignerItemViewModelBase item) private void Add(SelectableDesignerItemViewModelBase item)
{ {
item.Parent = this; item.Root = this;
item.ZIndex = Items.Count; item.ZIndex = Items.Count;
if (item.Id == Guid.Empty) if (item.Id == Guid.Empty)
{ {

View File

@@ -28,12 +28,12 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
public SelectableDesignerItemViewModelBase(IDiagramViewModel parent, SelectableDesignerItemBase designer):base(parent, designer) public SelectableDesignerItemViewModelBase(IDiagramViewModel root, SelectableItemBase designer):base(root, designer)
{ {
} }
public SelectableDesignerItemViewModelBase(IDiagramViewModel parent, string json) : base(parent, json) public SelectableDesignerItemViewModelBase(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -134,7 +134,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
if (newselect) if (newselect)
{ {
foreach (var designerItemViewModelBase in Parent.SelectedItems.ToList()) foreach (var designerItemViewModelBase in Root.SelectedItems.ToList())
{ {
designerItemViewModelBase._isSelected = false; designerItemViewModelBase._isSelected = false;
} }
@@ -145,13 +145,13 @@ namespace AIStudio.Wpf.DiagramDesigner
public override void AddToSelection(bool selected) public override void AddToSelection(bool selected)
{ {
foreach (SelectableDesignerItemViewModelBase item in Parent.SelectedItems.ToList()) foreach (SelectableDesignerItemViewModelBase item in Root.SelectedItems.ToList())
item.IsSelected = false; item.IsSelected = false;
Parent.SelectedItems.Clear(); Root.SelectedItems.Clear();
if (selected == true) if (selected == true)
{ {
Parent.SelectionService.AddToSelection(this); Root.SelectionService.AddToSelection(this);
} }
} }

View File

@@ -26,21 +26,21 @@ namespace AIStudio.Wpf.DiagramDesigner
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged; (FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
} }
public SelectableViewModelBase(IDiagramViewModel parent, SelectableDesignerItemBase designer) public SelectableViewModelBase(IDiagramViewModel root, SelectableItemBase designer)
{ {
Init(); Init();
LoadDesignerItemViewModel(parent, designer); LoadDesignerItemViewModel(root, designer);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged; (FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
} }
public SelectableViewModelBase(IDiagramViewModel parent, string json) public SelectableViewModelBase(IDiagramViewModel root, string json)
{ {
Init(); Init();
LoadDesignerItemViewModel(parent, JsonConvert.DeserializeObject(json, ToXmlType()) as SelectableDesignerItemBase); LoadDesignerItemViewModel(root, JsonConvert.DeserializeObject(json, ToXmlType()) as SelectableItemBase);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged; (FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
} }
public virtual SelectableDesignerItemBase ToXmlObject() public virtual SelectableItemBase ToXmlObject()
{ {
return null; return null;
} }
@@ -72,9 +72,9 @@ namespace AIStudio.Wpf.DiagramDesigner
LockObjectViewModel = new LockObjectViewModel(); LockObjectViewModel = new LockObjectViewModel();
} }
protected virtual void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected virtual void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
this.Parent = parent; this.Root = root;
this.Id = designerbase.Id; this.Id = designerbase.Id;
this.ParentId = designerbase.ParentId; this.ParentId = designerbase.ParentId;
@@ -86,10 +86,16 @@ namespace AIStudio.Wpf.DiagramDesigner
FontViewModel = CopyHelper.Mapper<FontViewModel, FontItem>(designerbase.FontItem); FontViewModel = CopyHelper.Mapper<FontViewModel, FontItem>(designerbase.FontItem);
} }
public IDiagramViewModel Parent public IDiagramViewModel Root
{ {
get; set; get; set;
} }
public SelectableViewModelBase Parent
{
get; set;
}
public Guid Id public Guid Id
{ {
get; set; get; set;
@@ -148,10 +154,16 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
get get
{ {
if (Parent?.IsReadOnly == true && Parent?.IsLoading == false) if (Root?.IsReadOnly == true && Root?.IsLoading == false)
{ {
return true; return true;
} }
if (Parent?.IsReadOnly == true)
{
return true;
}
if (LockObjectViewModel?.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All)?.IsChecked == true) if (LockObjectViewModel?.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All)?.IsChecked == true)
{ {
return true; return true;
@@ -170,6 +182,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
get get
{ {
if (Parent?.IsHitTestVisible == false)
{
return false;
}
return _isHitTestVisible; return _isHitTestVisible;
} }
set set

View File

@@ -25,17 +25,17 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
} }
public GifImageItemViewModel(IDiagramViewModel parent, MediaDesignerItem designer) : base(parent, designer) public GifImageItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer)
{ {
} }
public GifImageItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public GifImageItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new MediaDesignerItem(this); return new MediaDesignerItem(this);
} }
@@ -60,9 +60,9 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
MediaDesignerItem designer = designerbase as MediaDesignerItem; MediaDesignerItem designer = designerbase as MediaDesignerItem;

View File

@@ -20,17 +20,17 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
} }
public ImageItemViewModel(IDiagramViewModel parent, ImageDesignerItem designer) : base(parent, designer) public ImageItemViewModel(IDiagramViewModel root, ImageDesignerItem designer) : base(root, designer)
{ {
} }
public ImageItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ImageItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new ImageDesignerItem(this); return new ImageDesignerItem(this);
} }
@@ -114,9 +114,9 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
ImageDesignerItem designer = designerbase as ImageDesignerItem; ImageDesignerItem designer = designerbase as ImageDesignerItem;

View File

@@ -73,17 +73,17 @@ namespace AIStudio.Wpf.DiagramDesigner
BuildMenuOptions(); BuildMenuOptions();
} }
public LogicalGateItemViewModelBase(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public LogicalGateItemViewModelBase(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
BuildMenuOptions(); BuildMenuOptions();
} }
public LogicalGateItemViewModelBase(IDiagramViewModel parent, string json) : base(parent, json) public LogicalGateItemViewModelBase(IDiagramViewModel root, string json) : base(root, json)
{ {
BuildMenuOptions(); BuildMenuOptions();
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new LogicalGateDesignerItemBase(this); return new LogicalGateDesignerItemBase(this);
} }
@@ -137,9 +137,9 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
this.LogicalType = designer.LogicalType; this.LogicalType = designer.LogicalType;

View File

@@ -14,17 +14,17 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
public MediaItemViewModel(IDiagramViewModel parent, MediaDesignerItem designer) : base(parent, designer) public MediaItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer)
{ {
} }
public MediaItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public MediaItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new MediaDesignerItem(this); return new MediaDesignerItem(this);
} }
@@ -42,7 +42,7 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(parent, designerbase);

View File

@@ -10,18 +10,18 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
public TextDesignerItemViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public TextDesignerItemViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public TextDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public TextDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new TextDesignerItem(this); return new TextDesignerItem(this);
} }

View File

@@ -13,13 +13,13 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
} }
public VideoItemViewModel(IDiagramViewModel parent, MediaDesignerItem designer) : base(parent, designer) public VideoItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer)
{ {
} }
public VideoItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public VideoItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -14,16 +14,16 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
} }
public BarcodeDesignerItemViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public BarcodeDesignerItemViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public BarcodeDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public BarcodeDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new DesignerItemBase(this, Format.ToString()); return new DesignerItemBase(this, Format.ToString());
} }
@@ -35,9 +35,9 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), (designerbase as DesignerItemBase).Reserve.ToString()); Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), (designerbase as DesignerItemBase).Reserve.ToString());
} }

View File

@@ -14,12 +14,12 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
} }
public OutLineTextDesignerItemViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public OutLineTextDesignerItemViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public OutLineTextDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public OutLineTextDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -11,18 +11,18 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
} }
public PathItemViewModel(IDiagramViewModel parent, PathDesignerItem designer) : base(parent, designer) public PathItemViewModel(IDiagramViewModel root, PathDesignerItem designer) : base(root, designer)
{ {
} }
public PathItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public PathItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new PathDesignerItem(this); return new PathDesignerItem(this);
} }

View File

@@ -14,17 +14,17 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
} }
public PersistDesignerItemViewModel(IDiagramViewModel parent, PersistDesignerItem designer) : base(parent, designer) public PersistDesignerItemViewModel(IDiagramViewModel root, PersistDesignerItem designer) : base(root, designer)
{ {
} }
public PersistDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public PersistDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new PersistDesignerItem(this); return new PersistDesignerItem(this);
} }
@@ -43,9 +43,9 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
this.ShowConnectors = false; this.ShowConnectors = false;
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
PersistDesignerItem designer = designerbase as PersistDesignerItem; PersistDesignerItem designer = designerbase as PersistDesignerItem;
this.HostUrl = designer.HostUrl; this.HostUrl = designer.HostUrl;

View File

@@ -14,17 +14,17 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
} }
public SettingsDesignerItemViewModel(IDiagramViewModel parent, SettingsDesignerItem designer) : base(parent, designer) public SettingsDesignerItemViewModel(IDiagramViewModel root, SettingsDesignerItem designer) : base(root, designer)
{ {
} }
public SettingsDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SettingsDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new SettingsDesignerItem(this); return new SettingsDesignerItem(this);
} }
@@ -42,9 +42,9 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
this.ShowConnectors = false; this.ShowConnectors = false;
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
SettingsDesignerItem designer = designerbase as SettingsDesignerItem; SettingsDesignerItem designer = designerbase as SettingsDesignerItem;
this.Setting = designer.Setting; this.Setting = designer.Setting;

View File

@@ -10,12 +10,12 @@ namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
{ {
} }
public SvgDesignerItemViewModel(IDiagramViewModel parent, MediaDesignerItem designer) : base(parent, designer) public SvgDesignerItemViewModel(IDiagramViewModel root, MediaDesignerItem designer) : base(root, designer)
{ {
} }
public SvgDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SvgDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -249,8 +249,8 @@ namespace AIStudio.Wpf.Flowchart
break; break;
case 3: case 3:
SetStatus(flowNode, status, remark); SetStatus(flowNode, status, remark);
FlowNodes[flowNode.Parent].ForEach(p => { if (p.Status == 100) p.Status = 0; }); FlowNodes[flowNode.Root].ForEach(p => { if (p.Status == 100) p.Status = 0; });
Approve(FlowNodes[flowNode.Parent][0], 100); Approve(FlowNodes[flowNode.Root][0], 100);
MessageBox.Show("流程重新开始"); MessageBox.Show("流程重新开始");
break; break;
case 4: case 4:
@@ -266,7 +266,7 @@ namespace AIStudio.Wpf.Flowchart
/// <param name="stepid"></param> /// <param name="stepid"></param>
public static void Next(string stepid, FlowNode flowNode) public static void Next(string stepid, FlowNode flowNode)
{ {
FlowNode nextNode = FlowNodes[flowNode.Parent].FirstOrDefault(p => p.Id.ToString() == stepid); FlowNode nextNode = FlowNodes[flowNode.Root].FirstOrDefault(p => p.Id.ToString() == stepid);
SetStatus(nextNode, 1); SetStatus(nextNode, 1);
switch (nextNode.Kind) switch (nextNode.Kind)
@@ -312,7 +312,7 @@ namespace AIStudio.Wpf.Flowchart
case NodeKinds.COEnd: case NodeKinds.COEnd:
foreach (var prestep in nextNode.PreStepId) foreach (var prestep in nextNode.PreStepId)
{ {
var step = FlowNodes[flowNode.Parent].FirstOrDefault(p => p.Id.ToString() == prestep); var step = FlowNodes[flowNode.Root].FirstOrDefault(p => p.Id.ToString() == prestep);
if (step.Status != 100)//如果并行分支没有都完成,那么并行结束节点也未完成 if (step.Status != 100)//如果并行分支没有都完成,那么并行结束节点也未完成
{ {
return; return;
@@ -333,7 +333,7 @@ namespace AIStudio.Wpf.Flowchart
{ {
if (flowNode.PreStepId != null && flowNode.PreStepId.Count == 1) if (flowNode.PreStepId != null && flowNode.PreStepId.Count == 1)
{ {
FlowNode preNode = FlowNodes[flowNode.Parent].FirstOrDefault(p => p.Id.ToString() == flowNode.PreStepId[0]); FlowNode preNode = FlowNodes[flowNode.Root].FirstOrDefault(p => p.Id.ToString() == flowNode.PreStepId[0]);
if (preNode.Kind == NodeKinds.Middle) if (preNode.Kind == NodeKinds.Middle)
{ {
SetStatus(preNode, 1); SetStatus(preNode, 1);

View File

@@ -54,10 +54,10 @@ namespace AIStudio.Wpf.Flowchart.Models
diagramNode.ParentId = nodeModel.ParentId.ToString(); diagramNode.ParentId = nodeModel.ParentId.ToString();
} }
diagramNode.Label = nodeModel.Text; diagramNode.Label = nodeModel.Text;
diagramNode.Width = nodeModel.ItemWidth * nodeModel.Parent.ScreenScale; diagramNode.Width = nodeModel.ItemWidth * nodeModel.Root.ScreenScale;
diagramNode.Height = nodeModel.ItemHeight * nodeModel.Parent.ScreenScale; diagramNode.Height = nodeModel.ItemHeight * nodeModel.Root.ScreenScale;
diagramNode.X = nodeModel.Left * nodeModel.Parent.ScreenScale; diagramNode.X = nodeModel.Left * nodeModel.Root.ScreenScale;
diagramNode.Y = nodeModel.Top * nodeModel.Parent.ScreenScale; diagramNode.Y = nodeModel.Top * nodeModel.Root.ScreenScale;
diagramNode.ZIndex = nodeModel.ZIndex; diagramNode.ZIndex = nodeModel.ZIndex;
diagramNode.Type = diagramNode.GetType().Name; diagramNode.Type = diagramNode.GetType().Name;
diagramNode.PortAlignmentList = nodeModel.Connectors.Select(p => p.Orientation.ToString()).ToList(); diagramNode.PortAlignmentList = nodeModel.Connectors.Select(p => p.Orientation.ToString()).ToList();
@@ -209,7 +209,7 @@ namespace AIStudio.Wpf.Flowchart.Models
{ {
nodeModel.ParentId = new Guid(diagramNode.ParentId); nodeModel.ParentId = new Guid(diagramNode.ParentId);
} }
nodeModel.Parent = diagram; nodeModel.Root = diagram;
nodeModel.Text = diagramNode.Label; nodeModel.Text = diagramNode.Label;
nodeModel.ItemWidth = diagramNode.Width / diagram.ScreenScale; nodeModel.ItemWidth = diagramNode.Width / diagram.ScreenScale;
nodeModel.ItemHeight = diagramNode.Height / diagram.ScreenScale; nodeModel.ItemHeight = diagramNode.Height / diagram.ScreenScale;

View File

@@ -17,17 +17,17 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
Text = Kind.GetDescription(); Text = Kind.GetDescription();
} }
public FlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public FlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public FlowNode(IDiagramViewModel parent, string json) : base(parent, json) public FlowNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new FlowNodeDesignerItem(this); return new FlowNodeDesignerItem(this);
} }
@@ -48,9 +48,9 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService; visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
FlowNodeDesignerItem designer = designerbase as FlowNodeDesignerItem; FlowNodeDesignerItem designer = designerbase as FlowNodeDesignerItem;
this.Color = designer.Color; this.Color = designer.Color;
@@ -132,12 +132,12 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
} }
public StartFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public StartFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public StartFlowNode(IDiagramViewModel parent, string json) : base(parent, json) public StartFlowNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -150,12 +150,12 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
} }
public EndFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public EndFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public EndFlowNode(IDiagramViewModel parent, string json) : base(parent, json) public EndFlowNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -168,12 +168,12 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
} }
public DecideFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public DecideFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public DecideFlowNode(IDiagramViewModel parent, string json) : base(parent, json) public DecideFlowNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -186,12 +186,12 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
} }
public COBeginFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public COBeginFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public COBeginFlowNode(IDiagramViewModel parent, string json) : base(parent, json) public COBeginFlowNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -204,12 +204,12 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
} }
public COEndFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public COEndFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public COEndFlowNode(IDiagramViewModel parent, string json) : base(parent, json) public COEndFlowNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -13,12 +13,12 @@ namespace AIStudio.Wpf.Flowchart.ViewModels
} }
public MiddleFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public MiddleFlowNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public MiddleFlowNode(IDiagramViewModel parent, string json) : base(parent, json) public MiddleFlowNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -15,12 +15,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
ColorViewModel.FillColor.Color = Colors.Orange; ColorViewModel.FillColor.Color = Colors.Orange;
} }
public LogicalGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public LogicalGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public LogicalGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public LogicalGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -32,9 +32,9 @@ namespace AIStudio.Wpf.Logical.ViewModels
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService; visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
this.Value = designer.Value; this.Value = designer.Value;
@@ -68,11 +68,11 @@ namespace AIStudio.Wpf.Logical.ViewModels
{ {
} }
public AddGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public AddGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public AddGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public AddGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -84,11 +84,11 @@ namespace AIStudio.Wpf.Logical.ViewModels
{ {
} }
public SubtractGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public SubtractGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public SubtractGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SubtractGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -100,11 +100,11 @@ namespace AIStudio.Wpf.Logical.ViewModels
{ {
} }
public MultiplyGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public MultiplyGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public MultiplyGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public MultiplyGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -117,11 +117,11 @@ namespace AIStudio.Wpf.Logical.ViewModels
{ {
} }
public DivideGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public DivideGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public DivideGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public DivideGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -134,12 +134,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public AverageGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public AverageGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public AverageGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public AverageGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -152,12 +152,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public MODGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public MODGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public MODGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public MODGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -170,12 +170,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public ANDGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ANDGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ANDGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ANDGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -188,12 +188,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public ORGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ORGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ORGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ORGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -206,12 +206,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public XORGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public XORGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public XORGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public XORGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -224,12 +224,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public NOTGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public NOTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public NOTGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public NOTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -242,12 +242,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public SHLGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public SHLGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public SHLGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SHLGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -260,12 +260,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public SHRGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public SHRGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public SHRGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SHRGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -278,12 +278,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public ROLGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ROLGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ROLGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ROLGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -296,12 +296,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public RORGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public RORGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public RORGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public RORGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -314,12 +314,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public SELGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public SELGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public SELGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SELGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -332,12 +332,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public MAXGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public MAXGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public MAXGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public MAXGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -350,12 +350,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public MINGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public MINGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public MINGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public MINGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -368,12 +368,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public LIMITGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public LIMITGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public LIMITGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public LIMITGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -386,12 +386,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public GTGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public GTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public GTGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public GTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -404,12 +404,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public LTGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public LTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public LTGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public LTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -422,12 +422,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public GEGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public GEGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public GEGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public GEGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -440,12 +440,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public LEGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public LEGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public LEGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public LEGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -458,12 +458,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public EQGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public EQGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public EQGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public EQGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -476,12 +476,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public NEGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public NEGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public NEGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public NEGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -494,12 +494,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public ABSGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ABSGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ABSGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ABSGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -512,12 +512,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public SQRTGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public SQRTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public SQRTGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SQRTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -530,12 +530,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public LNGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public LNGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public LNGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public LNGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -548,12 +548,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public LOGGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public LOGGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public LOGGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public LOGGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -566,12 +566,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public EXPGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public EXPGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public EXPGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public EXPGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -584,12 +584,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public SINGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public SINGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public SINGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public SINGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -602,12 +602,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public COSGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public COSGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public COSGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public COSGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -620,12 +620,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public TANGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public TANGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public TANGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public TANGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -638,12 +638,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public ASINGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ASINGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ASINGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ASINGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -656,12 +656,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public ACOSGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ACOSGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ACOSGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ACOSGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -674,12 +674,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public ATANGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ATANGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ATANGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ATANGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -692,12 +692,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
} }
public EXPTGateItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public EXPTGateItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public EXPTGateItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public EXPTGateItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -710,12 +710,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
ItemHeight = 28; ItemHeight = 28;
} }
public ConstantDesignerItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public ConstantDesignerItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public ConstantDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public ConstantDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
@@ -728,19 +728,19 @@ namespace AIStudio.Wpf.Logical.ViewModels
ItemHeight = 28; ItemHeight = 28;
} }
public InputItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public InputItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public InputItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public InputItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
this.Value = designer.Value; this.Value = designer.Value;
@@ -782,19 +782,19 @@ namespace AIStudio.Wpf.Logical.ViewModels
ItemHeight = 28; ItemHeight = 28;
} }
public OutputItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public OutputItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
} }
public OutputItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public OutputItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase; LogicalGateDesignerItemBase designer = designerbase as LogicalGateDesignerItemBase;
this.Value = designer.Value; this.Value = designer.Value;
@@ -843,12 +843,12 @@ namespace AIStudio.Wpf.Logical.ViewModels
BuildMenuOptions(); BuildMenuOptions();
} }
public TimerDesignerItemViewModel(IDiagramViewModel parent, LogicalGateDesignerItemBase designer) : base(parent, designer) public TimerDesignerItemViewModel(IDiagramViewModel root, LogicalGateDesignerItemBase designer) : base(root, designer)
{ {
BuildMenuOptions(); BuildMenuOptions();
} }
public TimerDesignerItemViewModel(IDiagramViewModel parent, string json) : base(parent, json) public TimerDesignerItemViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
BuildMenuOptions(); BuildMenuOptions();
} }
@@ -862,9 +862,9 @@ namespace AIStudio.Wpf.Logical.ViewModels
readDataTimer.Interval = 1000; readDataTimer.Interval = 1000;
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
if (IsEnabled) if (IsEnabled)
{ {

View File

@@ -22,17 +22,8 @@ namespace AIStudio.Wpf.SFC.Models
this.Connectors = new List<ConnectorItem>(); this.Connectors = new List<ConnectorItem>();
foreach (var fullyCreatedConnectorInfo in item.Connectors) foreach (var fullyCreatedConnectorInfo in item.Connectors)
{ {
ConnectorItem connector = new ConnectorItem() ConnectorItem connector = new ConnectorItem(fullyCreatedConnectorInfo);
{
XRatio = fullyCreatedConnectorInfo.XRatio,
YRatio = fullyCreatedConnectorInfo.YRatio,
ConnectorWidth = fullyCreatedConnectorInfo.ConnectorWidth,
ConnectorHeight = fullyCreatedConnectorInfo.ConnectorHeight,
Orientation = fullyCreatedConnectorInfo.Orientation,
IsInnerPoint = fullyCreatedConnectorInfo.IsInnerPoint,
ValueTypePoint = fullyCreatedConnectorInfo.ValueTypePoint,
ConnectorValue = fullyCreatedConnectorInfo.ConnectorValue
};
this.Connectors.Add(connector); this.Connectors.Add(connector);
} }
Kind = item.Kind; Kind = item.Kind;

View File

@@ -16,12 +16,12 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddLeftInput(null); ExecuteAddLeftInput(null);
} }
public SFCActionNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public SFCActionNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public SFCActionNode(IDiagramViewModel parent, string json) : base(parent, json) public SFCActionNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -17,11 +17,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddBottomOutput(null); ExecuteAddBottomOutput(null);
} }
public SFCCOBeginNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public SFCCOBeginNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public SFCCOBeginNode(IDiagramViewModel parent, string json) : base(parent, json) public SFCCOBeginNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -17,11 +17,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddTopInput(null); ExecuteAddTopInput(null);
} }
public SFCCOEndNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public SFCCOEndNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public SFCCOEndNode(IDiagramViewModel parent, string json) : base(parent, json) public SFCCOEndNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -20,11 +20,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddBottomOutput(null); ExecuteAddBottomOutput(null);
} }
public SFCConditionNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public SFCConditionNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public SFCConditionNode(IDiagramViewModel parent, string json) : base(parent, json) public SFCConditionNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -21,17 +21,17 @@ namespace AIStudio.Wpf.SFC.ViewModels
ItemHeight = 40; ItemHeight = 40;
} }
public SFCNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public SFCNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public SFCNode(IDiagramViewModel parent, string json) : base(parent, json) public SFCNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }
public override SelectableDesignerItemBase ToXmlObject() public override SelectableItemBase ToXmlObject()
{ {
return new SFCNodeDesignerItem(this); return new SFCNodeDesignerItem(this);
} }
@@ -54,9 +54,9 @@ namespace AIStudio.Wpf.SFC.ViewModels
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService; visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
} }
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) protected override void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{ {
base.LoadDesignerItemViewModel(parent, designerbase); base.LoadDesignerItemViewModel(root, designerbase);
SFCNodeDesignerItem designer = designerbase as SFCNodeDesignerItem; SFCNodeDesignerItem designer = designerbase as SFCNodeDesignerItem;
this.Kind = designer.Kind; this.Kind = designer.Kind;

View File

@@ -14,11 +14,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddActionOutput(null); ExecuteAddActionOutput(null);
} }
public SFCNodeNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public SFCNodeNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public SFCNodeNode(IDiagramViewModel parent, string json) : base(parent, json) public SFCNodeNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -13,11 +13,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddBottomOutput(null); ExecuteAddBottomOutput(null);
} }
public SFCStartNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public SFCStartNode(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public SFCStartNode(IDiagramViewModel parent, string json) : base(parent, json) public SFCStartNode(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -14,11 +14,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ItemHeight = 260; ItemHeight = 260;
} }
public Simulate_ListViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public Simulate_ListViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public Simulate_ListViewModel(IDiagramViewModel parent, string json) : base(parent, json) public Simulate_ListViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -19,11 +19,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddRightOutput(null); ExecuteAddRightOutput(null);
} }
public Simulate_SolenoidViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public Simulate_SolenoidViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public Simulate_SolenoidViewModel(IDiagramViewModel parent, string json) : base(parent, json) public Simulate_SolenoidViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -16,11 +16,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddRightOutput(null); ExecuteAddRightOutput(null);
} }
public Simulate_StartViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public Simulate_StartViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public Simulate_StartViewModel(IDiagramViewModel parent, string json) : base(parent, json) public Simulate_StartViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }

View File

@@ -19,11 +19,11 @@ namespace AIStudio.Wpf.SFC.ViewModels
ExecuteAddRightOutput(null); ExecuteAddRightOutput(null);
} }
public Simulate_TankViewModel(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer) public Simulate_TankViewModel(IDiagramViewModel root, DesignerItemBase designer) : base(root, designer)
{ {
} }
public Simulate_TankViewModel(IDiagramViewModel parent, string json) : base(parent, json) public Simulate_TankViewModel(IDiagramViewModel root, string json) : base(root, json)
{ {
} }