docs: public void saveAndLeave(final Command leaveCommand) {
  
          if (hasPageChanged()) {
              CmsRpcAction<Long> action = new CmsRpcAction<Long>() {
  
                  /**
                   * @see org.opencms.gwt.client.rpc.CmsRpcAction#execute()
                   */
                  @Override
                  public void execute() {
  
                      if (getData().getDetailContainerPage() != null) {
                          getContainerpageService().saveDetailContainers(
                              getData().getDetailId(),
                              getData().getDetailContainerPage(),
                              getPageContent(),
                              this);
                      } else {
                          getContainerpageService().saveContainerpage(
                              CmsCoreProvider.get().getStructureId(),
                              getPageContent(),
                              this);
                      }
                  }
  
                  /**
                   * @see org.opencms.gwt.client.rpc.CmsRpcAction#onResponse(java.lang.Object)
                   */
                  @Override
                  protected void onResponse(Long result) {
  
                      setLoadTime(result);
                      CmsNotification.get().send(Type.NORMAL, Messages.get().key(Messages.GUI_NOTIFICATION_PAGE_SAVED_0));
                      CmsContainerpageController.get().fireEvent(new CmsContainerpageEvent(EventType.pageSaved));
                      setPageChanged(false, true);
                      leaveCommand.execute();
                  }
              };
              action.execute();
          }
      }