0

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

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

目前,这些类如下所示:

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

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


}

我希望 StaticDataPresenter 成为某种结构,可以容纳 StaticDataPresenter 或允许您编辑的 DynamicDataPresenter。

感谢您的输入。

4

3 回答 3

1

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

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

于 2012-04-21T16:44:15.823 回答
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);
  }    
}
于 2012-04-21T15:16:16.633 回答
0

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

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

于 2012-05-18T14:45:17.723 回答