public void setPresenter(Presenter presenter) {
   if (presenter.isEditing()) {
     editView.setPresenter(presenter);
     contentContainer.setWidget(editView);
   } else {
     displayView.setPresenter(presenter);
     contentContainer.setWidget(displayView);
   }
 }
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());
 }