自定义可配置链接表
本节介绍了用于创建可配置链接表并在预设示例中进行显示的各个组件。在此还介绍了如何自定义可配置链接表。使用预设示例作为参考来描述自定义。需要注意的一点是,文件扩展名 (例如:.xml、.xconf) 和文件中的格式必须保持不变。
1. 定义可配置链接类型和有效关系。
自定义可配置链接表的第一步是为每个链接类型定义可配置链接子类型和关系约束。此操作在 ConfigurableLinkExamples.xml 文件中完成。此文件包含两个部分:
可配置链接子类型:第一个部分定义了可配置链接子类型。必须在此处定义每个链接类型的名称和说明。在 BeginTypeDefView 上定义的名称字段是“可配置链接类型”,该字段用于连接与链接类型关联的表格、表格标题和操作标题的显示位置的注册表。
必须为 BeginTypeDefView 名称、PropertyValue 说明和 displayName 定义有意义的自定义名称,这样才可指定新的可配置链接类型。
可配置链接有效关系:此文件的第二部分包含已定义的可配置链接子类型的关系约束 - 这些约束是每个已定义链接类型的有效关系。每个约束都将指定与特定链接类型关联的“角色 A”和“角色 B”对象。“角色 A”是构成链接左侧的对象,而“角色 B”是构成链接右侧的对象。linkType 是“可配置链接子类型”定义中定义的 BeginTypeDefView。roleAType 和 roleBType 是承担特定 linkType 的相应角色的对象。
2. 定义关系表格的操作名称。
下一步是设置一种机制来显示与可配置链接对应的关系表格。这具体可通过为每个可配置链接表定义操作来实现。ConfigurableLinkExamples-actions.xml 文件会在所提供的示例中执行此操作。
此文件包含预设示例中所有可配置链接的操作定义。在 UI 中,表名称 (即操作) 显示在信息页面上“自定义”菜单的子菜单中。单击某一操作将显示一个表格,其中显示了该可配置链接所包含的关系。根据该操作的设置方式,该表格可以显示“角色 A”侧或“角色 B”侧的关系。
要显示“角色 A”侧的关系,与该操作关联的 URL 必须指向:\netmarkets\jsp\object\configurableLinkRoleATable.jsp
要显示“角色 B”侧的关系,与该操作关联的 URL 必须指向:\netmarkets\jsp\object\configurableLinkRoleBTable.jsp
要定义新操作,请按照 <action � /action> 片段中的语法进行操作。可将操作的名称字段设置为任何有意义的名称。用于此字段的值将用作在 rbinfo 文件中为此操作提供显示名称的键。设置此操作的名称后,请按照上述规则来定义此特定操作是否将显示“角色 A”或“角色 B”侧的关系表格。
3. 确定操作的显示位置。
在上面的步骤 2 中创建的操作需要在相应的区域中定义,才能进行显示。操作模型用于提供此定义。在预设示例中,文件 ConfigurableLinkExamples-actionmodels.xml 用来处理此方面的问题。
可配置链接的关系表格应在信息页面的“自定义”菜单中进行定义。步骤 3a 和 3b 介绍了如何创建模型并将其显示出来。最终结果是,信息页面上的“自定义”菜单将有一个新的菜单选项。菜单选项即显示可配置链接的关系表格的操作。
a. 定义模型
a. 首先,在预设示例中,通过为其指定名称 "configLinks" 来定义操作模型。该名称后面的 resourceBundle 定义即使用包含显示名称的注释的 java 文件的位置。
b. 既然已经定义了名称,随即可提供简短说明。
c. 接下来,定义要在此操作模型下显示的所有操作 (即关系表格)。在本示例中,在步骤 2 中定义的所有操作均位于此模型下。
d. 最后,需要将模型作为整体放置在要显示的对象信息页面上的“自定义”菜单中。在此示例中,它将显示在部件和文档信息页面中。通过覆盖这两个对象信息页面上“自定义”菜单预先存在的定义来完成此操作,如下所述。
b. 显示模型
模型 "third_level_nav_part" 包含部件信息页面上“自定义”菜单的列表。预设情况下,此模型在 PartClient-actionmodels 中定义,并且菜单选项为 "general"、"relatedItems"、"changes"、"history" 和 "collaboration"。为了将新建的 configLinks 模型添加到部件信息页面中,"third_level_nav_part" 定义也已被覆盖以包括此新模型。要记住的重要一点是,执行此步骤将覆盖任何先前对 "third_level_nav_part" 进行的自定义。要保留任何先前的自定义,请将系统上存在的要被覆盖的模型定义 (本例中为 "third_level_nav_part") 复制到新建的操作模型文件 (本例中为 "ConfigurableLinkExamples-actionmodels.xml") 中。然后,使用 "submodel" 标记将新定义的模型 (在本例中为 "configLinks") 添加到已覆盖的模型 ("third_level_nav_part")。
必须遵循步骤 3b 中的相同步骤,以在任何其他对象的信息页面的“自定义”菜单中 (预设示例中也提供了文档) 显示可配置链接表的新菜单选项。
4. 为表格标题和操作标题创建标签
在 java 文件中,标签是使用注释创建的。在预设示例中,在 configurableLinkExamplesResource.java 文件中执行此操作。
此文件将信息页面上“自定义”菜单中的注册表与针对表格、表格标题和操作标题实现的链接类型进行连接。链接类型的连接是在 moreurlinfo 字段中完成的。此字段的值将 configurableLinkType 设置为在步骤 1 中定义的 BeginTypeDefView 名称的值。操作标题的显示文本是通过为步骤 2 中创建的操作名称定义各自的值来设置的。
必须对此文件进行编译,且此文件的已编译 (.class) 版本必须放置在 <Windchill>\codebase\com\ptc\windchill\enterprise\object
* 
对于步骤 5 到 步骤 8,预设示例代码位于具有 ConfigurableLinkExamples 前缀的文件中,但应通过创建具有 ConfigurableLinkCustomizations 前缀的文件进行任何自定义更改。
ConfigurableLinkCustomizations.xconf
ConfigurableLinkCustomizations-wt.properties.xconf
ConfigurableLinkCustomizations-service.properties.xconf
5. 使用验证器注册关系表格
定义操作后,需使用通用验证器注册每个新建的操作,以确保操作标题和关系表格的隐藏/显示规则背后的逻辑正常工作。在预设示例中,在 ConfigurableLinkExamples-service.properties.xconf 文件中执行此操作。此文件的源位置和目标位置如下:
源位置:com\ptc\windchill\enterprise
目标位置:<Windchill>\codebase\com\ptc\windchill\enterprise
根据所注册的表 - 角色 A (父项) 或角色 B (子项) (即取决于选择器),相应的验证器 ConfigurableLinkParentTableActionValidatorConfigurableLinkChildTableActionValidator 应分别用作 serviceClass。
6. 在表格标题中注册关系表格
为了查看自定义可配置链接表上的表标题,需要在 ConfigurableLinkCustomizations-service.properties.xconfConfigurableLinkDynamicUrlDelegate 中注册每个表。
在预设示例中,在 ConfigurableLinkExamples-service.properties.xconf 文件中执行此操作。
7. 在表格视图注册关系表格
为了将自定义表视图与自定义可配置链接表配合使用,需要在 ConfigurableLinkCustomizations-service.properties.xconf 的相应表格视图类中注册每个表。如果可配置链接的基本类型为 ConfigurableReferenceLink,则应在 ConfigurableReferenceLinkTableViews 中注册可配置链接。同理,基本类型为 ConfigurableDescribeLink 的链接应注册为 ConfigurableDescribeLinkTableViews,而基本类型为 ConfigurableMasterLink 的链接则应注册为 ConfigurableMastersLinkTableViews。使用的选择器应为针对可配置链接定义的内部名称,后跟 _parentTable_childTable (具体取决于它是“角色 A”表还是“角色 B”表)。
例如,CustomReferenceLink 的选择器应为 com.ptc.CustomReferenceLink_childTablecom.ptc.CustomReferenceLink_parentTable
在预设示例中,在 ConfigurableLinkExamples-service.properties.xconf 文件中执行此操作。
8. 使用操作命令委派注册关系表格
对于具有工具栏操作的所有可配置链接表而言,这是一个必需步骤。为了使可配置链接工具栏操作正常工作,请在 ConfigurableLinkTableToolbarActionCommandDelegate 中注册每个可配置链接表。使用与步骤 7 中的选择器 (例如com.ptc.CustomReferenceLink_childTable)。这些条目应在 ConfigurableLinkCustomizations-service.properties.conf 中处理。
在预设示例中,在 ConfigurableLinkExamples-service.properties.xconf 文件中执行此操作。
9. 注册操作和操作模型文件
下一步是将新建的操作和操作模型文件 (分别来自步骤 2 和 3) 添加到由操作服务拾取的操作/操作模型文件的应用程序范围列表中。在预设示例中,这一步是通过 ConfigurableLinkExamples-wt.properties.xconf 文件完成的。
要记住的重要一点是,新建的操作和操作模型文件 (作为自定义的一部分) 现包含对最初预设定义的模型的覆盖。如果未执行添加这些新文件的步骤,则应用程序将使用这些模型的原始定义。
在上面所述的预设示例中,"third_level_nav_part" 模型已被覆盖以包含 "configLinks" 子模型。执行步骤 9 十分重要,因为这些新文件会在预设定义之后添加到全局定义中。在此示例中,ConfigurableLinksExample-actionmodels.xml 必须添加在 PartClient-actionmodels.xmlDocumentManagement-actionmodels.xml 之后。这是因为预设示例覆盖了 "third_level_nav_part" 和 "third_level_nav_doc" 模型的定义。所有操作和操作模型文件都将被放置在 wt.properties (步骤 10) 中,而最后一个特定模型的定义将会生效。
如果从 wt.properties 中移除新建的操作和操作模型文件,或者未按步骤 8 中的要求对其进行注册或将其放置在预设模型定义之前,则信息页面上的特定“自定义”菜单选项将采用预设行为。
10. 同时收集步骤 5 到 9 中的注册信息。
为了方便在安装过程中使用,在一个文件中放置了特定于模块的 xconf 设置 (包含诸如步骤 5 和 6 中的注册信息)。在预设示例中,此文件为 ConfigurableLinkExamples.xconf
此文件参考上面的步骤 5 到 9 中创建的文件,并将这些文件一并放在一个位置,以便 xconfmanager 拾取和传播所做的更改。xconfmanager 会将所有操作和操作模型文件均放置在 wt.properties 中,并最终由操作服务使用。
上述步骤将创建自定义的可配置链接表。要安装此软件,请按照“安装可配置链接示例”主题下安装可配置链接示例一节中的说明进行操作。
这对您有帮助吗?