Клас на модела на данни
Създаване на IObservableList
- IObservableList observableList = нов WritableList();
- Добавете метод за добавяне на данни към observableList
- Метод за връщане на observableList
Клас за преглед на таблици
- Задайте доставчик на съдържание на ObservableListContentProvider
GUI клас
- Viewer setInput за получаване на ObservableList от класа на модела на данни
Изглежда всичко работи както желаете, програмата за преглед на таблици се актуализира с промените в ObservableList.
Но проблемът, който имам, е как да актуализирам бутоните си в GUI. Имам няколко бутона, които активират и деактивират според броя на обектите в 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)
Не ме интересува промяната на избора - само ако списъкът е променен.