定义新操作模型
操作模型在基于 codebase\config\actions\actionsmodels.dtd 结构的 XML 文件中进行定义。
下面是用于文件夹浏览器工具栏的操作模型定义的简单示例:
<!-- default toolbar for the Folder page -->
<model name="folder_list_toolbar">
<action name="list_cut" type="object"/>
<action name="list_copy" type="object"/>
<action name="fbpaste" type="object"/>
<action name="pasteAsCopy" type="saveas"/>
<action name="list_paste_sharing" type="folder"/>
<action name="list_delete" type="object"/>
<action name="CONTAINERMOVE" type="pdmObject"/>
<action name="PAGERELOADINGMULTICHECKOUT" type="folder"/>
<action name="WFADDTOWORKSPACE" type="folder"/>
<action name="separator" type="separator"/>
<action name="create" type="folder"/>
<action name="create" type="document"/>
<action name="createMulti" type="document"/>
<action name="createPartWizard" type="part"/>
<action name="createMultiPart" type="part"/>
<action name="add_link" type="bookmark"/>
<action name="create" type="problemReport"/>
<action name="create" type="changeRequest"/>
<action name="create" type="changeNotice"/>
<action name="separator" type="separator"/>
</model>
objecttype 名称是创建命名空间以及为特定对象或功能区域的相关操作进行封装的一种方法。在上述示例中,名称 "document" 为适用于 wt.doc.WTDocument 的操作创建了唯一的命名空间。
也可以创建自身参考另一操作模型的操作模型。文件夹浏览器的“操作”菜单包含“新建”操作组的子模型。例如,“新建”操作组的操作模型可能定义如下:
<model name="folder_file_new" resourceBundle="com.ptc.core.ui.tableRB">
<action name="create" type="document" resourceBundle="com.ptc.core.ui.tableRB" />
<!-- More actions here --!>
</model>
然后,在“操作”菜单的操作模型中包含子模型 "folder_file_new":
<model name="folder_file">
<submodel name="folder_file_new"/>
<action name="create" type="document"/>
<!-- More actions here --!>
</model>
请参阅下图以了解此操作模型在用户界面中的显示情况:
模型属性
有关这些参数的详细信息,另请参阅 codebase\config\actions\actionsmodels.dtd。
参数 | 默认值 | 可能的值 | 必需? | 说明 |
name | | | 是 | 这是用于参考操作模型的名称 |
menufor | | 任何有效的类名称。 | 否 | 指定默认情况下应突出显示的操作。这仅适用于将模型用作第三级导航菜单的情况。 |
defaultActionName | 默认使用模型中的第一个操作 | 模型中其中一个操作的操作名称。 | | 指定默认情况下应突出显示的操作。这仅适用于将模型用作第三级导航菜单的情况。 |
defaultActionType | 默认使用模型中的第一个操作 | 模型中其中一个操作的对象类型。 | | |
resourceBundle | | | | 针对要本地化的操作模型的特性所使用资源束的类名称 |
操作属性
有关这些参数的详细信息,另请参阅 codebase\config\actions\actionsmodels.dtd。
参数 | 默认值 | 可能的值 | 必需? | 说明 |
name | | 在 actions.xml 文件中定义的任何 action 的名称 | 是 | 这是在 actions.xml 文件中定义的操作的名称。 |
type | | 在 actions.xml 文件中定义的任何 objecttype 的名称 | 是 | 这是在 actions.xml 文件中定义的对象类型的名称。 |
shortcut | | true false | 否 | 这将确定是否在工具栏中将操作显示为快捷方式图标。 |
操作模型名称的命名约定可以是字母数字字符的任意组合。大多数操作模型的名称都包含其所用于的组件。您的操作模型应具有公司特定的前缀,以防与随产品一起交付的其他操作模型发生冲突。
| 操作服务旨在隐藏操作菜单 (或菜单栏菜单) 中任何不包含在系统其他位置的工具栏中的图标。StandardNmActionService 构建并保留服务器启动时所有已知工具栏图标的列表。 StandardNmActionService 通过模型名称来确定其是否为工具栏。因此,用作工具栏的模型名称应包含 "toolbar"。 如果未遵循工具栏模型命名约定,则操作服务无法按设计显示图标。但是,如果未遵循命名约定,则不会中断任何功能。 |
"
可使用 shortcut 属性将常用的快捷方式操作 (推荐的最大值为 5) 配置为显示在工具栏快捷方式区域中。文件夹浏览器表格的配置示例:
<model name="folder_list_toolbar">
………………………………………..
<action name="CONTAINERMOVE"
type="pdmObject" shortcut = "true"/>
<action name="PAGERELOADINGMULTICHECKOUT"
type="folder" shortcut = "true"/>
<action name="WFADDTOWORKSPACE"
type="folder" shortcut = "true"/>
…………………………….
<action name="create"
type="folder" shortcut = "true"/>
<action name="create"
type="document" shortcut = "true"/>
…………………………………
</model>
操作为仅适用于该特定模型上下文的快捷操作。请注意,菜单中的操作图标也会针对同时显示在工具栏中的操作而显示。
子模型属性
有关这些参数的详细信息,另请参阅 codebase\config\actions\actionsmodels.dtd。
参数 | 默认值 | 可能的值 | 必需? | 说明 |
name | | 在 actionmodels.xml 文件中定义的任何操作模型的名称 | 是 | 这是在 actionmodels.xml 文件中定义的操作模型的名称。例如,“文件夹内容”表格中的 > 菜单即使用了带有子模型的操作模型。 |
示例代码
以下示例代码用于配置子类型的操作模型:
<!-- Copied from ChangeManagement-actionModels.xml -->
<!-- Originally copied from menu for wt.change2.WTChangeRequest2 -->
<model name="sample change request actions" menufor="WCTYPE|
wt.change2.WTChangeRequest2|org.default.www.SampleChangeRequest">
<action name="view" type="object"/>
<action name="SETLIFECYCLESTATE" type="pdmObject"/>
<action name="createSubscription" type="subscription"/>
<action name="separator" type="separator"/>
<action name="reviseChangeItems" type="change"/>
<action name="editCapabilityPackage" type="capabilityPackage"/>
<action name="create" type="approach" />
<action name="create" type="capabilityImplementationProject" />
<action name="separator" type="separator"/>
<action name="sandboxAddToProject" type="object"/>
<action name="SBAddToPrj" type="sandbox"/>
<action name="removeShare" type="object"/>
<action name="separator" type="separator"/>
<action name="ManageSecurity" type="accessPermission"/>
<action name="renameObjectWizard" type="object"/>
<action name="delete" type="object"/>
<action name="separator" type="separator"/>
<action name="separator" type="separator"/>
<action name="discuss" type="forum"/>
<action name="copy" type="object"/>
</model>
其中,org.default.www.SampleChangeRequest 是在“类型和属性管理”实用程序中输入的子类型名称。