0
我有一個包含簡單搜索表單的GWTP PresenterWidget
和View
對。GWT:將SubmitHandler添加到表單中,而不會將邏輯放在視圖中
目前我通過調用我的View
的getSearchForm()
方法,這是不好的做法,因爲它引用的,而不是一個接口的實際類添加SubmitHandler
到窗體:
public class HeaderPresenter extends PresenterWidget<HeaderPresenter.MyView>
{
public interface MyView extends View
{
void submitForm();
Form getSearchForm();
}
// ...omitted for brevity
@Inject
public HeaderPresenter(EventBus eventBus, DispatchAsync dispatchAsync, MyView view, PlaceManager placeManager)
{
// ...omitted for brevity
}
@Override
protected void onBind()
{
super.onBind();
getView().getSearchForm().addSubmitHandler(new SubmitHandler()
{
@Override
public void onSubmit(SubmitEvent event)
{
// stops the form submission
event.cancel();
// now we can do our stuff
String query = getView().getSearchQuery();
if(query != "") // don't search for a blank string
{
PlaceRequest request = new PlaceRequest.Builder().nameToken(NameTokens.search).with("q", query).build();
placeManager.revealPlace(request);
}
}
});
}
有沒有一種方式來增加SubmitHandler
在HeaderPresenter
,或者我必須把該代碼放在View
?
我想在演示者中儘可能多地保留邏輯。