VppToolBlockEditView.xaml.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using Cognex.VisionPro.ToolBlock;
  2. using System;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using TeamAAS.FlowEngine;
  6. using TeamAAS.FlowEditor.Plugins;
  7. using Plugins.Vpp.Models;
  8. using TeamAAS;
  9. namespace Plugins.Vpp.Views
  10. {
  11. public partial class VppToolBlockEditView : UserControl, IPluginViewSave
  12. {
  13. public VppToolBlockEditView()
  14. {
  15. InitializeComponent();
  16. Loaded += OnLoaded;
  17. Unloaded += OnUnloaded;
  18. }
  19. private void OnLoaded(object sender, RoutedEventArgs e)
  20. {
  21. if (DataContext is VppToolBlockModel model)
  22. {
  23. TxtTitle.Text = model.ToolName ?? "VPP工具块";
  24. if (model.ToolBlock == null)
  25. model.ToolBlock = new CogToolBlock();
  26. ToolBlockEditor.CogToolBlockEdit.Subject = model.ToolBlock;
  27. }
  28. }
  29. private void OnUnloaded(object sender, RoutedEventArgs e)
  30. {
  31. SaveChanges();
  32. PluginLoader.Instance.ParentGroupModel = null;
  33. }
  34. public void SaveChanges()
  35. {
  36. if (DataContext is VppToolBlockModel model)
  37. {
  38. model.ToolBlock = ToolBlockEditor.CogToolBlockEdit.Subject ?? model.ToolBlock;
  39. }
  40. }
  41. /// <summary>
  42. /// 点击齿轮 → 弹属性窗口配置输入参数映射
  43. /// InputSourceDataProvider 通过 PluginLoader.ParentGroupModel 查主流程前置节点结果
  44. /// </summary>
  45. private void BtnProperties_Click(object sender, RoutedEventArgs e)
  46. {
  47. if (DataContext is VppToolBlockModel model)
  48. {
  49. PluginLoader.Instance.ParentGroupModel = model;
  50. try
  51. {
  52. if (DialogHelper.EditProperties(model, $"VPP工具块属性 - {model.NodeName}"))
  53. {
  54. TxtTitle.Text = model.ToolName ?? "VPP工具块";
  55. DialogHelper.Info($"已更新VPP工具块属性: {model.ToolName}");
  56. }
  57. }
  58. finally
  59. {
  60. PluginLoader.Instance.ParentGroupModel = null;
  61. }
  62. }
  63. }
  64. private void BtnRun_Click(object sender, RoutedEventArgs e)
  65. {
  66. if (DataContext is VppToolBlockModel model && model.ToolBlock != null)
  67. {
  68. System.Threading.Tasks.Task.Run(() =>
  69. {
  70. try
  71. {
  72. model.ToolBlock.Run();
  73. }
  74. catch (Exception ex)
  75. {
  76. System.Diagnostics.Debug.WriteLine($"[VPP运行异常] {ex.Message}");
  77. }
  78. });
  79. }
  80. }
  81. }
  82. }