高度なカスタマイズ > ビジネスロジックのカスタマイズ > 変更管理のカスタマイズ > 変更関連テーブルのリンクに関する属性の編集 > カスタマイズの手順 > カスタムテーブルビュー (ステップ 1)
  
カスタムテーブルビュー (ステップ 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;
}
}