基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > UI の情報の表示 > JSP フレームワークを使用したテーブルの構築とレンダリング > ソリューション > ソリューションエレメント > 手順 - テーブルの共通コンポーネントの設定
  
手順 - テーブルの共通コンポーネントの設定
新規ビルダークラスの作成
テーブルビルダークラスはテーブルコンフィギュレーションに対応しています。テーブルレベルと列レベルのすべてのプロパティがビルダークラスで設定されている必要があります。ビルダークラスを新規作成する場合、通常、MVC インフラストラクチャによって与えられた抽象基本クラスのいずれかを拡張します。
AbstractConfigurableTableBuilder
コンフィギュレーション可能なテーブルビューがサポートされているツリーまたはテーブルを実装する場合、この基本クラスを使用します。この基本クラスはコンフィギュレーション可能なテーブルのインフラストラクチャに依存するので、CoreHtmlComp モジュールにあります。
AbstractComponentBuilder
コンフィギュレーション可能なテーブルがサポートされていないテーブルやツリーにはこの基本クラスを使用します。
AbstractComponentConfigBuilder
この基本クラスは情報ページに使用します。テーブルまたはツリーのコンフィギュレーションビルダーをそのデータビルダーから切り離す場合にもこれを使用できます (一般的な用途ではありません)。
AbstractComponentDataBuilder
コンフィギュレーションビルダーとデータビルダーの実装を切り離したテーブルとツリーの実装にはこの基本クラスを使用します (一般的な用途ではありません)。
ComponentConfigBuilder API の実装
ComponentConfigBuilder を実装することで、テーブルレベルと列レベルのコンフィギュレーションオプションを指定できます。ComponentConfigBuilder は現在のところ以下の 1 つのメソッドを定義しています。
ComponentConfig buildComponentConfig(ComponentParams params);
このメソッドの働きはバージョン 9.x での describeTable タグの働きにほぼ相当します。
ComponentConfig の階層:
ComponentConfigFactory を使用したテーブル/列の ComponentConfig オブジェクトの取得
ComponentConfig を直接作成する代わりに ComponentConfigFactory を使用できます。抽象基本ビルダークラスを拡張する場合、getComponentConfigFactory() を呼び出すことでファクトリを使用できます。ComponentConfigBuilder を直接実装する場合、ComponentConfigFactoryAware も実装します。これにより、ビルダー初期化時にファクトリへの参照を取得します。
テーブルレベルのカスタマイズを指定するには TableConfig のインスタンスを使用し、列レベルのカスタマイズを指定するには ColumnConfig のインスタンスを使用する必要があります。TableConfig/ColumnConfig インスタンスの取得列を以下に示します。
ComponentConfigFactory factory = getComponentConfigFactory();
TableConfig table = factory.newTableConfig();

ColumnConfig col1 = factory.newColumnConfig(“column1Id”, false);

table.addComponent(col1);
列コンポーネントはテーブルコンポーネントのネステッドされたコンポーネントなので、前述のコード抜粋に示した addComponent() API を使用して ColumnConfig を TableConfig に追加できます。
TableConfig および ColumnConfig でのプロパティの設定:
コンフィギュレーションクラスに使用可能なカスタマイズポイントについてはカスタマイズポイントに説明があります。各コンフィギュレーションクラスのプロパティと機能の詳細については、Javadoc を参照してください。
コンフィギュレーションのローカライズ
コンフィギュレーションビルダー内の値をローカライズするため、Mvc インフラストラクチャでは新しい ClientMessageSource クラスが提供されています。いずれかの抽象コンフィギュレーション基本クラスを拡張する場合、getMessageSource(String) を呼び出して、指定したリソースバンドルクラス名のメッセージソースを作成します。ClientMessageSource は WTMessage のような働きをしますが、使用するロケールは、サーバーの実行に使用されているロケールではなく、クライアントのロケールになります。
ビュー JSP の指定
ComponentDataBuilder API の実装
ComponentDataBuilder インタフェースを使用して、テーブルデータの取得メカニズムを設定できます。データビルダークラスは ComponentDataBuilder インタフェースを実装する必要があります。ComponentDataBuilder は現在のところ 1 つのメソッドを定義しています。
Object buildComponentData(ComponentConfig config, ComponentParams params)
このメソッドの働きは、9.x リリースストリームでの JCA における getModel/getIeModel タグの働きにほぼ相当します。
ConfigurableTable の登録
ComponentConfigBuilder の実装で ConfigurableTableBuilder も実装される場合、ConfigurableTable の実装を service.properties で登録する必要はありません。ConfigurableTableBuilder の実装自体を ComponentConfigBuilder の実装から切り離して登録することはできません。
ConfigurableTable の実装
ConfigurableTable は、ビルダーの静的内部クラスとして実装するか、別のファイルに配置できます。これをビルダーの実装からのみ使用する場合、プライベート静的内部クラスとして定義するようにしてください。例:
public class MyTableBuilder extends AbstractConfigurableTableBuilder {

@Override
public ConfigurableTable buildConfigurableTable(String tableId) throws WTException {
return new MyConfigurableTable();
}
private static class MyConfigurableTable extends JCAConfigurableTable {

}

}
コンフィギュレーションビルダーとデータビルダーを別々に設定
コンフィギュレーションビルダーとデータビルダーを別々のクラスに実装する場合、追加の ComponentBuilderType パラメータを @ComponentBuilder アノテーションに指定する必要があります。
コンフィギュレーションビルダーでは、次のように表示されます。
@ComponentBuilder(value=“my.component.id”,
type=ComponentBuilderType.CONFIG)
public class MyConfigBuilder implements ComponentConfigBuilder…
データビルダーでは、次のように表示されます。
@ComponentBuilder(value=“my.component.id”,
type=ComponentBuilderType.DATA)
public class MyDataBuilder implements ComponentDataBuilder…
アノテーションを使用せずに別々のビルダーを設定する場合、選択した Bean ID にサフィックス ".configBuilder" または ".dataBuilder" が付いている必要があります。たとえば、コンフィギュレーションビルダーを設定するには、以下を行います。
<bean name=”myComponent.configBuilder”
class=”my.config.builder.class.name”/>
MVC ビルダーの登録
MVC ビルダーを登録するには、ComponentBuilder アノテーションを使用するか、明示的なコンフィギュレーションを行うか、自動スキャンを利用します。自動スキャン。テーブルビルダーを登録した後で、JSP ベースの JCA コンポーネントと同様に、actions.xml でアプリケーションにテーブルコンポーネントを設定できます。
テーブルコンポーネントの登録/設定の詳細については、MVC コンポーネントおよびJSP フレームワークを使用したテーブルの構築とレンダリングを参照してください。