У нас есть приложение RCP, которое использует Tree
и соответствующее ему TreeViewer
. Это дерево использует 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)
. Я хочу добавить прослушиватель изменений в наши ObservableMapLabelProvider
или IObservableMap
, чтобы гарантировать, что столбцы дерева будут упакованы после изменения текста метки. Я попытался добавить слушатель карты изменений к каждому элементу IObservableMap
, но, похоже, он не работает.
Какие-либо предложения / указатели о том, куда следует добавлять прослушиватель изменений в столбцы дерева упаковок после изменения текста метки на листе свойств?