Класс модели данных
Создание списка IObservableList
- IObservableList observableList = новый WritableList();
- Добавить метод для добавления данных в observableList
- Метод возврата observableList
Класс просмотра таблиц
- Установите поставщика контента в ObservableListContentProvider
Класс графического интерфейса
- Средство просмотра setInput для получения ObservableList из класса модели данных
Кажется, все работает как надо, средство просмотра таблиц обновляется с изменениями в ObservableList.
Но проблема, с которой я сталкиваюсь, заключается в том, как обновить мои кнопки в графическом интерфейсе. У меня есть несколько кнопок, которые включают и отключают в зависимости от количества объектов в ObservableList в модели данных. Чтобы запустить эту логику, я должен знать, когда в списке есть изменения.
Я попытался реализовать IListChangeListener в классе GUI. Затем добавьте метод
public void handleListChange(ListChangeEvent arg0) {
updateButtons(); <-- My method to run the logic
}
Это не работает, я должен реализовать что-то другое вместо IListChangeListener?
Я не уверен, что мне следует реализовать в классе GUI, чтобы отслеживать изменения?
ИЗМЕНИТЬ
Нужно ли добавлять слушателя в средство просмотра?
viewer = new AplotDataTableViewer(parent, SWT.BORDER|SWT.V_SCROLL|SWT.FULL_SELECTION);
viewer.setInput(AplotDataModel.getInstance().getObservableList());
viewer.addListener(etc... )
Это единственный вариант, который у меня есть
addSelectionChangedListener(ISelectionChangeListener listener)
Меня не волнует изменение выбора - только если список изменился.