Files
aistudio-wpf-diagram/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/ConnectorVertexModel.cs

87 lines
2.5 KiB
C#
Raw Normal View History

2023-01-24 17:53:04 +08:00
using System;
2023-03-24 22:32:42 +08:00
using System.Windows.Input;
2023-01-24 17:53:04 +08:00
using AIStudio.Wpf.DiagramDesigner.Geometrys;
2023-01-25 11:11:27 +08:00
using AIStudio.Wpf.DiagramDesigner.Models;
2023-01-08 09:22:37 +08:00
namespace AIStudio.Wpf.DiagramDesigner
{
2023-01-24 16:20:39 +08:00
public class ConnectorVertexModel : ConnectorPointModel
2023-01-08 09:22:37 +08:00
{
2023-01-27 14:54:03 +08:00
public ConnectorVertexModel(ConnectionViewModel connector, PointBase? position = null) : this(null, connector, position)
{
}
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, PointBase? position = null) : base(root)
2023-01-08 09:22:37 +08:00
{
2023-01-24 16:20:39 +08:00
Parent = connector;
2023-01-08 09:22:37 +08:00
X = position?.X ?? 0;
2023-01-27 14:54:03 +08:00
Y = position?.Y ?? 0;
2023-01-24 16:20:39 +08:00
}
2023-01-24 17:53:04 +08:00
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, SelectableItemBase designer) : base(root, designer)
{
Parent = connector;
}
2023-01-25 11:11:27 +08:00
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
2023-01-24 17:53:04 +08:00
{
Parent = connector;
}
2023-01-25 11:11:27 +08:00
public override SelectableItemBase GetSerializableObject()
{
return new ConnectorVertexItem(this);
}
2023-03-25 11:59:31 +08:00
protected override void Init(IDiagramViewModel root, bool initNew)
2023-01-24 16:20:39 +08:00
{
2023-03-25 11:59:31 +08:00
base.Init(root, initNew);
2023-01-23 15:43:44 +08:00
2023-01-25 23:55:30 +08:00
DeleteVertexCommand = new SimpleCommand(Command_Enable, DeleteVertex);
2023-01-08 09:22:37 +08:00
}
2023-01-27 14:54:03 +08:00
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
2023-01-24 16:20:39 +08:00
{
2023-01-27 14:54:03 +08:00
base.LoadDesignerItemViewModel(designerbase);
2023-01-24 16:20:39 +08:00
2023-01-24 17:53:04 +08:00
if (designerbase is ConnectorVertexItem designer)
{
}
}
public ConnectionViewModel Connector
2023-01-08 09:22:37 +08:00
{
2023-01-24 16:20:39 +08:00
get
{
2023-01-24 17:53:04 +08:00
return Parent as ConnectionViewModel;
2023-01-24 16:20:39 +08:00
}
2023-01-08 09:22:37 +08:00
}
2023-01-21 22:01:10 +08:00
public override PointBase Position
{
get
{
2023-01-24 16:20:39 +08:00
return new PointBase(Connector.Area.Left + Left, Connector.Area.Top + Top);
2023-01-21 22:01:10 +08:00
}
}
2023-01-24 16:20:39 +08:00
public override PointBase MiddlePosition => new PointBase(Connector.Area.Left + Left + ConnectorWidth / 2, Connector.Area.Top + Top + ConnectorHeight / 2);
2023-01-21 22:01:10 +08:00
2023-03-24 22:32:42 +08:00
public ICommand DeleteVertexCommand
2023-01-23 15:43:44 +08:00
{
get; set;
}
private void DeleteVertex(object parameter)
{
if (parameter is ConnectorVertexModel vertice)
{
2023-01-24 16:20:39 +08:00
Connector.Vertices.Remove(vertice);
2023-01-23 15:43:44 +08:00
}
}
2023-01-08 09:22:37 +08:00
}
}