私はJFace
Eclipseの開発を検討しています。のダミーコンテンツプロバイダーとして機能するプラグインを作成しましたComboViewer
。このプロバイダは基本的に、データ モデルArrayList
をハードコードされた値として提供します。とにかく、私はアプローチを理解しようとしました。
メソッドComboViewer
経由でモデルを設定します。
ボタンを押すと、渡したを更新する別のオブジェクトのメソッドを呼び出し(別の要素を追加) 、変更を反映するために呼び出しますが、何も起こりません。 comboViewer.setInput(list)
list
input
ComboViewer
comboViewer.refresh
判明:
UI コンボでデータの変更 (つまり、以前の追加) を確認するにはcomboViewer.setInput(list)
、更新されたリストで呼び出す必要があります。入力として渡されcomboViewer.refresh
た のホールドを取得し、それを変更した場合にのみ、更新を反映することがわかりました。つまり、もしそうなら: comboViewer
Object
List<SomeObject> data = ((List<SomeObject>)(comboViewer.getInput()));
data.add(new SomeObject("aaa","cccc"));
comboViewer.refresh();
このようにしてのみ、データが更新されます。しかし、これらの API を使用する適切な方法がわかりません。メソッド
で渡したオブジェクトを保持して変更する必要がありますか? setInput
私はそれをすべきではないと感じています。では、の目的はrefresh
何ですか?
に提供されるデータの更新を行う適切な方法は何Viewer
ですか?