具有可交换子演示者的演示者

时间:2012-04-20 20:29:15

标签: gwt-mvp

将GWT 2.4与MVP结合使用,我有一个演示者,其中顶部可以在一组数据的只读演示者或该数据的编辑器之间切换,具体取决于您到达页面的方式。

如果不使用GWTP,我如何在这两个演示者和底层视图之间进行交换?

目前,这些类看起来像这样:

public class MainPagePresenter implements Presenter, MainPageView.Presenter, ParentPresenter {

    private MainPageViewview;
    private final ClientFactory clientFactory;
    private StaticDataPresenter staticPresenter;
    private SomeOtherPresenter otherPresenter;


}

我希望StaticDataPresenter成为一个可以容纳StaticDataPresenter或DynamicDataPresenter的结构,让你可以编辑。

感谢您的意见。

3 个答案:

答案 0 :(得分:1)

public interface DataPresenter {
  void handleEdit();
}

public class StaticDataPresenter implements DataPresenter {
  @Override
  public void handleEdit() {
    // Do nothing.
  }
}

public class DynamicDataPresenter implements DataPresenter {
  @Override
  public void handleEdit() {
    // Do something.
  }
}

public class MainPagePresenter implements Presenter, MainPageView.Presenter, ParentPresenter {

  private MainPageView view;
  private final ClientFactory clientFactory;
  private DataPresenter dataPresenter;
  private SomeOtherPresenter otherPresenter;

  ...

  public void switchDataPresenter(DataPresenter dataPresenter) {
    this.dataPresenter = dataPresenter;
    DataPresenterView dataPresenterView = view.dataPresenterView();
    dataPresenterView.setPresenter(dataPresenter);
  }    
}

答案 1 :(得分:1)

您的MainPageView可以包含一个带有StaticDataPresenter视图和SomeOtherPresenter视图的DeckPanel。

然后,

MainPagePresenter可以告诉MainPageView根据您的需要切换显示的内容。

答案 2 :(得分:0)

我最终做的是在页面上放置两个编辑器,然后在演示者中打开和关闭可见性。

感谢您的建议。他们帮助了。