属性表
目标
本文档可为开发人员提供在信息页面中实现给定业务对象的属性表组件所需的信息。
开发属性表组件的目的是在详细信息页面中显示任何对象的所有必要属性,从而使 Windchill 产品具备一致性。此组件还可以使开发属性表变得更加容易。借助此组件,开发人员仅需配置属性表页面,而页面的主布局由组件提供。
适用性
此文档应由负责为任一 Windchill 产品中的某些对象配置信息页面的开发人员使用。此设计模式显示了如何配置属性表以及应在何处对属性表进行配置。
参与者
本文档的读者应对 JSP、标记存储库和 JSTL 有基本的了解。
后果
通过遵循本文档,所有业务对象的所有属性表都应以一致的方式进行配置。这样,维护这些属性表将更加容易,任务也将更加便于管理。
解决方案
概述
属性表组件是使用 Windchill 客户端体系结构开发的。此组件为对象的属性提供了一个通用布局,该布局显示在任何一个 Windchill 产品中。使用属性表组件将在所有对象和 Windchill 产品之间提供一致性。
什么是组件
• 组件是 JSP、bean、taglib、呈现器和服务调用的组合。
• 其中会显示为给定对象配置的所有属性及其值。
• 尚未实现:显示 WTPart 的分类属性表。
• 遵循用户界面标准
• 支持自定义要求
已为部件和文档添加默认属性表实现。但是,我们需要对这两个表进行返工,以便可以配置必要的或必需的属性。
对于需要使用属性表的所有业务对象,开发人员需要创建为类型配置的新 JSP。所有属性表的详细信息链接都将链接到 servlet,servlet 会根据对象类型来确定要前往的页面。
使用组件
为对象类型创建 JSP
• 创建 JSP
• 注册 JSP
创建 JSP
attributes.jsp 将仅具有 describeAttributesTable 标记和属性名称列表,以将其作为 describeProperty 中的 ID。根据 describeAttributesTable 中的配置,showSoftAttribute.jspf 组件将呈现属性表面板及其内容。
以下是文档对象的 attributes.jsp 示例。
<jca:describeAttributesTable var="attributesTableDescriptor"
mode=”VIEW”>
<jca:describeProperty id="<Logical Form>" />
<jca:describeProperty id="<Logical Form>" />
</jca:describeAttributeTable>
属性值基于使用适用于类型实例的机制的逻辑属性映射。对于给定的对象类型,您可以使用 LogicalAttributes.jsp 来查看逻辑属性名称。可从正在运行的 Windchill 版次中访问此 JSP (http://<计算机>/<Windchill 应用程序名称>/meta/LogicalAttributeReport.jsp)
在类型输入字段中,键入完全限定类名称,然后单击“提交”。您将看到可用于给定对象类型的属性的列表。可以指定逻辑形式或外部形式,逻辑形式为首选项。
注册 JSP
为使信息页面 servlet 了解针对类型前往哪个 JSP,需要在基于类型的服务所使用的特性文件中指定 JSP 条目。默认特性文件为 typedservices.properties,该文件可直接在代码库中找到。条目应采用以下格式:
wt.services/rsc/default/com.ptc.netmarkets.util.misc.FilePathFacto
ry/Attributes/wt.doc.WTDocument/0=/netmarkets/jsp/document/attribu
tes.jsp
wt.services/rsc/default/com.ptc.netmarkets.util.misc.FilePathFacto
ry/Attributes/wt.part.WTPart/0=/netmarkets/jsp/part/attributes.jsp
以下是 xcong 格式的示例:
<!--Info page fragments, Resource is the filepath to a jsp fragment
that will configure the info page -->
<Resource context="default"
name="com.ptc.netmarkets.util.misc.FilePathFactory">
<Option requestor="wt.part.WTPart"
resource="/netmarkets/jsp/part/attributes.jsp"
selector="Attributes"/>
<Option requestor="wt.doc.WTDocument"
resource="/netmarkets/jsp/document/attributes.jsp"
selector="Attributes"/>
</Resource>
Windchill\src\typedservices.properties.xconf 文件是用于基于类型的应用程序上下文查找的默认 xconf 文件。您可以根据类型在模块中创建您自己的 xconf 文件,以定位到 typedservices.properties。
示例代码
attributesTableComponent 的示例实现
本示例将展示如何为某些对象类型配置属性表。但是,这些步骤仅参考代码库位置。这些步骤不包括源放置或在 xconf 文件中输入信息、构建内容或进入 xconf 文件的最佳做法的说明。本示例仅用于传达入门概念。
1. 创建名为 attributes.jsp 的 JSP 文件,并将其放置在代码库中的以下位置。
codebase/netmarkets/jsp/part/
现在,只需将以下内容添加到页面中:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/components"
prefix="jca"%>
<jca:describeAttributesTable var="attributesTableDescriptor"
mode="VIEW" id="view.setAttribute"
label="Attributes" scope="request">
<jca:describeProperty id="containerName" />
<jca:describeProperty id="name"/>
<jca:describeProperty id="number"/>
<jca:describeProperty id="creatorName" />
<jca:describeProperty id="currentPrincipal" />
<jca:describeProperty id="cabinet"/>
<jca:describeProperty id="cabinetName"/>
<jca:describeProperty id="checkoutInfo.state" />
<jca:describeProperty id="comment"/>
<jca:describeProperty id="displayIdentifier"/>
<jca:describeProperty id="endItem"/>
<jca:describeProperty id="folderName"/>
<jca:describeProperty id="lifeCycleName" />
<jca:describeProperty id="usedBy"/>
<jca:describeProperty id="version"/>
<jca:describeProperty id="view" />
<jca:describeProperty id="viewName"/>
<jca:describeProperty id="owner.id"/>
<jca:describeProperty id="ALL_SOFT_SCHEMA_ATTRIBUTES"/>*
</jca:describeAttributesTable>
此外,还可通过以下步骤启动“编辑”操作。可按以下格式根据请求设置初始显示的步骤。
startStep=<step id>
* "ALL_SOFT_SCHEMA_ATTRIBUTES" 显示所有全局属性及其值。
2. 注册 JSP,以使信息页面 servlet 了解要前往该 JSP。
将以下条目添加到 codebase\typedservices.properties 中:
wt.services/rsc/default/com.ptc.netmarkets.util.misc.FilePathFa
ctory/Attributes/wt.part.WTPart/0=/netmarkets/jsp/part/attribut
es.jsp
3. 测试新的 JSP。主页或文件夹页面中的图标应指向新的信息页面 servlet。URL 将如下所示:
http://<machine>/<WindchillAppName>/servlet/InfoPage?oid=OR:wt.
part.WTPart:62028
servlet 会在 typedservices.properties 中查找要前往的 JSP。您应该可以在属性表的第三级导航中看到属性名称及其值的列表。