问题标签 [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.
data-binding - 使用 EMF 数据绑定转换列表中的属性不会转换值
我正在尝试使用转换器将一些值从整数转换为字符串。
它不喜欢它已被赋予列表的事实,我尝试迭代并执行以下操作:
IObservableValue observeItemValue = props[0].observe(peopleList.get(i));
其中 i 是索引,不会引发异常,但不会转换值。props[0]
只包含将被监视的属性。
java - 将 TableViewer 与由其他几个模型扩展的模型绑定
我有一门课程File
正在被另外两个课程CopyFile
和DeleteFile
.
现在我正在尝试将其绑定到表格查看器:
我想在文件是一个实例时显示destinationPath CopyFile
,null
或者""
当它是一个实例时显示destinationPath DeleteFile
。
但是当我运行它时,它会抛出一个错误:
在类 File 中找不到名称为 destinationPath 的属性
请帮我解决这个问题并告诉我如何在继承的情况下实现 DataBinding。
eclipse-rcp - Eclipse RCP 4 - 表中的绑定列和 iobservable 值
我有以下问题 - 我有一个 IObservableValue,它正在发生变化,应该显示在表格的第一列中。其他列中的值基于此值(在其他列中计算值,并且值取决于第一列中的值)。如何才能做到这一点?
eclipse - ViewerSupport.bind() 可以与图像一起使用吗?
在我的 Eclipse RCP 视图中,我使用 JFace 数据绑定将模型数据绑定到org.eclipse.jface.viewers.TreeViewer
. 我ViewerSupport.bind()
用来绑定数据,如片段所示,它工作得很好。
现在我真的很想在节点上显示图像以及文本。如果没有数据绑定,我只会覆盖 aLabelProvider
的getImage(Object element)
方法,但内容 + 标签提供程序方法和使用ViewerSupport
不能一起工作。ViewerSupport
我还没有在API中找到解决我的问题的方法。有没有解决方案,也许使用org.eclipse.core.databinding.property.value.IValueProperty
s?
jface - 如何将 ObservableMap 绑定到 ListViewer 或 TableViewer?
有很多关于如何使用 or 将 Set 或 List 绑定到 Viewer 的ObservableSetContentProvider
示例ObservableListContentProvider
。但是,我找不到任何关于 aObservableMapContentProvider
或将查看器绑定到HashMap
实现IObservableMap
接口的方法的任何信息。
使用示例:
- 绑定以在 `ListViewer 中显示地图键
- 绑定以在表查看器中显示映射条目,其中键是一列,值属性是其他列。
我知道在 EMF 中可以EMap
使用ObservableMap
.
有人能指出我正确的方向吗?
java - 数据绑定列表中的新泛型导致编译错误
我目前正在将我的 RCP 项目升级到 Neon,并遇到了以下问题。
似乎泛型已添加到 JFace 数据绑定中,从而产生了新的方法签名。
以前我能够做到
我得到一个编译错误,因为该observe
方法现在需要List<Object>
并且modules
不能自动从List<AbstractTestModule>
to强制转换List<Object>
。
有没有办法做这样的演员或者我可以使用不同的策略?
data-binding - 验证错误阻止撤消
我的基于 EMF 的 Eclipse 应用程序存在以下问题:
撤消工作正常。验证工作正常。但是当 GUI 字段中的数据出现验证错误时,这会阻止使用undo操作。例如,无法撤消以恢复该字段的有效状态。
在这张图片中,无法使用 undo:
应用程序中使用的工具:
- Eclipse 数据绑定
UpdateValueStrategy
s 在绑定上进行验证- 撤消是使用
UndoAction
调用的标准实现的CommandStack.undo
- 一个
MessageManagerSupport
将验证框架连接到基于 Eclipse Forms 的 GUI 的类。
数据绑定如下所示:
问题是这样的:
- 撤消系统对更改模型的命令起作用。
- 当存在验证错误时,验证系统会阻止更新到达模型。
为了在出现验证错误时使撤消工作,我想我可以做以下不同的事情之一:
- 使撤消系统在 GUI 层上工作。(这将是一个巨大的变化,可能根本不可能使用 EMF。)
- 以与有效数据相同的方式,使 GUI 中的无效数据触发更改模型数据的命令。(只要数据不能保存到磁盘就可以了。但我找不到这样做的方法。)
- 直接在模型上进行验证,可能由
Resource
. (这是验证策略的一个很大的变化。在这个阶段似乎无法跟踪源 GUI 控件。)
这些解决方案要么看起来不可能,要么有严重的缺点。
即使存在验证错误,使撤消工作的最佳方法是什么?
注意:我接受 Mad Matts 的回答,因为他们的建议引导我找到解决方案。但我对此并不满意,我希望有一个更好的。
如果有人在某个时候找到了更好的解决方案,我很乐意考虑接受它而不是当前的解决方案!
eclipse - 如何对 JFace 表进行“就地编辑”?
在 WPF (.net) 中,当 aDataGrid
可编辑并设置为可观察集合时,会有一个占位符行。当单击它时,一个新元素被添加到支持集合中,并且表格进入编辑模式。
JFace 表查看器也可以实现类似的功能吗?
我能想到的唯一解决方案是创建一个自定义的可观察列表,该列表委托给我想要观察的“真实”列表,但总是在末尾添加一个额外的占位符对象,它会尽快插入“真实”列表中它被编辑。但这对我来说似乎有点骇人听闻......
eclipse-plugin - TreeViewer 到 GridTreeViewer:现有 ITreeContentProviders 和“惰性”ObservableListTreeContentProvider 之间的桥梁
TL;博士
基于Thomas Schindl的文章JFace-Viewer and Eclipse Databinding with > 10.000 Objects(这表明了一个非常好的主意),我想将常规TreeViewer
+ 多个ITreeContentProvider
实现转换为使用, a和Eclipse 数据绑定来实现的Nebula GridTreeViewer
“懒惰”(懒惰)并按需加载数据。 ObservableListTreeContentProvider
VisibleRangeChangedListener
我应该如何重写我现有的常规ITreeContentProvider
实现以使用相同的层次结构ObservableListTreeContentProvider
?我可以在新旧解决方案之间架起一座“桥梁”吗?以DelegatingListProperty
某种方式使用这样的?还有其他想法吗?
我发现了一些过于简单的例子,但我并没有真正理解在如此复杂的分层树格式中使用数据绑定的概念。
示例树和内容提供者:
内容提供者 1.:
内容提供者 2.:
更长的解释
我有一个视图,我使用带有经典和+实现的自定义以分层树格式显示大量对象。还有一个菜单,用户可以在其中选择他们希望以哪种格式显示此层次结构。当用户选择另一种显示格式时,唯一发生的事情是另一个实现被设置到查看器,我以编程方式刷新查看器。
它可以工作,但是由于元素数量巨大(在某些情况下,100-200k 行,请不要问原因,它必须工作),显示项目可能会很慢TreeViewer
ITreeContentProvider
LabelProvider
ITableLabelProvider
ITreeContentProvider
,UI有时会死机,因为TreeItems上有太多的监听器,视图刷新需要很多时间等等......
所以我想使用某种惰性解决方案,同时将模型元素加载到内存中。
我已经尝试过SWT.VIRTUAL
andILazyTreeContentProvider
,但它的性能很差(即使使用viewer.setUseHashlookup(true)
)并且存在问题(滚动时,TreeItems 需要很长时间才能加载,有错误,排序、过滤等问题)。
现在我阅读了 Thomas Schindl 的博客文章:JFace-Viewer and Eclipse Databinding with > 10.000 Objects。我想尝试使用Eclipse Nebula Grid的 GridTreeViewer
和 + ObservableListTreeContentProvider
(这也是一个ITreeContentProvider
实现)和一个VisibleRangeChangedListener
“懒惰”标签提供程序(如文章中所示)。我可以以某种方式使用我现有的ITreeContentProvider
实现并在这个和新的之间建立一个“桥梁”ObservableListTreeContentProvider
吗?
顺便说一句,我检查了Nebula NatTable,但我发现将现有的内容提供者迁移到这个新的解决方案非常困难,它的 API 和它的方法完全不同(从孩子到父母的层次结构,而不是相反的方式),以及与树还是空的。
data-binding - 来自 EObjects 内容的嵌套可观察列表
我有一个具有以下结构的模型(在 Xcore 中指定):
我想使用 EMF 数据绑定来创建网络中所有主机中所有从属对象的可观察列表。
如何才能做到这一点?
或者:我可以创建一个可观察的奴隶列表的可观察列表吗?即,类型为 的结构IObservableList<IObservableList<Slave>>
。
例如,以下内容不起作用:
结果列表似乎是类型IObservableList<EList<Slave>>
而不是所需类型。问题是结果IObservableList
具有类的元素EObjectContainmentEList
,而不是IObservableList
.