Как выставить виджет стол для телеведущего в паттерн MVP с помощью GWT
В шаблоне MVP виджет (вид) представляет свои виджеты в виде следующего вида:
@Override
public HasClickHandlers getAddIssueClickHandlers() {
return addIssueButton;
}
И вроде:
@Override
public HasText getTaskName() {
return taskName; // taskName is a Label
}
, чтобы ведущий мог изменять представление или получать значения из виджета. Однако неясно, как получить виджет таблицы, например FlexTable или CellTable, чтобы ведущий мог изменить таблицу. Любые идеи очень ценятся. Спасибо.
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);