将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的结构,让你可以编辑。
感谢您的意见。
答案 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)
我最终做的是在页面上放置两个编辑器,然后在演示者中打开和关闭可见性。
感谢您的建议。他们帮助了。