Как выставить виджет таблицы докладчику в шаблоне MVP с помощью gwt - PullRequest
3 голосов
/ 02 июля 2011

В шаблоне MVP виджет (представление) предоставляет свои виджеты в форме, подобной этой:

@Override    
public HasClickHandlers getAddIssueClickHandlers() {
            return addIssueButton;
        }

и вроде:

@Override
public HasText getTaskName() {
    return taskName; // taskName is a Label
}

Чтобы позволить докладчику изменять представление илиполучить значения из виджета.Однако неизвестно, как получить виджет таблицы, такой как FlexTable или CellTable, чтобы докладчик мог изменить таблицу.Любые идеи очень ценятся.Спасибо.

1 Ответ

3 голосов
/ 04 июля 2011

Не все виджеты GWT были разработаны с учетом этих интерфейсов (например, HasclickHandlers , HasText , IsWidget и т. Д.).
В последних версиях GWTбазовые виджеты были изменены таким образом, чтобы они реализовывали эти интерфейсы, чтобы сделать представления, использующие их, тестируемыми в модульных тестах.Поэтому я не уверен, что FlexTable реализует эти интерфейсы, но в случае CellTable вы можете использовать интерфейс HasData .

Здесь вы можете найти реализованные интерфейсыс помощью CellTable: Javadoc

Я лично выставил бы CellTable через интерфейс HasData , который можно использовать для установки и извлечения selectionModel(для выбора строк в CellTable).
Для изменения или обновления данных, отображаемых в CellTable, я бы использовал ListDataProvider и сохранил бы его в Presenter.

@Override    
public HasData getCellTableDisplay() {
            return cellTable;
}

и в конструкторе докладчика вы можете создать ListDataProvider и использовать функцию addDataDisplay для добавления CellTable:

final ListDataProvider<String> dataProvider = new ListDataProvider<String>();
dataProvider.addDataDisplay(getView().getCellTableDisplay);
...