ユーザーがデータベース内のレコードを更新/削除できるようにするCellTableをGWTで作成しています。この種のテーブルは、最小限の変更で約10の異なる場所で使用されます(同じ数の列、すべて同じタイプで、列ヘッダーのタイトルを変更できる必要があります)。
カスタムCellTableクラスを作成するにはどうすればよいですか?ボイラープレートコードをコピーしてどこにでも貼り付けなければならないのは残念です。
ユーザーがデータベース内のレコードを更新/削除できるようにするCellTableをGWTで作成しています。この種のテーブルは、最小限の変更で約10の異なる場所で使用されます(同じ数の列、すべて同じタイプで、列ヘッダーのタイトルを変更できる必要があります)。
カスタムCellTableクラスを作成するにはどうすればよいですか?ボイラープレートコードをコピーしてどこにでも貼り付けなければならないのは残念です。
つまり、CellTableの拡張を妨げるものは何もありません。他のJavaクラスと同じように拡張できます。
たとえば、次のようなCellTableを使用してみましょう。
CellTable<Contact> table = new CellTable<Contact>();
TextColumn<Contact> nameColumn = new TextColumn<Contact>() { /* ... */ };
table.addColumn(nameColumn, "Name");
TextColumn<Contact> addressColumn = new TextColumn<Contact>() { /* ... */ };
table.addColumn(addressColumn, "Address");
table.setRowData( /* ... */ );
次のように、それを独自のクラスに抽出できます。
public class MyCellTable extends CellTable<Contact>{
public MyCellTable(String col1, String col2){
TextColumn<Contact> nameColumn = new TextColumn<Contact>() { /* ... */ };
table.addColumn(nameColumn, col1);
TextColumn<Contact> addressColumn = new TextColumn<Contact>() { /* ... */ };
table.addColumn(addressColumn, col2);
}
}
CellTableを拡張することにより、他のセルテーブルと同じようにセルテーブルを使用できます。
MyCellTable table = new MyCellTable("Name", "Address");
table.setRowData( /* ... */ );