基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > Windchill JSP フレームワークを使用した HTML クライアントのカスタマイズ > ブレッドクラムコンポーネント > パッケージ化されたサンプル > コンテキストオブジェクトに基づくトピックパス
  
コンテキストオブジェクトに基づくトピックパス
この例では、ページのコンテキストオブジェクトに基づいてトピックパスが作成される方法について示しています。この例のトピックパスは、FolderedBreadCrumbDelegate によって作成されました。これは、ほかの代理がそのページの処理を行わない場合、トピックパスの作成 (可能な場合) のために呼び出されるデフォルトの代理です。これは次のコードで実行できます。
@Override
public boolean canHandle(Persistable p, WTContainer container, String url)
throws WTException {
return true;
}
FolderedBreadCrumbDelegate は、WTContainer (この場合 "コンテナ") がある場合は、最初に渡そうとします。コンテナが渡されない場合、代理は永続可能コンテキストオブジェクト (この場合 "P") を使用して、システム内のオブジェクトの場所を決定します。永続可能オブジェクト自体がコンテナである場合は、パスとして使用されます。永続可能オブジェクトがコンテナでない場合は、永続可能オブジェクトのコンテナをパスとして取得するよう試みます。前述のすべてのオプションが失敗した場合は、空のパスを返します。
public class FolderedBreadCrumbDelegate implements BreadCrumbDelegate {

@Override
public AbstractBreadCrumbGenerator getGenerator(Persistable p,
WTContainer container, String url) throws WTException {
return new FolderedCrumbGenerator(p, container);
}
public class FolderedCrumbGenerator extends AbstractBreadCrumbGenerator {
protected Persistable p;
protected WTContainer container;
public FolderedCrumbGenerator(Persistable p, WTContainer container) throws WTException {
init();
// If a container is present, use it. Else if p is itself a
// container, use that. Otherwise get p's
// container.
if (container != null) {
this.container = container;
} else if (p instanceof WTContainer) {
this.container = (WTContainer) p;
} else if (p instanceof WTContained) {
this.container = ((WTContained) p).getContainer();
}
this.p = p;
}
@Override
public JSONArray getCrumbs() {
// Try to add the container crumbs.
try {
addContainerCrumbs(container);
} catch (Exception e) {
addCrumb(getSecuredInfoCrumb());
}
// Try to add the trail of parent folder crumbs.
try {
addFoldersIfNeeded(container, p);
} catch (Exception e) {
addCrumb(getSecuredInfoCrumb());
}
return crumbs;
}

この例の情報ページリンクにアクセスすると、「サイト」 > 「フォルダ」下に存在する、この特定のオブジェクトを示すトピックパスを参照できます。注記: このオブジェクトの情報ページを表示できるのは、適切なアクセス許可を持つユーザーのみです。
例の場所
この例に移動するには、製品のコンテキストオブジェクトに基づいて「カスタマイズ」 > 「Component Catalog」 > 「トピックパス」 > 「トピックパスコンポーネント」の順に移動します。
* 
コンポーネントカタログは、デフォルトでは Windchill の UI で有効ではありません。コンポーネントカタログを有効にする手順については、カスタマイズユーティリティを有効にするを参照してください。
例の操作
なし
例の操作モデル
なし
この例で使用するファイル
com/ptc/windchill/enterprise/navigation/breadcrumb/FolderedBreadCrumbDelegate.java
com/ptc/core/components/components.wt.properties.xconf