GWT mvp示例项目:无法调用演示者的方法

时间:2015-12-18 19:38:14

标签: java gwt

我正在使用GWT mvp示例项目来创建我自己的mvp应用程序。

我几乎做了他们做的事,我。即定义了一个Presenter接口,然后定义了不同的演示者类。

在他们的代码中,他们在其中一个View类中执行了类似的操作:

@UiHandler("loginButton")
void onClick(ClickEvent e) {
    if (presenter != null) {
        presenter.onLoginButtonClicked();
    }
}

通过这种方法注入演示者:

public void setPresenter(IPresenter presenter) {
    this.presenter = presenter;

}

嗯......结果,我无法调用onLoginButtonClicked,因为IPresenter是一个接口。他们在代码中这样做。这应该如何运作?

1 个答案:

答案 0 :(得分:2)

您必须有一个实现此视图的Presenter接口的类。

类似的东西:

public class MyActivity extends AbstractActivity implements MyView.Presenter {}

然后你有一个View类:

public interface MyView extends IsWidget {

    public interface Presenter {
        void onLoginButtonClicked();
    }

    void setPresenter(Presenter listener);
}

最后,您将实现此视图:

public class MyViewImpl extends Composite implements MyView {}

注意:我强烈推荐Activities and Places模式。它为具有多个视图的任何应用程序提供了良好的结构,并增加了良好的历史支持。