using System.Collections.Generic; using System.Threading.Tasks; namespace Serein.Library.Api { /// /// 流程编辑 /// public interface IFlowEdit { /// /// 节点视图模型管理类 /// NodeMVVMService NodeMVVMManagement { get; } /// /// 从节点信息集合批量加载节点控件 /// /// 节点集合信息 /// Task LoadNodeInfosAsync(List nodeInfos); #region 流程节点操作接口 /// /// 增加画布 /// /// 画布名称 /// 宽度 /// 高度 /// void CreateCanvas(string canvasName, int width, int height); /// /// 删除画布 /// /// 画布Guid /// void RemoveCanvas(string canvasGuid); /// /// 在两个节点之间创建连接关系 /// /// 所在画布 /// 起始节点Guid /// 目标节点Guid /// 起始节点控制点 /// 目标节点控制点 /// 决定了方法执行后的后继行为 void ConnectInvokeNode(string canvasGuid, string fromNodeGuid, string toNodeGuid, JunctionType fromNodeJunctionType, JunctionType toNodeJunctionType, ConnectionInvokeType invokeType); /// /// 在两个节点之间创建连接关系 /// /// 所在画布 /// 起始节点Guid /// 目标节点Guid /// 起始节点控制点 /// 目标节点控制点 /// 决定了方法参数来源 /// 设置第几个参数 void ConnectArgSourceNode(string canvasGuid, string fromNodeGuid, string toNodeGuid, JunctionType fromNodeJunctionType, JunctionType toNodeJunctionType, ConnectionArgSourceType argSourceType, int argIndex); /// /// 移除两个节点之间的方法调用关系 /// /// 所在画布 /// 起始节点 /// 目标节点 /// 连接类型 void RemoveInvokeConnect(string canvasGuid, string fromNodeGuid, string toNodeGuid, ConnectionInvokeType connectionType); /// /// 移除连接节点之间参数传递的关系 /// /// 所在画布 /// 起始节点Guid /// 目标节点Guid /// 连接到第几个参数 void RemoveArgSourceConnect(string canvasGuid, string fromNodeGuid, string toNodeGuid, int argIndex); /// /// 创建节点 /// /// 所在画布 /// 控件类型 /// 节点在画布上的位置( /// 节点绑定的方法说明 void CreateNode(string canvasGuid, NodeControlType nodeType, PositionOfUI position, MethodDetailsInfo methodDetailsInfo = null); /// /// 移除节点 /// /// 所在画布 /// 待移除的节点Guid void RemoveNode(string canvasGuid, string nodeGuid); /// /// 将节点放置在容器中 /// /// 所在画布 /// 需要放置的节点Guid /// 存放节点的容器Guid /// void PlaceNodeToContainer(string canvasGuid, string nodeGuid, string containerNodeGuid); /// /// 将节点放置在容器中 /// /// 所在画布 /// 需要取出的节点Guid void TakeOutNodeToContainer(string canvasGuid, string nodeGuid); /// /// 设置流程起点节点 /// /// 所在画布 /// 尝试设置为起始节点的节点Guid /// 被设置为起始节点的Guid void SetStartNode(string canvasGuid, string nodeGuid); /// /// 设置两个节点某个类型的方法调用关系为优先调用 /// /// 起始节点 /// 目标节点 /// 连接关系 /// void SetConnectPriorityInvoke(string fromNodeGuid, string toNodeGuid, ConnectionInvokeType connectionType); /// /// 改变可选参数的数目 /// /// 对应的节点Guid /// true,增加参数;false,减少参数 /// 以哪个参数为模板进行拷贝,或删去某个参数(该参数必须为可选参数) /// void ChangeParameter(string nodeGuid, bool isAdd, int paramIndex); #endregion #region UI视觉 /// /// 节点定位 /// /// void NodeLocate(string nodeGuid); #endregion } }