Как связать Eclipse RCP Table View с другими данными потока - PullRequest
1 голос
/ 15 марта 2011

Я только начал с Eclipse RCP.Я создал Eclipse RCP View с TableViewer и WritableList для получения данных из другого потока.Но я не вижу никаких изменений.Мне нужно только показать содержимое List, которым управляет другой поток.

public class View extends ViewPart {
private TableViewer viewer; 
private WritableList input;

Я также могу получить ошибку,

org.eclipse.core.runtime.AssertionFailedException: assertion failed: Getter called outside realm of observable org.eclipse.core.databinding.observable.list.WritableList

Я знаю, что такое поток пользовательского интерфейса.Я просто не знаю, как писать.Пожалуйста, помогите с примером.

ОБНОВЛЕНИЕ.Не был решен из-за нехватки времени и отсутствия хорошего и целенаправленного учебника.

1 Ответ

1 голос
/ 29 марта 2018

Я получил это сообщение об ошибке также с моим кодом. Наблюдаемые данные (WritableList, WritableValue ...) наследуются от ChangeManager, что обеспечивает ChangeManager#getRealm, а область имеет Realm#exec. В пределах runnable, предоставленного exec, операция выполняется в правильном потоке.

Эта строка вызвала ошибку ( Геттер вызвал внешнюю область наблюдаемой ):

WritableValue value = getEditor().getWritableValue();
System.out.println(((RcpEditorModel) value.getValue()).getNumber());

И это предотвратило исключение:

WritableValue value = getEditor().getWritableValue();
value.getRealm().exec(() -> System.out.println(((RcpEditorModel) value.getValue()).getNumber()));

То же самое будет работать с WritableList, поскольку оно также наследуется от ChangeManager.

...