Как связать TableViewer с java.util.List в Eclipse RCP - PullRequest
1 голос
/ 09 августа 2010

Я пытаюсь привязать TableViewer к

models = List<ModelObject>

, но я не совсем понимаю, как это сделать.Привязка должна быть возможной через master-detail и контекст привязки данных (DataBindingContext), чтобы я мог записывать изменения списка (и его элементов) в модель только по запросу (dbc установлен в POLICY_ON_REQUEST), т.е.в сохранении действий редактора.С простыми текстовыми полями это работает как шарм, но я не могу найти подобный пример для TableViewers.Когда я смотрю на API, например, на ViewerSupport, я могу только связать его, но без возможности предоставления DBC или master-detail.Это работает:

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

Но, как указано, он не позволяет использовать dbc или master-detail.

Есть ли решение для этого, или TableViewer просто не поддерживает привязку данныхкак я собираюсь его использовать?Есть ли обходной путь или какой-то API, который я пропустил?

Спасибо за ответы заранее!

1 Ответ

0 голосов
/ 09 августа 2010

Теперь, когда я посмотрел немного дальше, я понял, как использовать master-detail:

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

Остается вопрос, как сделать изменения в списке и элементах списка, не сохраняющихся напрямую (чтоэто POLICY_ON_REQUEST), так что я могу сохранить их по запросу пользователя.Более конкретно: Как мне вставить куда-нибудь DataBindingContext ...

...