マスターリンクテーブルのカスタマイズ
このセクションでは、マスターリンクテーブルを作成し、OOTB 例で表示するための各コンポーネントについて説明します。マスターリンクテーブルのカスタマイズについても説明します。カスタマイズについては、OOTB 例を参照として使用して説明します。重要な点は、ファイルの拡張子 (.xml、.xconf など) とファイル内のフォーマットを維持する必要があることです。
1. マスターリンクタイプと有効関係を定義します。
マスターリンクテーブルのカスタマイズの最初のステップは、マスターリンクサブタイプと各リンクタイプの関係制約を定義することです。これは ConfigurableLinkExamples.xml ファイルで行います。このファイルには以下の 2 つのセクションがあります。
◦ マスターリンクサブタイプ: 最初のセクションでは、マスターリンクサブタイプを定義します。各リンクタイプの名前と説明をここで定義します。BeginTypeDefView で定義される名前フィールドはマスターリンクタイプであり、リンクタイプに関連付けられたテーブル、テーブルヘッダー、操作タイトルの表示場所の登録を結び付けるのに使用します。
名前 BeginTypeDefView、説明 PropertyValue、displayName は、新しいマスターリンクタイプを定義するために、カスタマイズした有意の名前で定義する必要があります。
◦ マスターリンク有効関係: このファイルの 2 番目のセクションには、定義されたマスターリンクサブタイプの関係制約が含まれます。これらは、各定義済みリンクタイプの有効関係となります。各制約は、特定のリンクタイプに関連付ける Role A と Role B の各オブジェクトを指定します。"Role A" はリンクの左側を構成するオブジェクトであり、"Role B" は右側を構成するオブジェクトです。linkType は、マスターリンクサブタイプ定義で定義された BeginTypeDefView です。roleAType と roleBType は、それぞれ特定の linkType の役割を持つオブジェクトです。
2. 関係テーブルの操作名を定義します。
次のステップでは、マスターリンクに対応する関係テーブルを表示するメカニズムを設定します。これは、各マスターリンクテーブルに操作を定義することで実現します。使用する例では、ConfigurableLinkExamples-actions.xml ファイルで行います。
このファイルには、OOTB 例内にあるすべてのマスターリンクの操作定義が含まれています。UI では、テーブル名 (操作) は情報ページの「カスタマイズ」メニューのサブメニューに表示されます。操作をクリックすると、そのマスターリンクによる関係を示すテーブルが表示されます。テーブルには、操作の設定に従って、Role A 側または Role B 側からの関係が表示されます。
◦ Role A 側からの関係を表示するには、操作に関連付けられた URL が /netmarkets/jsp/object/configurableLinkRoleATable.jsp を指すように設定します。
◦ Role B 側からの関係を表示するには、操作に関連付けられた URL が /netmarkets/jsp/object/configurableLinkRoleBTable.jsp を指すように設定します。
新しい操作を定義するには、<action … /action> フラグメント内の構文に従います。操作の名前フィールドには任意の有意名を設定できます。このフィールドに使用される値は、rbinfo ファイルのこの操作の表示名を示すキーとして使用されます。この操作名を設定した後、上記の規則に従って、Role A 側または Role B 側からこの特定の操作を関係テーブルに表示するかどうかを定義します。
3. 操作を表示する場所を定義します。
上記のステップ 2 で作成した操作を表示するには、適切な領域に定義する必要があります。この定義には、操作モデルが使用されます。OOTB 例では、ConfigurableLinkExamples-actionmodels.xml ファイルがこれを処理します。
マスターリンクの関係テーブルは情報ページの「カスタマイズ」メニューで定義する必要があります。ステップ 3a と 3b で、モデルを作成し、表示する方法について説明します。結果として、情報ページの「カスタマイズ」メニューに新しいメニューオプションができます。メニューオプションが、マスターリンクの関係テーブルを表示する操作となります。
a. モデルの定義
a. 最初に、操作モデルに名前を付けて定義します。既成の例では、"configLinks" となります。名前の後ろの resourceBundle 定義は、表示名を含むアノテーションを使用した Java ファイルの場所です。
b. 名前が定義されたら、短い説明を設定できます。
c. 次に、この操作モデルの下に表示するすべての操作 (関係テーブル) を定義します。例では、ステップ 2 で定義したすべての操作をこのモデルに入れます。
d. 最後に、対象オブジェクトの情報ページの「カスタマイズ」メニューにモデル全体を置きます。この例では、部品およびドキュメント情報ページから表示します。これを行うには、以下に示すように、これら 2 つのオブジェクトの情報ページの「カスタマイズ」メニューの既存の定義をオーバーライドします。
b. モデルの表示
モデル "third_level_nav_part" には、部品で使用可能な情報ページの「カスタマイズ」メニューのリストが含まれます。このモデルはデフォルトで PartClient-actionmodels.xml に定義されています。また、メニューオプションには、"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 と同じ手順に従って、その他のオブジェクトの情報ページの「カスタマイズ」メニューに、マスターリンクテーブルの新しいメニューオプションを表示します (ドキュメントも OOTB 例に示されています)。
4. テーブルヘッダーと操作タイトルのラベルの作成
ラベルは java ファイル内のアノテーションを使用して作成されます。OOTB 例では、これは configurableLinkExamplesResource.java ファイルで行います。
このファイルは、テーブル、テーブルヘッダー、操作タイトルに実装されているリンクタイプと、情報ページの「カスタマイズ」メニューの登録を結び付けます。リンクタイプの結び付けは moreurlinfo フィールドで行います。このフィールドの値には、ステップ 1 で定義された名前 BeginTypeDefView の値に設定された configurableLinkType があります。操作タイトルの表示テキストは、ステップ 2 で作成した操作名の各値を定義して設定します。
このファイルはコンパイルする必要があり、コンパイルした (.class) このファイルは、<Windchill>/codebase/com/ptc/windchill/enterprise/object に置きます。
|
ステップ 5 から 8 では、OOTB コード例はプレフィックス "ConfigurableLinkExamples" が付いたファイルにありますが、ファイルプレフィックス "ConfigurableLinkCustomizations" が付いたファイルを作成することでカスタマイズを行う必要があります。
• ConfigurableLinkCustomizations.xconf
• ConfigurableLinkCustomizations-wt.properties.xconf
• ConfigurableLinkCustomizations-service.properties.xconf
|
5. バリデータへの関係テーブルの登録
操作が定義されたら、操作タイトルと関係テーブルの非表示 / 表示規則に使用されるロジックが正しく動作するように、新たに作成した各操作を共通バリデータに登録する必要があります。OOTB 例では、これは ConfigurableLinkExamples-service.properties.xconf ファイルで行います。このファイルのソースとターゲットの場所は以下のとおりです。
◦ ソース: com/ptc/windchill/enterprise
◦ ターゲット: <Windchill>/codebase/com/ptc/windchill/enterprise
Role A (親) または Role B (子) (つまり、セレクタによる) いずれかの登録対象テーブルに応じて、対応するバリデータ (ConfigurableLinkParentTableActionValidator または ConfigurableLinkChildTableActionValidator) を別々に serviceClass として使用する必要があります。
6. テーブルタイトルへの関係テーブルの登録
カスタムマスターリンクテーブルにテーブルタイトルを表示するには、ConfigurableLinkCustomizations-service.properties.xconf で ConfigurableLinkDynamicUrlDelegate に各テーブルを登録する必要があります。
OOTB 例では、これは ConfigurableLinkExamples-service.properties.xconf ファイルで行います。
7. テーブルビューへの関係テーブルの登録
カスタムマスターリンクテーブルにカスタムテーブルビューを表示するには、ConfigurableLinkCustomizations-service.properties.xconf で適切なテーブルビュークラスに各テーブルを登録する必要があります。マスターリンクの基本タイプが ConfigurableReferenceLink の場合、ConfigurableReferenceLinkTableViews にマスターリンクを登録します。同様に、基本タイプが ConfigurableDescribeLink のリンクは ConfigurableDescribeLinkTableViews に登録し、基本タイプが ConfigurableMasterLink のリンクは ConfigurableMastersLinkTableViews に登録します。使用するセレクタは、マスターリンクに定義されている内部名の後ろに、Role A テーブルか Role B テーブルかに応じて _childTable または _parentTable が付いたものになります。
たとえば、CustomReferenceLink のセレクタは com.ptc.CustomReferenceLink_childTable と com.ptc.CustomReferenceLink_parentTable になります。
OOTB 例では、これは ConfigurableLinkExamples-service.properties.xconf ファイルで行います。
8. 操作コマンド委任への関係テーブルの登録
これは、ツールバーの操作を含む設定可能なすべてのリンクテーブルに必要なステップです。マスターリンクのツールバー操作を適切に機能させるため、各マスターリンクテーブルを ConfigurableLinkTableToolbarActionCommandDelegate に登録します。ステップ 7 と同じセレクタを使用します (例: com.ptc.CustomReferenceLink_childTable)。これらのエントリは ConfigurableLinkCustomizations-service.properties.conf 内に作成します。
OOTB 例では、これは ConfigurableLinkExamples-service.properties.xconf ファイルで行います。
9. actions および actionmodels ファイルの登録
次のステップでは、新たに作成した actions および actionmodels ファイル (それぞれ、ステップ 2 と 3) を、操作サービスが取得する actions/actionmodels ファイルのアプリケーション単位のリストに追加します。OOTB 例では、これは ConfigurableLinkExamples-wt.properties.xconf ファイルで行います。
重要な点として、新たに作成された actions および actionmodels ファイルには、(カスタマイズの一環として) デフォルトで定義されていたモデルへのオーバーライドが含まれるので注意が必要です。この新しいファイルの追加ステップが実行されなかった場合は、これらのモデルの下の定義がアプリケーションで使用されます。
上記の既成の例では、"third_level_nav_part" モデルがオーバーライドされ、"configLinks" サブモデルが追加されています。ステップ 9 は、これらの新しいファイルが OOTB 定義の後でグローバル定義に追加されるように実行する必要があります。この例では、ConfigurableLinksExample-actionmodels.xml は PartClient-actionmodels.xml と DocumentManagement-actionmodels.xml の後ろに追加する必要があります。OOTB 例が "third_level_nav_part" モデルと "third_level_nav_doc" モデルの定義をオーバーライドするからです。すべての actions および actionmodels ファイルが wt.properties (ステップ 10) に置かれ、最後の特定のモデルに対する定義が有効になります。
新たに作成した actions および actionmodels ファイルが wt.properties から削除されたり、ステップ 8 で示したとおりにここで登録されなかった場合、または OOTB モデル定義の前に置かれた場合は、情報ページの特定の「カスタマイズ」メニューに対する OOTB 動作が行われます。
10. ステップ 5 から 9 での登録をまとめる
インストールプロセスの便宜上、特定のモデルの xconf 設定 (ステップ 5 と 6 などの登録を含む) は、一緒に 1 つのファイルに置かれます。OOTB 例では、これは ConfigurableLinkExamples.xconf ファイルです。
このファイルは上記のステップ 5 から 9 で作成したファイルを参照し、それをまとめて 1 つの場所に置きます。それを xconfmanager が取得して、変更を反映します。xconfmanager は、すべての actions および actionmodels ファイルを wt.properties に置きます。これが最終的に、すべての操作サービスで使用されます。