GWT:向表单添加SubmitHandler而不在View中放置逻辑

时间:2014-06-10 16:00:19

标签: gwt mvp gwtp gwt-platform

我有一个包含简单搜索表单的GWTP PresenterWidgetView对。

目前我通过调用SubmitHandler的{​​{1}}方法将getSearchForm()添加到表单中,这是不好的做法,因为它引用了实际的类而不是接口:

View

有没有办法在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

我希望在Presenter中保留尽可能多的逻辑。

1 个答案:

答案 0 :(得分:1)

我在这里找到了对此的讨论,并最终使用了Thomas Broyer建议的选项4:

https://groups.google.com/forum/#!topic/google-web-toolkit/Fbo-SEDjRa4