Как выставить виджет стол для телеведущего в паттерн MVP с помощью GWT


В шаблоне MVP виджет (вид) представляет свои виджеты в виде следующего вида:

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

И вроде:

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

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

1 3

1 ответ:

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

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

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

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

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

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