基本自定义 > 用户界面自定义 > 收集 UI 数据 > NmObject 实用程序
  
NmObject 实用程序
属性面板或表格/树单元中的属性值需要从不同于面板或表格/树行的基准对象的对象中提取。
问题:用于标识选定表格/树行或构造表格/树行的操作菜单的对象标识符不能或不应与行基准对象的对象标识符相同。
背景
每个属性面板以及 JCA 表格或树中的每一行都有一个基准对象,可从中提取属性或表格单元值的数据,并获得行操作和行选择的对象标识符。基准对象由 Java 构建器类的 buildComponent() 方法或 getModel()getIEModel() JSP 标记提供。基准对象通常为 Persistable 对象,或者,在创建和编辑向导的情况下,TypeInstances 表示 Persistable 对象。但是,可以使用其他类型的 Java 对象 (例如,HashMap)。
从基准对象检索属性值
JCA 提供的配置方法可用于确定数据实用程序将如何处理基准对象以提取显示在 UI 中的属性值。如果未进行其他配置,JCA 处理基准对象的方式与 JSP EL 处理 Java bean 的方法相同,意味着可以参考特性名称,并且基础结构将在对象上查找相应的 getter。例如,如果您已经描述了一个列名称为 "foo" 的表格,则基础结构将在基准对象上查找 "getFoo" 方法。如果未找到该方法,基础结构不会失败,而是仅返回一个空值,并使得 UI 组件可通过任何方式进行处理。默认情况下,此时 UI 组件仅呈现空白。
不仅是基准对象的简单特性。实际上,任何可使用 JSP EL 的操作也可使用 JCA 进行。例如,可以使用点符号来引用嵌套特性。此外,JCA 将映射对象视为 bean,因此,如果您的 API 返回一个映射或包含嵌套的映射特性,可将其视为包含 getter 方法来参考。有关可在 bean 符号中指定的内容的完整信息,请参阅 beanutils 的文档,JCA 使用该核心包来处理 bean 特性。
更多示例:
bar[0]:获取条形图特性的第一个值。这在条形图映射到列表或数组时有用。
foo.bar:获取 "foo" 特性的嵌套 "bar" 特性。如果 getFoo() 返回映射,则其对应于 getFoo().get("bar")
除 bean 样式特性外,如果基准对象为 Persistable 或 TypeInstance,则 JCA 能够查找全局属性的值。此外,JCA 提供了许多可为不是基准对象特性的属性 ID 创建值的数据实用程序。其中一些可通过额外的数据采集来查找基准对象中不存在的必要信息。
从基准对象检索行标识符
如果没有其他配置,JCA 表格和树框架会假设其处理的每个行对象都是 Windchill Persistable 对象,其对象标识符可在选择某一行或需要显示行级别操作菜单时唯一标识该对象。
已为面板、表格或树指定了正确的目标对象。