gpt4 book ai didi

java - 属性表条目上的包装树列发生变化

转载 作者:行者123 更新时间:2023-12-02 11:15:10 25 4
gpt4 key购买 nike

我们有一个 RCP 应用程序,它使用 Tree 及其相应的 TreeViewer。该树使用 ObservableMapLabelProvider 提供标签文本,并使用 ObservableListTreeContentProvider 提供内容。我们使用的是org.eclipse.jface.databinding-1.5.0-SDK-3.7.2

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

我们有一个 IPropertySourceProvider 的实现,它似乎用于通过重写 getPropertySource(Object) 来填充属性 View 。

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

一旦属性表上的标签文本发生更改,我应该在哪里添加更改监听器以打包树列,有什么建议/指针吗?

最佳答案

属性 View 部分由 PropertySheet 实现类,并且值得阅读它的 Javadoc。 PropertySheetPageBookView 的一种类型,它是显示多个托管页面之一的 View 。 属性 View 的当前页面显示当前选择的属性。

因此,您可以尝试从“属性” View 部分的“当前页面”获取树查看器(基于其 View ID,org.eclipse.ui。通过 getCurrentPage().getControl() 调用 view.PropertySheet),然后执行所需的任何列巫术。

或者,您可以提供自己的 IPropertySheetPage,其行为符合您的要求。

关于java - 属性表条目上的包装树列发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50334991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com