PresenterからDataGrid列のイベントを処理する方法
質問
gwt mvp を使用しています。列のイベントを処理したいです。 DataGrid 発表者から。 GWT DataGrid Showcase ...
// 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要求を呼び出す必要があります。これは、 側面ではできませんが、わかりません。 fieldupdater をプレゼンターからどうやってそれを理解することができますか?大いにありがとう。
解決
これを行うには2つの方法があります(MVP IまたはMVP IIウェイ):
MVP 1スタイル:
> http://www.gwtproject.org/articles/mvp-architecture.html
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);
}
});
. 所属していません StackOverflow