| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- using System.ComponentModel;
- using SHJX.Service.Common.Utils;
- using System.Collections.Generic;
- namespace Flowchart
- {
- public class FlowNode : INotifyPropertyChanged
- {
- [Browsable(false)]
- public NodeKinds Kind { get; private set; }
- private int _column;
- public int Column
- {
- get { return _column; }
- set
- {
- _column = value;
- OnPropertyChanged("Column");
- }
- }
- private int _row;
- public int Row
- {
- get { return _row; }
- set
- {
- _row = value;
- OnPropertyChanged("Row");
- }
- }
- private string _text;
- public string Text
- {
- get { return _text; }
- set
- {
- _text = value;
- OnPropertyChanged("Text");
- }
- }
- public FlowNode(NodeKinds kind)
- {
- Kind = kind;
- Text = kind.GetEnumDescription();
- }
- public IEnumerable<PortKinds> GetPorts()
- {
- switch (Kind)
- {
- case NodeKinds.Start:
- yield return PortKinds.Bottom;
- break;
- case NodeKinds.End:
- yield return PortKinds.Top;
- break;
- case NodeKinds.MotorX:
- case NodeKinds.MotorY:
- case NodeKinds.MotorZ:
- case NodeKinds.MotorZGoBack:
- case NodeKinds.ManiGrab:
- case NodeKinds.ManiLoosen:
- yield return PortKinds.Top;
- yield return PortKinds.Bottom;
- break;
- case NodeKinds.Condition:
- yield return PortKinds.Top;
- yield return PortKinds.Bottom;
- yield return PortKinds.Left;
- yield return PortKinds.Right;
- break;
- }
- }
- #region INotifyPropertyChanged Members
- public event PropertyChangedEventHandler PropertyChanged;
- protected void OnPropertyChanged(string name)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
- }
- #endregion
- }
- public enum NodeKinds
- {
- [Description("开始")]
- Start,
- [Description("结束")]
- End,
- [Description("X轴")]
- MotorX,
- [Description("Y轴")]
- MotorY,
- [Description("Z轴")]
- MotorZ,
- [Description("Z轴原点")]
- MotorZGoBack,
- [Description("杯抓")]
- ManiGrab,
- [Description("杯松")]
- ManiLoosen,
- [Description("条件")]
- Condition
- }
- }
|