增加了节点树预览、节点定位,容器对象预览

This commit is contained in:
fengjiayi
2024-09-27 23:47:25 +08:00
parent 7461e32a3d
commit 51bdbab4d1
17 changed files with 793 additions and 181 deletions

View File

@@ -17,10 +17,10 @@ using System.Threading.Tasks;
namespace Net461DllTest.Flow
{
[DynamicFlow] // 标记该类存在节点方法
[DynamicFlow]
public class LogicControl
{
[AutoInjection] // 标记该属性为依赖项,需要注入
[AutoInjection]
public PlcDevice MyPlc { get; set; }
@@ -58,7 +58,7 @@ namespace Net461DllTest.Flow
#region
[NodeAction(NodeType.Flipflop, "等待信号触发", ReturnType = typeof(int))]
public async Task<IFlipflopContext> WaitTask(OrderSignal order = OrderSignal.A)
public async Task<IFlipflopContext> WaitTask(OrderSignal order = OrderSignal.Command_1)
{
try
{

View File

@@ -19,12 +19,13 @@ namespace Net461DllTest.Flow
{
private List<Form> forms = new List<Form>();
public void OpenView(Form form)
public void OpenView(Form form, bool isTop)
{
form.FormClosing += (s, e) =>
{
// 关闭窗体时执行一些关于逻辑层的操作
};
form.TopMost = isTop;
form.Show();
forms.Add(form);
}
@@ -67,21 +68,20 @@ namespace Net461DllTest.Flow
[NodeAction(NodeType.Action, "打开窗体(指定枚举值)")]
public void OpenForm(IDynamicContext context, FromId fromId = FromId.None)
public void OpenForm(IDynamicContext context, FromId fromId = FromId.None, bool isTop = true)
{
var fromType = EnumHelper.GetBoundValue<FromId, Type>(fromId, attr => attr.Value);
if (fromType is null) return;
if (context.Env.IOC.Instantiate(fromType) is Form form)
{
ViewManagement.OpenView(form);
ViewManagement.OpenView(form, isTop);
}
}
[NodeAction(NodeType.Action, "打开窗体(使用转换器)")]
public void OpenForm2([EnumTypeConvertor(typeof(FromId))] Form form)
public void OpenForm2([EnumTypeConvertor(typeof(FromId))] Form form, bool isTop = true)
{
ViewManagement.OpenView(form);
ViewManagement.OpenView(form, isTop);
}

View File

@@ -10,12 +10,9 @@ namespace Net461DllTest.Signal
{
public enum OrderSignal
{
A,
B,
C,
D,
E,
F,
G
View_1,
View_2,
Command_1,
Command_2,
}
}