ListViewerとモデルの内容を同期する
概要
JFace Data Bindingを使ってJFaceのListViewerの表示内容をListの内容が変わる度に変更する。
実装
org.eclipse.swt.widgets.List list = ...
// SWTのListウィジェットをJFaceのViewerでラップする。
ListViewer listViewer = new ListViewer(list);
// ObservableList用のコンテントプロバイダをセットする。
ObservableListContentProvider contentProvider =
new ObservableListContentProvider();
listViewer.setContentProvider(contentProvider);
// 表示するデータ。
ObservableList domain = new WritableList();
// 表示するデータをViewerにセットする。
listViewer.setInput(domain);
これでdomain.add()やdomain.remove()する度にlistViewerにdomainの変更が通知されて表示内容が更新される。