如何将Eclipse RCP表格视图绑定到其他线程数据?

3

我刚开始使用Eclipse RCP。 我创建了一个带有TableViewer和WritableList的Eclipse RCP视图,以从其他线程获取数据。 但是我看不到任何更改。我只需要显示其他线程正在管理的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

我知道什么是UI线程,但不知道如何编写。请提供示例帮助。

更新。由于时间不足和缺乏好的、专注的教程,问题尚未解决。

1个回答

2
我收到了与我的代码相关的此错误消息。 数据绑定可观察对象(WritableList、WritableValue 等)继承自 ChangeManager,它提供了 ChangeManager#getRealm,而该领域具有 Realm#exec。在提供给 exec 的可运行对象中,操作在正确的线程中运行。 这一行导致了错误(Getter called outside realm of observable):
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,因此同样适用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接