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 = new ObservableCollection(); public ObservableCollection 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(data.LinkPoint.Select(p => SFCService.LinkPoint.FirstOrDefault(q => q.Name == p.Name))); this.Expression = data.Expression; } } } }