문제

나는 사용하고있다 GWT MVP 다음 열의 이벤트를 처리하고 싶습니다. 데이터그리드 발표자로부터.에서 GWT 데이터그리드 쇼케이스 ...

    // 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