В моем плагине Eclipse у меня есть TableViewer
, который показывает некоторые данные. Эти данные извлекаются из удаленной службы REST. Поэтому для извлечения всех элементов требуется несколько секунд. Вот почему я хотел добавить элементы в TableViewer
ContentProvider
, как только я их получу. Я делаю свой запрос REST в отдельном потоке:
Thread retrieveThread = new RetrieveThread();
retrieveThread.run();
В этой теме я добавляю предметы в свой TableViewer
:
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 зависает и добавляет все элементы одновременно. Как я могу сделать это более отзывчивым способом?