如何将TableViewer绑定到Eclipse RCP中的java.util.List

时间:2010-08-09 09:12:05

标签: data-binding list request eclipse-rcp tableviewer

我正在尝试将TableViewer绑定到

models = List<ModelObject>

,但我并没有真正掌握它。应该可以通过master-detail和数据绑定上下文(DataBindingContext)进行绑定,这样我就可以在请求时将db(及其元素)的更改写入模型(dbc设置为POLICY_ON_REQUEST),即在编辑的保存动作中。 使用简单的文本字段,这就像一个魅力,但我找不到任何类似的TableViewers示例。 当我查看用于ViewerSupport的API的API时,我只能绑定它,但是没有给出DBC或master-detail的选项。这有效:

ViewerSupport.bind(aViewer, new WritableList(models, ModelObject.class), BeanProperties.value(ModelObject.class, "name")));

但如上所述,它不允许使用dbc或master-detail。

是否有解决方案,或者TableViewer不支持数据绑定,因为我打算使用它? 我错过了一种解决方法或一些API吗?

提前给出答案!

1 个答案:

答案 0 :(得分:0)

现在我看了一下,我想出了如何使用master-detail:

tmp = BeansObservables.observeDetailList(masterObservable,
                            "name", ModelObject.class)
ViewerSupport.bind(aViewer, tmp, BeanProperties.value(ModelObject.class, "name")));

问题仍然存在,如何使列表中的更改和列表元素不直接持久化(即POLICY_ON_REQUEST),以便我可以将它们保存在用户请求中。更具体地说:如何在某处注入DataBindingContext ...