public class ProjectAdminSettingsView extends Composite { interface ProjectAdminSettingsViewUiBinder extends UiBinder<HTMLPanel, ProjectAdminSettingsView> {} public static interface Presenter extends ProjectAdminSettingsDisplayView.Presenter, ProjectAdminSettingsEditView.Presenter { boolean isEditing(); } private static ProjectAdminSettingsViewUiBinder ourUiBinder = GWT.create(ProjectAdminSettingsViewUiBinder.class); @UiField SimplePanel contentContainer; private ProjectAdminSettingsEditView editView = ProjectAdminSettingsEditView.getInstance(); private ProjectAdminSettingsDisplayView displayView = ProjectAdminSettingsDisplayView.getInstance(); private static ProjectAdminSettingsView instance; public static ProjectAdminSettingsView getInstance() { if (instance == null) { instance = new ProjectAdminSettingsView(); } return instance; } public ProjectAdminSettingsView() { initWidget(ourUiBinder.createAndBindUi(this)); contentContainer.setWidget(ProjectAdminSettingsDisplayView.getInstance()); } public void setPresenter(Presenter presenter) { if (presenter.isEditing()) { editView.setPresenter(presenter); contentContainer.setWidget(editView); } else { displayView.setPresenter(presenter); contentContainer.setWidget(displayView); } } }
public ProjectAdminSettingsView() { initWidget(ourUiBinder.createAndBindUi(this)); contentContainer.setWidget(ProjectAdminSettingsDisplayView.getInstance()); }