基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > 操作の追加と 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>
前述のメインナビゲーション操作モデルから "change" タブを除去した後、リストは以下のようになります。
<!-- 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>
手順 — 第 2 レベルナビゲーションリンクの除去
更新する必要のある操作モデル定義を 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 を実装して、カスタム動作を記述することで実現できます。たとえば、特定の第 1 レベルナビゲーションタブで、最近アクセスしたノードだけでなく、すべてのノードを表示する必要がある場合です。
以下のセクションでは、最近アクセスしたノードだけを表示するというデフォルト動作の代わりに、すべてのコンテキストノードを表示する例を示します。
カスタムナビゲーションリスト委任を作成する
一般に、インタフェース NavigationListDelegate を直接実装することは推奨されていません。com.ptc.windchill.enterprise.navigation.delegates.DefaultNavigationListDelegate のように、既存のデフォルト実装の 1 つをサブクラス化する必要があります。
例:
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 シェルで xconfmanager -p を実行して、メソッドサーバーを再起動する必要があります。
ナビゲーションツリーでの複数階層の追加
デフォルトでは、ナビゲータの「ブラウズ」タブに 2 階層のツリーが表示されます。既存の操作モデルにサブモデルを追加することで、階層を追加できます。
例: 元のツリー
新しいナビゲーション階層を追加するには
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>