Вопрос

Я использую GWT MVP и я хотел бы обрабатывать события в столбцах Сетка данных от Ведущего.От Витрина GWT DataGrid ...

    // First name.
Column<ContactInfo, String> firstNameColumn =
    new Column<ContactInfo, String>(new EditTextCell()) {
      @Override
      public String getValue(ContactInfo object) {
        return object.getFirstName();
      }
    };
firstNameColumn.setSortable(true);
sortHandler.setComparator(firstNameColumn, new Comparator<ContactInfo>() {
  @Override
  public int compare(ContactInfo o1, ContactInfo o2) {
    return o1.getFirstName().compareTo(o2.getFirstName());
  }
});
dataGrid.addColumn(firstNameColumn, constants.cwDataGridColumnFirstName());
firstNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
  @Override
  public void update(int index, ContactInfo object, String value) {
    // Here I would like to call RPC methods
  }
});
dataGrid.setColumnWidth(firstNameColumn, 20, Unit.PCT);

Приведенный выше пример , этот код написан на Вид сторону, и это просто действительно пример.В качестве шаблона mvp мне просто нужно вызвать rpc-запрос для обновления базы данных.Это не может быть сделано в Вид сторону, но я понятия не имею, как установить Обновление поля от моего ведущего.Пожалуйста, помогите мне, как я могу в этом разобраться?Большое спасибо .

Это было полезно?

Решение

Есть два способа сделать это (способ MVP I или способ MVP II).:

Стиль MVP 1:

http://www.gwtproject.org/articles/mvp-architecture.html

Создать setter на вашем View (т.е. setFieldUpdater(FieldUpdater<ContactInfo, String>)) для этого требуется FieldUpdater и добавляет его в столбец.Из самого Presenter вы можете позвонить (при условии, что view это ссылка на ваш взгляд).

Ведущий:

view.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
  @Override
  public void update(int index, ContactInfo object, String value) {
    // Make the RPC call
  }
});

Стиль MVP2:

http://www.gwtproject.org/articles/mvp-architecture-2.html

Если у вас есть рекомендация от вашего View вернемся к вашему Presenter.Затем вы можете вызвать функцию на вашем компьютере. Presenter.

Вид:

firstNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
  @Override
  public void update(int index, ContactInfo object, String value) {
    getPresenter().onUpdate(info,value);
  }
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top