如何将 Eclipse RCP Table View 绑定到其他线程数据

发布于 2024-10-21 21:05:26 字数 535 浏览 0 评论 0原文

我刚刚开始使用 Eclipse RCP。 我使用 TableViewer 和 WritableList 创建了 Eclipse RCP View 以从其他线程获取数据。 但我看不到任何变化。我只需要显示其他线程正在管理的列表的内容。

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 线程。我只是不知道怎么写。请帮忙举个例子。

更新。没有解决,因为缺乏时间,并且缺少好的和有针对性的教程。

I have just started with Eclipse RCP.
I created Eclipse RCP View with TableViewer and WritableList to get data from other thread.
But I cannot see any changes. I need only to show content of List that other thread is managing.

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

I also can get error,

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

I know what is UI Thread. I just don't know how to write. Please help with example.

UPDATE. Was not solved, because of lack of time, and missing good and focused tutorial.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巾帼英雄 2024-10-28 21:05:28

我的代码也收到了此错误消息。
数据绑定可观察对象(WritableList、WritableValue...)继承自 ChangeManager,它提供 ChangeManager#getRealm 并且领域具有 Realm#exec。在提供给 exec 的可运行对象中,操作在正确的线程中运行。

这一行导致了错误(Getter 在可观察范围之外调用了):

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< /代码>。

I received this error message also with my code.
Databinding observables (WritableList, WritableValue...) inherit from ChangeManager, which provides ChangeManager#getRealm and the realm has Realm#exec. Within the runnable provided to exec, the operation runs in the correct thread.

This line caused the error (Getter called outside realm of observable):

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

And this prevented the exception:

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

The same will work with WritableList since it also inherits from ChangeManager.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文