Files
aistudio-wpf-diagram/AIStudio.Wpf.SFC/ViewModels/SFCConditionNode.cs

74 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.SFC.ViewModels
{
public class SFCConditionNode : SFCNode
{
public SFCConditionNode() : base(SFCNodeKinds.Condition)
{
ColorViewModel.LineColor.Color = Colors.Black;
ItemWidth = 30;
ItemHeight = 30;
ExecuteAddTopInput(null);
ExecuteAddBottomOutput(null);
}
public SFCConditionNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
public SFCConditionNode(IDiagramViewModel parent, string json) : base(parent, json)
{
}
protected override void Init()
{
base.Init();
}
private bool _showText;
public override bool ShowText
{
get
{
return false;
}
set
{
SetProperty(ref _showText, value);
}
}
private ObservableCollection<LinkPoint> _linkPoint = new ObservableCollection<LinkPoint>();
public ObservableCollection<LinkPoint> LinkPoint
{
get
{
return _linkPoint;
}
set
{
SetProperty(ref _linkPoint, value);
}
}
protected override void ExecuteEditCommand(object parameter)
{
SFCConditionNodeData data = new SFCConditionNodeData(LinkPoint, Expression);
if (visualiserService.ShowDialog(data) == true)
{
this.LinkPoint = new ObservableCollection<LinkPoint>(data.LinkPoint.Select(p => SFCService.LinkPoint.FirstOrDefault(q => q.Name == p.Name)));
this.Expression = data.Expression;
}
}
}
}