データ モデル クラス
IObservableList の作成
- IObservableList observableList = new WritableList();
- observableList にデータを追加する Add メソッド
- observableListを返すメソッド
テーブル ビューアー クラス
- コンテンツ プロバイダーを ObservableListContentProvider に設定します
GUI クラス
- ビューア setInput は、データ モデル クラスから ObservableList を取得します
すべてが期待どおりに機能しているように見えます。テーブル ビューアは、ObservableList への変更で更新されます。
しかし、私が抱えている問題は、GUI でボタンを更新する方法です。データ モデルの ObservableList 内のオブジェクトの数に応じて有効および無効にするボタンがいくつかあります。そのロジックを実行するには、リストにいつ変更があったかを知る必要があります。
GUI クラスに IListChangeListener を実装しようとしました。次に、メソッドを追加します
public void handleListChange(ListChangeEvent arg0) {
updateButtons(); <-- My method to run the logic
}
IListChangeListener の代わりに何か他のものを実装する必要がありますか?
変更をリッスンするために GUI クラスに何を実装すればよいかわかりません。
編集
ビューアーにリスナーを追加する必要がありますか?
viewer = new AplotDataTableViewer(parent, SWT.BORDER|SWT.V_SCROLL|SWT.FULL_SELECTION);
viewer.setInput(AplotDataModel.getInstance().getObservableList());
viewer.addListener(etc... )
これは私が持っている唯一のオプションです
addSelectionChangedListener(ISelectionChangeListener listener)
リストが変更された場合のみ、選択の変更は気にしません。