using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Threading.Tasks; using Serein.Library; namespace Serein.Library.Api { /// /// 流程节点 /// public interface IFlowNode : INotifyPropertyChanged, IDynamicFlowNode { /// /// 节点持有的运行环境 /// IFlowEnvironment Env { get; set; } /// /// 节点唯一标识 /// string Guid { get; set; } /// /// 节点的类型 /// NodeControlType ControlType { get; set; } /// /// 节点所在画布 /// FlowCanvasDetails CanvasDetails { get; set; } /// /// 节点位置 /// PositionOfUI Position { get; set; } /// /// 节点显示名称 /// string DisplayName { get; set; } /// /// 是否作为公开的节点,用以“流程接口”节点调用 /// bool IsPublic { get; set; } /// /// 是否为基础节点,指示节点创建中的行为 /// bool IsBase { get; } /// /// 最多可以放置几个节点,当该节点具有容器功能时,用来指示其容器的行为。 /// int MaxChildrenCount { get;} /// /// 调试器 /// NodeDebugSetting DebugSetting { get; set; } /// /// 节点方法描述,包含入参数据 /// MethodDetails MethodDetails { get; set; } /// /// 父节点 /// Dictionary> PreviousNodes { get;} /// /// 子节点 /// Dictionary> SuccessorNodes { get; set; } /// /// 当该节点放置在某个具有容器行为的节点时,该值指示其容器节点 /// IFlowNode ContainerNode { get; set; } /// /// 当该节点具备容器行为时,该集合包含其容器中的节点 /// List ChildrenNode { get; } /// /// 节点创建时的行为 /// void OnCreating(); /// /// 节点移除时的行为 /// void Remove(); /// /// 节点保存时如若需要保存自定义数据,可通过该方法进行控制保存逻辑 /// /// /// NodeInfo SaveCustomData(NodeInfo nodeInfo); /// /// 节点从信息创建后需要加载自定义数据时,可通过该方法进行控制加载逻辑 /// /// void LoadCustomData(NodeInfo nodeInfo); /// /// 节点执行方法 /// /// /// /// Task ExecutingAsync(IDynamicContext context, CancellationToken token); } }