mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
86 lines
2.4 KiB
C#
86 lines
2.4 KiB
C#
using System;
|
|
using AIStudio.Wpf.DiagramDesigner.Geometrys;
|
|
using AIStudio.Wpf.DiagramDesigner.Models;
|
|
|
|
namespace AIStudio.Wpf.DiagramDesigner
|
|
{
|
|
public class ConnectorVertexModel : ConnectorPointModel
|
|
{
|
|
public ConnectorVertexModel(ConnectionViewModel connector, PointBase? position = null) : this(null, connector, position)
|
|
{
|
|
}
|
|
|
|
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, PointBase? position = null) : base(root)
|
|
{
|
|
Parent = connector;
|
|
X = position?.X ?? 0;
|
|
Y = position?.Y ?? 0;
|
|
}
|
|
|
|
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, SelectableItemBase designer) : base(root, designer)
|
|
{
|
|
Parent = connector;
|
|
}
|
|
|
|
public ConnectorVertexModel(IDiagramViewModel root, ConnectionViewModel connector, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
|
{
|
|
Parent = connector;
|
|
}
|
|
|
|
public override SelectableItemBase GetSerializableObject()
|
|
{
|
|
return new ConnectorVertexItem(this);
|
|
}
|
|
|
|
protected override void Init(IDiagramViewModel root)
|
|
{
|
|
base.Init(root);
|
|
|
|
DeleteVertexCommand = new SimpleCommand(Command_Enable, DeleteVertex);
|
|
}
|
|
|
|
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
|
{
|
|
base.LoadDesignerItemViewModel(designerbase);
|
|
|
|
if (designerbase is ConnectorVertexItem designer)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public ConnectionViewModel Connector
|
|
{
|
|
get
|
|
{
|
|
return Parent as ConnectionViewModel;
|
|
}
|
|
}
|
|
|
|
public override PointBase Position
|
|
{
|
|
get
|
|
{
|
|
return new PointBase(Connector.Area.Left + Left, Connector.Area.Top + Top);
|
|
}
|
|
}
|
|
|
|
public override PointBase MiddlePosition => new PointBase(Connector.Area.Left + Left + ConnectorWidth / 2, Connector.Area.Top + Top + ConnectorHeight / 2);
|
|
|
|
public SimpleCommand DeleteVertexCommand
|
|
{
|
|
get; set;
|
|
}
|
|
|
|
private void DeleteVertex(object parameter)
|
|
{
|
|
if (parameter is ConnectorVertexModel vertice)
|
|
{
|
|
Connector.Vertices.Remove(vertice);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|