基本自定义 > 用户界面自定义 > 在 UI 中添加操作并进行挂接 > 选项卡模型 > 自定义点
  
自定义点
有关详细信息,请参阅 Windchill 客户端体系结构的操作框架
过程 - 移除主选项卡
将“主导航”操作模型从 navigation-actionModels.xml 复制到 custom-actionModels.xml。移除所需的操作模型。
<!-- Main navigation -->
<model name="main navigation">
<action name="home" type="navigation"/>
<action name="product" type="navigation"/>
<action name="project" type="navigation"/>
<action name="change" type="navigation"/>
<action name="library" type="navigation"/>
<action name=”mytab” type=”navigation”/>
<action name="org" type="navigation"/>
<action name="site" type="navigation"/>
</model>
从上述主导航操作模型中移除“更改”选项卡后。该列表将如下所示:
<!-- Main navigation -->
<model name="main navigation">
<action name="home" type="navigation"/>
<action name="product" type="navigation"/>
<action name="project" type="navigation"/>
<action name="library" type="navigation"/>
<action name=”mytab” type=”navigation”/>
<action name="org" type="navigation"/>
<action name="site" type="navigation"/>
</model>
过程 - 移除第二级导航链接
复制需要从 navigation-actionModels.xml 更新到 custom-actionModels.xml 的操作模型定义。通过从中移除操作定义来更新操作模型定义。
产品导航操作模型的初始定义:
<model name="product navigation">
<action name="list" type="product"/>
<action name="separator" type="separator"/>
<action name="view" type="object"/>
<action name="listFiles" type="product"/>
<action name="listTeam" type="product"/>
<action name="listProduct" type="work"/>
<action name="changeMonitor" type="product"/>
<action name="view_forum" type="project"/>
<action name="MyWorkspace" type="product"/>
<action name="listTemplates" type="product"/>
<action name="listUtilities" type="product"/>
</model>
从上面的产品操作列表中移除“更改监视器”操作后,该列表将如下所示:
<model name="product navigation">
<action name="list" type="product"/>
<action name="separator" type="separator"/>
<action name="view" type="object"/>
<action name="listFiles" type="product"/>
<action name="listTeam" type="product"/>
<action name="listProduct" type="work"/>
<action name="view_forum" type="project"/>
<action name="MyWorkspace" type="product"/>
<action name="listTemplates" type="product"/>
<action name="listUtilities" type="product"/>
</model>
过程 - 自定义导航器
如果需要,可覆盖导航器中的默认导航行为。这可通过实现 com.ptc.windchill.enterprise.navigation.NavigationListDelegate 并提供自定义行为来实现。例如,要求特定的第一级导航选项卡显示所有节点,而不是仅显示最近访问的节点。
下节将介绍显示所有上下文节点,而不是仅显示最近访问的节点 (默认行为) 的示例。
创建自定义导航列表委派
通常,不建议直接实现 NavigationListDelegate 接口。您应将现有预设实现之一 (如 com.ptc.windchill.enterprise.navigation.delegates.DefaultNavigationListDelegate) 设置为子类。
示例:
public class MyTabNavigationListDelegate extends DefaultNavigationListDelegate {
/**
* Returns list of all the c.
*/
@Override
public Vector<ObjectVisitedInfo> getRecentStack(String node,
Vector<ObjectVisitedInfo> recent)
throws WTException {
// Specific code for getting all the contexts for that particular tab
return recent;
}
}
此外,还有一些您可能想要覆盖的其他方法,但 getRecentStack() 是此特定用例唯一需要的。
注册 MyTabNavigationListDelegate
要注册此自定义委派,应在特定的自定义 service.properties.xconf 文件或 site.xconf 中添加特性。
在上述示例中,可将其注册为如下所示的内容:
<Service name="com.ptc.jca.navigation.NavigationListDelegate">
<Option serviceClass="com.ptc.myTab.navigation.MyTabNavigationListDelegate"
requestor="java.lang.Object" selector="MyTab"/>
</Service>
注册后,您需要从 windchill shell 程序运行 xconfmanager -p,然后重新启动方法服务器。
在导航树中添加多个级别
系统预设的导航器“浏览”选项卡是包含两个级别的树结构。通过将子模型添加到现有操作模型中,可以添加更多级别。
示例:原始树结构
要添加新的导航层次结构:
1. custom-actionModels.xml 中创建模型。
<model name="productNav1">
<action name="info" type="product"/>
<action name="listFiles" type="product"/>
</model>
2. navigation-actionModels.xml 中的现有操作模型复制到 custom-actionModels.xml 中。添加上述模型作为此操作模型定义的子模型。
<model name="product navigation" defaultActionName="list"
defaultActionType="product">
<description>
Sub tabs under the product main tab
</description>
<action name="info" type="product"/>
<action name="aspsStructure" type="asps" />
<action name="listPubStructures" type="arbortext"/>
<action name="listFiles" type="product"/>
<action name="structureSubTab" type="product"/>
<action name="MyWorkspace" type="workspaces"/>
<action name="listNetwork" type="network"/>
<action name="list" type="wp"/>
<action name="listTeam" type="product"/>
<action name="listProductAssignments" type="work"/>
<action name="changeMonitor" type="change"/>
<action name="view_forum" type="project"/>
<action name="listTemplates" type="product"/>
<action name="reports" type="product"/>
<action name="listAgreements" type="agreements"/>
<action name="listUtilities" type="product"/>
<submodel name="productNav1" />
</model>
新导航树如下所示:
可以将子模型嵌套到其他子模型中,以添加多个导航层级
示例:
以上模型可拥有多个子模型,如下所示
<model name="productNav1">
<action name="info" type="product"/>
<action name="listFiles" type="product"/>
<submodel name="productNav2" />
</model>
其中
<model name="productNav2">
<action name="someAction" type="object"/>
<action name="someMoreAction" type="object"/>
….
</model>