问题标签 [eclipse-databinding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
62 浏览

data-binding - 使用 EMF 数据绑定转换列表中的属性不会转换值

我正在尝试使用转换器将一些值从整数转换为字符串。

它不喜欢它已被赋予列表的事实,我尝试迭代并执行以下操作:

IObservableValue observeItemValue = props[0].observe(peopleList.get(i));

其中 i 是索引,不会引发异常,但不会转换值。props[0]只包含将被监视的属性。

0 投票
1 回答
72 浏览

java - 将 TableViewer 与由其他几个模型扩展的模型绑定

我有一门课程File正在被另外两个课程CopyFileDeleteFile.

现在我正在尝试将其绑定到表格查看器:

我想在文件是一个实例时显示destinationPath CopyFilenull或者""当它是一个实例时显示destinationPath DeleteFile

但是当我运行它时,它会抛出一个错误:

在类 File 中找不到名称为 destinationPath 的属性

请帮我解决这个问题并告诉我如何在继承的情况下实现 DataBinding。

0 投票
1 回答
44 浏览

eclipse-rcp - Eclipse RCP 4 - 表中的绑定列和 iobservable 值

我有以下问题 - 我有一个 IObservableValue,它正在发生变化,应该显示在表格的第一列中。其他列中的值基于此值(在其他列中计算值,并且值取决于第一列中的值)。如何才能做到这一点?

0 投票
1 回答
271 浏览

eclipse - ViewerSupport.bind() 可以与图像一起使用吗?

在我的 Eclipse RCP 视图中,我使用 JFace 数据绑定将模型数据绑定到org.eclipse.jface.viewers.TreeViewer. 我ViewerSupport.bind()用来绑定数据,如片段所示,它工作得很好。

现在我真的很想在节点上显示图像以及文本。如果没有数据绑定,我只会覆盖 aLabelProvidergetImage(Object element)方法,但内容 + 标签提供程序方法和使用ViewerSupport不能一起工作。ViewerSupport我还没有在API中找到解决我的问题的方法。有没有解决方案,也许使用org.eclipse.core.databinding.property.value.IValuePropertys?

0 投票
0 回答
123 浏览

jface - 如何将 ObservableMap 绑定到 ListViewer 或 TableViewer?

有很多关于如何使用 or 将 Set 或 List 绑定到 Viewer 的ObservableSetContentProvider示例ObservableListContentProvider。但是,我找不到任何关于 aObservableMapContentProvider或将查看器绑定到HashMap实现IObservableMap接口的方法的任何信息。

使用示例:

  • 绑定以在 `ListViewer 中显示地图键
  • 绑定以在表查看器中显示映射条目,其中键是一列,值属性是其他列。

我知道在 EMF 中可以EMap使用ObservableMap.

有人能指出我正确的方向吗?

0 投票
1 回答
189 浏览

java - 数据绑定列表中的新泛型导致编译错误

我目前正在将我的 RCP 项目升级到 Neon,并遇到了以下问题。

似乎泛型已添加到 JFace 数据绑定中,从而产生了新的方法签名。

以前我能够做到

我得到一个编译错误,因为该observe方法现在需要List<Object>并且modules不能自动从List<AbstractTestModule>to强制转换List<Object>

文档在这里:http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fcore%2Fdatabinding%2Fproperty%2FProperties。 html

有没有办法做这样的演员或者我可以使用不同的策略?

0 投票
2 回答
114 浏览

data-binding - 验证错误阻止撤消

我的基于 EMF 的 Eclipse 应用程序存在以下问题:

撤消工作正常。验证工作正常。但是当 GUI 字段中的数据出现验证错误时,这会阻止使用undo操作。例如,无法撤消以恢复该字段的有效状态。

在这张图片中,无法使用 undo

不是很有信息量的图像,希望能让这个问题看起来更有趣。


应用程序中使用的工具:

  • Eclipse 数据绑定
  • UpdateValueStrategys 在绑定上进行验证
  • 撤消是使用UndoAction调用的标准实现的CommandStack.undo
  • 一个MessageManagerSupport将验证框架连接到基于 Eclipse Forms 的 GUI 的类。

数据绑定如下所示:


问题是这样的:

  • 撤消系统对更改模型的命令起作用。
  • 当存在验证错误时,验证系统会阻止更新到达模型。

为了在出现验证错误时使撤消工作,我想我可以做以下不同的事情之一:

  1. 使撤消系统在 GUI 层上工作。(这将是一个巨大的变化,可能根本不可能使用 EMF。)
  2. 以与有效数据相同的方式,使 GUI 中的无效数据触发更改模型数据的命令。(只要数据不能保存到磁盘就可以了。但我找不到这样做的方法。)
  3. 直接在模型上进行验证,可能由Resource. (这是验证策略的一个很大的变化。在这个阶段似乎无法跟踪源 GUI 控件。)

这些解决方案要么看起来不可能,要么有严重的缺点。

即使存在验证错误,使撤消工作的最佳方法是什么?


注意:我接受 Mad Matts 的回答,因为他们的建议引导我找到解决方案。但我对此并不满意,我希望有一个更好的。

如果有人在某个时候找到了更好的解决方案,我很乐意考虑接受它而不是当前的解决方案!

0 投票
0 回答
32 浏览

eclipse - 如何对 JFace 表进行“就地编辑”?

在 WPF (.net) 中,当 aDataGrid可编辑并设置为可观察集合时,会有一个占位符行。当单击它时,一个新元素被添加到支持集合中,并且表格进入编辑模式。

JFace 表查看器也可以实现类似的功能吗?

我能想到的唯一解决方案是创建一个自定义的可观察列表,该列表委托给我想要观察的“真实”列表,但总是在末尾添加一个额外的占位符对象,它会尽快插入“真实”列表中它被编辑。但这对我来说似乎有点骇人听闻......

0 投票
1 回答
335 浏览

eclipse-plugin - TreeViewer 到 GridTreeViewer:现有 ITreeContentProviders 和“惰性”ObservableListTreeContentProvider 之间的桥梁

TL;博士

基于Thomas Schindl的文章JFace-Viewer and Eclipse Databinding with > 10.000 Objects(这表明了一个非常好的主意),我想将常规TreeViewer+ 多个ITreeContentProvider实现转换为使用, a和Eclipse 数据绑定实现的Nebula GridTreeViewer“懒惰”(懒惰)并按需加载数据ObservableListTreeContentProviderVisibleRangeChangedListener

我应该如何重写我现有的常规ITreeContentProvider实现以使用相同的层次结构ObservableListTreeContentProvider?我可以在新旧解决方案之间架起一座“桥梁”吗?以DelegatingListProperty某种方式使用这样的?还有其他想法吗?
我发现了一些过于简单的例子,但我并没有真正理解在如此复杂的分层树格式中使用数据绑定的概念。

示例树和内容提供者:

内容提供者 1.:

内容提供者 2.:

更长的解释

我有一个视图,我使用带有经典和+实现的自定义以分层格式显示大量对象。还有一个菜单,用户可以在其中选择他们希望以哪种格式显示此层次结构。当用户选择另一种显示格式时,唯一发生的事情是另一个实现被设置到查看器,我以编程方式刷新查看器。 它可以工作,但是由于元素数量巨大(在某些情况下,100-200k 行,请不要问原因,它必须工作),显示项目可能会很慢TreeViewerITreeContentProviderLabelProviderITableLabelProviderITreeContentProvider
,UI有时会死机,因为TreeItems上有太多的监听器,视图刷新需要很多时间等等......

所以我想使用某种惰性解决方案,同时将模型元素加载到内存中。
我已经尝试过SWT.VIRTUALandILazyTreeContentProvider,但它的性能很差(即使使用viewer.setUseHashlookup(true))并且存在问题(滚动时,TreeItems 需要很长时间才能加载,有错误,排序、过滤等问题)。

现在我阅读了 Thomas Schindl 的博客文章:JFace-Viewer and Eclipse Databinding with > 10.000 Objects。我想尝试使用Eclipse Nebula GridGridTreeViewer和 + ObservableListTreeContentProvider(这也是一个ITreeContentProvider实现)和一个VisibleRangeChangedListener“懒惰”标签提供程序(如文章中所示)。我可以以某种方式使用我现有的ITreeContentProvider实现并在这个和新的之间建立一个“桥梁”ObservableListTreeContentProvider吗?


顺便说一句,我检查了Nebula NatTable,但我发现将现有的内容提供者迁移到这个新的解决方案非常困难,它的 API 和它的方法完全不同(从孩子到父母的层次结构,而不是相反的方式),以及与还是空的。

0 投票
1 回答
98 浏览

data-binding - 来自 EObjects 内容的嵌套可观察列表

我有一个具有以下结构的模型(在 Xcore 中指定):

我想使用 EMF 数据绑定来创建网络中所有主机中所有从属对象的可观察列表。

如何才能做到这一点?

或者:我可以创建一个可观察的奴隶列表的可观察列表吗?即,类型为 的结构IObservableList<IObservableList<Slave>>


例如,以下内容不起作用:

结果列表似乎是类型IObservableList<EList<Slave>>而不是所需类型。问题是结果IObservableList具有类的元素EObjectContainmentEList,而不是IObservableList.