using System;
using System.Collections.Generic;
using System.ComponentModel;
using PropertyGridLib.Controls;
using PropertyGridLib.Attributes;
using TeamAAS.FlowEditor.Plugins;
using TeamAAS.FlowEngine.FormulaData;
namespace Plugins.Vm.Models
{
///
/// VM 图像显示节点模型:把上游输出的图层/图像显示到指定画面框(视觉窗体),
/// 每个显示项可独立链接 OK/NG 结果(可不链接)驱动该画面框的状态圆点。镜像 VppDisplayModel。
///
[Serializable]
public class VmDisplayModel : BasePluginModel
{
[Category("属性")]
[DisplayName("1.显示项列表")]
[Description("配置图层到画面框的显示映射,可添加多条;每项可独立链接 OK/NG(可不链接)")]
[CollectionEditor(CanAdd = true, CanRemove = true, CanSort = true)]
[FormulaEditor(typeof(InputSourceDataProvider))]
public List DisplayItems { get; set; } = new List();
}
[Serializable]
public class VmDisplayItem
{
/// 目标画面序号(运行逻辑按 windows[FrameNo-1] 取窗体)。
[Browsable(false)]
public int FrameNo { get; set; } = 1;
///
/// 目标画面名称。TODO:接入 SDK/画面列表后,可像 Vpp 那样用 FrameNameConverter
/// 做成“从当前产品画面列表下拉选择、内部存序号”,当前先直接编辑名称/序号。
///
[DisplayName("1.目标画面")]
[Category("属性")]
[Description("目标画面名称(与序号 FrameNo 对应)")]
public string FrameName { get; set; } = "";
[DisplayName("2.链接图层")]
[Category("属性")]
[Description("链接上游输出:图层/图像/相机图像(GenImage)均可")]
[FormulaEditor(typeof(InputSourceDataProvider))]
public FormulaBound