私のEclipseプラグインでは、いくつかのデータを表示するTableViewer
があります。これらのデータは、リモートRESTサービスから取得されます。したがって、すべてのアイテムを取得するのに数秒かかる。だから、私はそれらを取得するとすぐにTableViewer
のContentProvider
にアイテムを追加したかったのです。私は私のTableViewer
に項目を追加し、このスレッドでEclipseプラグイン:TableViewerに項目を非同期で追加するにはどうすればいいですか?
Thread retrieveThread = new RetrieveThread();
retrieveThread.run();
:私は別のスレッドで私のRESTクエリを行う
MyView.instance.addItems(items);
とクラスMyView
で同じ方法:
public void addItems(List<Result> items) {
ModelProvider.INSTANCE.addItems(items);
resultLabel.setText(ModelProvider.INSTANCE.getItems().size() + " items");
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
viewer.refresh();
}
});
}
私は、この手順で項目を私のTableViewer
に追加して、ビューを更新することを期待しました。しかし、今のところ、Eclipseはフリーズして、それらのアイテムをすべて同時に追加します。どのようにこれをより反応的な方法で行うことができますか?
ここで、RetrieveThreadとMyViewのソースコードを追加できますか? – nnhthuan