解决方案
创建一个可扩展 DefaultInfoComponentBuilder 的构建器 Java 类,以定义要在特定业务对象类型的信息页面上呈现的元素。“类型和属性管理”实用程序中的属性布局管理器用于控制属性的布局。
必备知识
要应用此信息,必须了解以下内容:
用于创建 Java 构建器类的 MVC 框架 (请参阅 MVC 组件)
基于 JSP 的 Windchill 客户端体系结构框架 (请参阅 Windchill 客户端体系结构概述)
Windchill 客户端体系结构中的操作框架 (请参阅 Windchill 客户端体系结构的操作框架)
如何使用 Type and Attribute Management 实用程序管理属性布局 (请参阅类型和属性管理实用程序)
解决方案元素
使用此组件时,开发人员必须通过扩展 DefaultInfoComponentBuilder 来创建构建器。
元素
类型
说明
DefaultInfoComponentBuilder.java
Java 类
此元素是所有其他信息页面构建器均必须从中进行扩展的默认构建器。构建器负责从服务器收集所需的数据。
下表显示了用于生成信息页面的核心元素。开发人员不会对这些应用程序进行覆盖。构建器可供开发人员控制在业务对象信息页面上显示的项,以及使用“类型和属性管理”实用程序来管理属性的布局。
元素
类型
说明
infoPage.jsp
JSP
所有信息页面操作都必须调用的 JSP。该元素可用于调用 begin.jspfend.jspf。该元素还可用于调用 MVC taglib 中的 infoPage 标记。
infoPage.tag
标记 (在 MVC taglib 中定义)
用于设置 JSP 上下文并创建信息页面 ComponentDefinition 对象。该元素会调用组件 taglib 中的 renderInfoPageModel 标记,以及调用 JavaScript 呈现器以生成信息页面的 HTML。
RenderInfoPageModelTag.java
Java 标记 (在组件 taglib 中定义)
该元素用于根据构建器中的数据构造 JSON 对象 (也称为 InfoModel),并将 JSON 对象写出到其打印流。
infoPage.jsfrag
JavaScript 片段
采用 JSON InfoModel 对象的 JavaScript 呈现器。该元素用于生成信息页面的 HTML。
myTab.jsfrag
JavaScript 片段
用于呈现顶层选项卡,并提供在选项卡内容区域中移动项的功能。
支持元素
元素
类型
说明
attributePanel.jsp
JSP
要调用以呈现“属性面板”的 JSP。“属性面板”组件用于显示“属性”和“可视化和属性”小组件。“属性面板”中属性的布局由“类型和属性管理”实用程序中的属性布局管理器控制。有关详细信息,请参阅属性面板
attributePanel.tag
标记 (在 MVC taglib 中定义)
设置 JSP 上下文并创建属性面板 ComponentDefinition 对象。该元素会调用组件 taglib 中的 renderAttributePanel 标记,以及调用 JavaScript 呈现器以生成属性面板的 HTML。
RenderAttributePanelTag.java
Java 标记 (在组件 taglib 中定义)
该元素用于根据构建器中的数据构造 JSON 对象 (也称为 InfoModel),并将 JSON 对象写出到其打印流。
attributePanel.jsfrag
JavaScript 片段
采用 JSON InfoModel 对象的 JavaScript 呈现器。该元素用于生成属性面板的 HTML。
信息页面处理流
首先,调用构建器以从服务器收集必要的数据。然后,构建器将请求转发到视图 (即 infoPage.jsp)。默认视图 infoPage.jsp 包括 infoPage 标记。此标记会从通过构建器收集的数据创建一个 JSON 对象,即 infoModel 对象。infoModel 被序列化 (通过将其作为 JSON 字符串写出到 JSP 编写器) 并传递至生成 HTML 的 JavaScript 呈现器。
以下是呈现信息页面的过程序列:
信息页面构建器设计者
为新的业务对象类型创建信息页面时,开发人员必须创建相应的构建器来扩展 DefaultInfoComponentBuilder。构建器类需要包含以下 Java 注释,这样系统才能为此业务对象类型调用正确的构建器:
@ComponentBuilder(value = ComponentId.INFOPAGE_ID)
@TypeBased(value = "wt.part.WTPart")
public class PartInfoBuilder extends DefaultInfoComponentBuilder {
….
构建器 ID 的注释在超类 DefaultInfoComponentBuilder 中指定。注释会被继承。因此,扩展此类时不需要 ComponentBuilder 注释。但是,如果不扩展此类,请确保在构建器类中包含注释。
有关注册构建器类或包的信息,请参阅 MVC 组件
唯一必须被覆盖的方法为 buildInfoConfig() 方法。在此方法中,配置您想要在该业务对象类型的信息页面上显示的元素,并调用所需的服务 API 来收集这些元素的数据。有关这些元素的详细信息,请参阅信息页面构建器中的自定义选项
构建器的注释可包含不可变类型或子类型:
@TypeBased(value = "wt.part.WTPart")
@TypeBased(value = " com.company.SoftType")
有关详细信息,请参阅 MVC 组件概述中的 TypeBased
这对您有帮助吗?