كيفية التعامل مع الأحداث داتاغريد العمود من مقدم?

StackOverflow https://stackoverflow.com//questions/24029763

سؤال

أنا أستخدم غوت مفب وأود أن التعامل مع الأحداث في أعمدة داتاغريد من مقدم.من عند غوت داتاغريد معرض ...

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

المثال أعلاه ، يتم كتابة هذا الرمز في عرض الجانب وأنه مجرد مثال حقا.كنمط مفب ، أنا فقط بحاجة إلى استدعاء طلب ريك لتحديث قاعدة البيانات.هذا لا يمكن القيام به في عرض الجانب ولكن ليس لدي أي فكرة عن كيفية تعيين فيلدوبداتر من مقدم العرض الخاص بي.الرجاء مساعدتي كيف يمكنني معرفة ذلك ?شكرا جزيلا .

هل كانت مفيدة؟

المحلول

هناك طريقتان للقيام بذلك (مفب الأول أو مفب الثاني الطريق):

مفب 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
  }
});

إم في بي 2 ستايل:

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