カスタムテーブルビュー (ステップ 1)
1. 既成のテーブルビュークラスの 1 つを拡張します。
テーブル
|
ビュークラス
|
変更管理オブジェクト
|
変更適用オブジェクト
|
ChangeTaskAffectedItemsTableViews
VarianceAffectedDataTableViews
AffectedDataTableViews
|
変更タスク
一時許可
問題レポートと変更リクエスト
|
結果オブジェクト
|
ChangeTaskResultingItemsTableViews
|
変更タスク
|
2. getSpecialTableColumnsAttrDefinition() メソッドをオーバーライドして、新しい属性を含めます。
3. すべてのビューに列を追加するか、選択したビューのみに列を追加します。
◦ すべてのビューに列を追加する場合は、メソッド getDefaultColumns() をオーバーライドして、列を適切な位置に挿入します。
◦ 選択したビューに列を追加する場合は、最初に super.getOOTBTableViews() を呼び出す getOOTBTableViews() をオーバーライドします。更新が必要なビューを検索し、TableColumnDefinitions を変更してこれらのビューを更新します。
サンプルコード
public class DistributingResultingItemsTableViews extends
ChangeTaskResultingItemsTableViews {
/**
* The distributionList will only be added to the Parts and All views
immediately after
* the name column.
*/
@SuppressWarnings("unchecked")
@Override
public List getOOTBTableViews(String tableId, Locale locale)
throws WTException
{
List<TableViewDescriptor> result =
super.getOOTBTableViews(tableId, locale);
for(TableViewDescriptor descriptor: result) {
if( descriptor.getName().equals(PARTS_VIEW) ||
descriptor.getName()
.equals(ALL_VIEW)) {
Vector<ableColumnDefinition> columns =
descriptor.getTableColumnDefinition();
for(int c = 0; c < columns.size(); c++) {
if( "name".equals(columns.get(c).getName())) {
String key = DistributingChangeRecordConstants.
DISTRIBUTION_ATTRIBUTE;
columns.add(c++,TableColumnDefinition.
newTableColumnDefinition
(key,isColumnLocked(key)));
break;
}
}
}
}
return result;
}
@Override
@SuppressWarnings("unchecked")
public List<?> getSpecialTableColumnsAttrDefinition(Locale locale) {
List<Attribute.TextAttribute> results = (List<TextAttribute>)
super.getSpecialTableColumnsAttrDefinition(locale);
results.add(new Attribute.TextAttribute
(DistributingChangeRecordConstants.
DISTRIBUTION_ATTRIBUTE,
"Distribution List" /*Should be localized label*/, locale));
return results;
}
}