属性表条目中的打包树列更改

时间:2018-05-14 16:27:49

标签: java eclipse eclipse-rcp eclipse-emf

我们有一个使用Tree及其相应TreeViewer的RCP应用。此树使用ObservableMapLabelProvider提供标签文本和内容ObservableListTreeContentProvider。我们正在使用org.eclipse.jface.databinding-1.5.0-SDK-3.7.2

我们使用IObservableMap提供EMFObservables.observeMaps(contentProvider.getKnownElements(), new EStructuralFeature[])数组来构建ObservableMapLabelProvider

我们有IPropertySourceProvider的实现,它似乎用于通过覆盖getPropertySource(Object)来填充属性视图。

现在我可以看到,当我修改标签的属性表条目时,会调用IPropertySource#setPropertyValue(Object, Object)。我想在ObservableMapLabelProviderIObservableMap添加更改侦听器,以确保在修改标签文本后树列会被打包。我尝试将更改地图侦听器添加到IObservableMap的每个元素,但它似乎不起作用。

在属性表上更改标签文本后,我应该在何处将更改侦听器添加到打包树列中的任何建议/指针?

1 个答案:

答案 0 :(得分:1)

属性视图部分由PropertySheet类实现,值得阅读其Javadoc。 PropertySheet是一种PageBookView,一种显示许多托管页面之一的视图。 Properties 视图的当前页面显示当前选择的属性。

因此,您可以尝试从属性视图部分(基于其视图ID,org.eclipse.ui.views.PropertySheet)通过{{从当前页面获取树查看器1}},然后执行任何列voodoo是必需的。

或者,您可以提供自己的行为getCurrentPage().getControl()