2023-01-31 22:45:50 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using AIStudio.Wpf.DiagramDesigner.Models;
|
|
|
|
|
|
|
|
|
|
|
|
namespace AIStudio.Wpf.DiagramDesigner
|
|
|
|
|
|
{
|
|
|
|
|
|
public class LogicalConnectorInfo : FullyCreatedConnectorInfo
|
|
|
|
|
|
{
|
2023-04-24 20:10:17 +08:00
|
|
|
|
public LogicalConnectorInfo(DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, bool isPortless = false, ConnectorValueType valueTypePoint = ConnectorValueType.Real) : base(dataItem, orientation, isInnerPoint, isPortless)
|
2023-01-31 22:45:50 +08:00
|
|
|
|
{
|
2023-04-24 20:10:17 +08:00
|
|
|
|
this.ConnectorValueType = valueTypePoint;
|
2023-01-31 22:45:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2023-04-24 20:10:17 +08:00
|
|
|
|
public LogicalConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, ConnectorOrientation orientation, bool isInnerPoint = false, bool isPortless = false, ConnectorValueType valueTypePoint = ConnectorValueType.Real) : base(root, dataItem, orientation, isInnerPoint, isPortless)
|
2023-01-31 22:45:50 +08:00
|
|
|
|
{
|
2023-04-24 20:10:17 +08:00
|
|
|
|
this.ConnectorValueType = valueTypePoint;
|
2023-04-25 23:07:25 +08:00
|
|
|
|
}
|
2023-01-31 22:45:50 +08:00
|
|
|
|
|
|
|
|
|
|
public LogicalConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, SelectableItemBase designer) : base(root, dataItem, designer)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public LogicalConnectorInfo(IDiagramViewModel root, DesignerItemViewModelBase dataItem, SerializableItem serializableItem, string serializableType) : base(root, dataItem, serializableItem, serializableType)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override SelectableItemBase GetSerializableObject()
|
|
|
|
|
|
{
|
|
|
|
|
|
return new LogicalConnectorInfoItem(this);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
|
|
|
|
|
{
|
|
|
|
|
|
base.LoadDesignerItemViewModel(designerbase);
|
|
|
|
|
|
|
|
|
|
|
|
if (designerbase is LogicalConnectorInfoItem designer)
|
|
|
|
|
|
{
|
2023-02-11 22:20:24 +08:00
|
|
|
|
ConnectorValue = designer.ConnectorValue;
|
2023-04-24 20:10:17 +08:00
|
|
|
|
ConnectorValueType = designer.ConnectorValueType;
|
2023-04-19 22:26:04 +08:00
|
|
|
|
ConnectorString = designer.ConnectorString;
|
2023-01-31 22:45:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-04-25 23:07:25 +08:00
|
|
|
|
private double _connectorValue;
|
2023-02-11 22:20:24 +08:00
|
|
|
|
public double ConnectorValue
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _connectorValue;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
SetProperty(ref _connectorValue, value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-04-25 23:07:25 +08:00
|
|
|
|
private string _connectorString;
|
2023-04-19 22:26:04 +08:00
|
|
|
|
public string ConnectorString
|
2023-01-31 22:45:50 +08:00
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
2023-04-19 22:26:04 +08:00
|
|
|
|
return _connectorString;
|
2023-01-31 22:45:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
2023-04-19 22:26:04 +08:00
|
|
|
|
SetProperty(ref _connectorString, value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-04-25 23:07:25 +08:00
|
|
|
|
private ConnectorValueType _connectorValueType;
|
2023-04-24 20:10:17 +08:00
|
|
|
|
public ConnectorValueType ConnectorValueType
|
2023-04-19 22:26:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
2023-04-24 22:43:56 +08:00
|
|
|
|
return _connectorValueType;
|
2023-04-19 22:26:04 +08:00
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
2023-04-24 22:43:56 +08:00
|
|
|
|
SetProperty(ref _connectorValueType, value);
|
2023-01-31 22:45:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-04-24 22:43:56 +08:00
|
|
|
|
|
2023-04-25 23:07:25 +08:00
|
|
|
|
public bool ConnectorError
|
2023-04-24 22:43:56 +08:00
|
|
|
|
{
|
2023-04-25 23:07:25 +08:00
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool ValueError
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string ErrorMessage
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override bool CanAttachTo(FullyCreatedConnectorInfo port)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!base.CanAttachTo(port))
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (port is LogicalConnectorInfo logical)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (logical.ConnectorValueType == ConnectorValueType.String && this.ConnectorValueType == logical.ConnectorValueType)
|
|
|
|
|
|
{
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (logical.ConnectorValueType <= ConnectorValueType.ValueType && this.ConnectorValueType <= ConnectorValueType.ValueType)
|
|
|
|
|
|
{
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
2023-04-24 22:43:56 +08:00
|
|
|
|
}
|
2023-01-31 22:45:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|