Java ビルダー
このアプローチは、以前の JSP およびタグベースのアプローチと比べていくつかの利点があります。モデルとコントローラを JSP から切り離すことで、システムのフレキシビリティと保全性が向上しました。たとえば、複数の異なる JSP が同じ Java ビルダーを利用可能になりました。さらに、ビルダーは Java で記述されるので、継承によって属性を共有できます。以下に、多くのコンポーネント (テーブル、ツリー、属性パネルなど) を生成するための基本的な手順を示します。
• コンポーネントの記述 (コンポーネントコンフィギュレーションビルダー)
• 必要なデータの入手 (コンポーネントデータビルダー)
• コンポーネントのレンダリング (JSP)
コントローラ - ComponentController
JCA コンポーネントのリクエストは集中型
ComponentController にルーティングされます。このコントローラはリクエストパラメータからコンポーネント ID を取得し、Spring コンフィギュレーションを使用してビルダーの実装を検索します。詳細については、
MVC コンポーネントを参照してください。
モデル - コンポーネントコンフィギュレーションビルダーとデータビルダー
UI のモデルは、コンポーネントコンフィギュレーション情報とデータからなります。これらは ComponentConfigBuilder および ComponentDataBuilder インタフェースを実装する 1 つまたは複数のクラスによって作成されます。
• ComponentConfigBuilder
UI のレンダリングは、ComponentConfigBuilder インタフェースを実装する Java クラスを介して制御します。このインタフェースは、1 つのメソッド buildComponentConfig を含みます。このメソッドには、構築する UI に必要なすべてのコンフィギュレーション情報が含まれていなければなりません。ComponentConfigBuilder の例を以下に示します。
public ComponentConfig buildComponentConfig(ComponentParams params) throws WTException {
ComponentConfigFactory factory = getComponentConfigFactory();
TableConfig table = factory.newTableConfig();
table.setLabel("My Table");
table.setSelectable(true);
table.setType("wt.pdmlink.PDMLinkProduct");
table.setActionModel("my_toolbar_actions");
table.setShowCustomViewLink(true);
table.addComponent(factory.newColumnConfig(ICON, true));
table.addComponent(factory.newColumnConfig(NAME, true);
table.addComponent(factory.newColumnConfig(INFO_ACTION, false));
return table;
}
• ComponentDataBuilder
UI のデータは、ComponentDataBuilder インタフェースを実装する Java クラスによって作成されます。このインタフェースは、1 つのメソッド buildComponentData を含みます。このメソッドから返るオブジェクトは、UI のモデルを表し、複数の形式をとることができます。このメソッドが返すものの例としては、ComponentData、Persistable、QuerySpec、カスタム Java Object などがあります。ComponentDataBuilder の例を以下に示します。
public Object buildComponentData(ComponentConfig config,
ComponentParams params)
throws Exception {
String tableId="netmarkets.product.list";
return ProductListCommand.getProducts(tableId);
}
• データソース
テーブルおよびツリーコンポーネントは、DataSource と呼ばれる新機能を利用できます。DataSource のデータを非同期でロードする機能や、クライアント上のデータを並べ替えたりスクロールしたりする機能によって、テーブルとツリーのパフォーマンスが向上します。この新しい非同期機能を使用するには、コンポーネントデータビルダーによって、テーブルコンポーネントには ComponentDataBuilderAsync、ツリーコンポーネントには TreeDataBuilderAsync が実装されている必要があります。
ビュー - JSP
JSP/タグアプローチでは JSP はこれら 3 つすべての組み合わせですが、このアプローチでは JSP は単なる "ビュー" です。各コンポーネントにはコンポーネントをレンダーするデフォルトビュー (JSP) がありますが、デフォルトビューをオーバーライドする場合、ComponentConfigBuilder から返った ComponentConfig で setView() を呼び出すことができます。すべてのビューの JSP が codebase\WEB-INF\jsp のベース位置に配置されていなければなりません。
• JSP の基本エレメント
Java ビルダー用 JSP ビューを作成する場合、いくつかの重要な JSP フラグメントファイルについて理解する必要があります。まず、最も重要なファイルが begin_comp.jspf です。このファイルは codebase/netmarkets/jsp/util/ にあります。この jspf の目的は、ビューで必要なモデルデータ情報を設定することです。
含まれているもう 1 つの jspf が end_comp.jspf です。このファイルも codebase/netmarkets/jsp/util/ にあります。このファイルは、ページのロードが完了したことを示し、ページ内の JavaScript が適切に機能できるようにすることを目的としています。jsp ビューの例を以下に示します。
<%@ taglib uri="http://www.ptc.com/windchill/taglib/jcaMvc" prefix="mvc"%>
<%@include file="/netmarkets/jsp/util/begin_comp.jspf"%>
<mvc:table setPageTitle="true"/>
<%@ include file="/netmarkets/jsp/util/end_comp.jspf"%>
サポートされるコンポーネント
• テーブル
• ツリー
• 情報ページ
• 属性パネル
• 属性テーブル
• プロパティパネル
関連カスタマイズドキュメント