using Cognex.VisionPro.ToolBlock; using System; using System.Windows; using System.Windows.Controls; using TeamAAS.FlowEngine; using TeamAAS.FlowEditor.Plugins; using Plugins.Vpp.Models; using TeamAAS; namespace Plugins.Vpp.Views { public partial class VppToolBlockEditView : UserControl, IPluginViewSave { public VppToolBlockEditView() { InitializeComponent(); Loaded += OnLoaded; Unloaded += OnUnloaded; } private void OnLoaded(object sender, RoutedEventArgs e) { if (DataContext is VppToolBlockModel model) { TxtTitle.Text = model.ToolName ?? "VPP工具块"; if (model.ToolBlock == null) model.ToolBlock = new CogToolBlock(); ToolBlockEditor.CogToolBlockEdit.Subject = model.ToolBlock; } } private void OnUnloaded(object sender, RoutedEventArgs e) { SaveChanges(); PluginLoader.Instance.ParentGroupModel = null; } public void SaveChanges() { if (DataContext is VppToolBlockModel model) { model.ToolBlock = ToolBlockEditor.CogToolBlockEdit.Subject ?? model.ToolBlock; } } /// /// 点击齿轮 → 弹属性窗口配置输入参数映射 /// InputSourceDataProvider 通过 PluginLoader.ParentGroupModel 查主流程前置节点结果 /// private void BtnProperties_Click(object sender, RoutedEventArgs e) { if (DataContext is VppToolBlockModel model) { PluginLoader.Instance.ParentGroupModel = model; try { if (DialogHelper.EditProperties(model, $"VPP工具块属性 - {model.NodeName}")) { TxtTitle.Text = model.ToolName ?? "VPP工具块"; DialogHelper.Info($"已更新VPP工具块属性: {model.ToolName}"); } } finally { PluginLoader.Instance.ParentGroupModel = null; } } } private void BtnRun_Click(object sender, RoutedEventArgs e) { if (DataContext is VppToolBlockModel model && model.ToolBlock != null) { System.Threading.Tasks.Task.Run(() => { try { model.ToolBlock.Run(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"[VPP运行异常] {ex.Message}"); } }); } } } }