NextToolConverter.cs 1.2 KB

123456789101112131415161718192021222324252627282930
  1. using PropertyGridLib.Controls;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using TeamAAS.FlowEngine;
  9. using Plugins.Standard.Models;
  10. namespace Plugins.Standard.Core
  11. {
  12. public class NextToolConverter : StringConverter
  13. {
  14. public override bool GetStandardValuesSupported(ITypeDescriptorContext context) => true;
  15. public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
  16. {
  17. // 通过 PluginLoader.SelectFlow 获取"当前正在编辑的节点"上下文,
  18. // 不再依赖 IfConditionModel.Instance 静态单例(多节点会互相覆盖)。
  19. var flow = PluginLoader.Instance.SelectFlow;
  20. if (flow == null)
  21. return new StandardValuesCollection(new List<string>());
  22. var Plugins = PluginLoader.Instance.IDGetNextPlugins(flow.FlowId, flow.NodeId).Select(x => x.NodeName).ToList();
  23. return new StandardValuesCollection(Plugins);
  24. }
  25. public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) => true;
  26. }
  27. }