docs: private void init(final Runnable closeRunnable) {
  
          CmsVaadinUtils.readAndLocalizeDesign(this, CmsVaadinUtils.getWpMessagesForCurrentLocale(), null);
  
          //Fix the width. Dialog can only be used by calling static method which creates a wide window.
          CmsUserInfo info = new CmsUserInfo(m_user.getId(), "640px");
          CmsSessionInfo session = m_session == null ? getSessionForUser(m_user) : m_session;
          Iterator<String> iterator = getFurtherInfoLines(session).iterator();
  
          while (iterator.hasNext()) {
              info.addDetailLine(iterator.next());
          }
          m_layout.addComponent(info);
  
          if (session != null) {
              m_okButton.addClickListener(new ClickListener() {
  
                  private static final long serialVersionUID = 3096577957489665752L;
  
                  public void buttonClick(ClickEvent event) {
  
                      try {
                          A_CmsUI.get().changeProject(m_cms.readProject(session.getProject()));
                          A_CmsUI.get().changeSite(session.getSiteRoot());
  
                          String path = OpenCms.getSessionManager().switchUserFromSession(
                              m_cms,
                              CmsVaadinUtils.getRequest(),
                              m_cms.readUser(session.getUserId()),
                              session);
  
                          if (path == null) {
                              path = CmsVaadinUtils.getWorkplaceLink()
                                  + "?_lrid="
                                  + (new Date()).getTime()
                                  + "#!"
                                  + CmsFileExplorerConfiguration.APP_ID
                                  + "/"
                                  + session.getProject().getStringValue()
                                  + "!!"
                                  + session.getSiteRoot()
                                  + "!!!!";
                          }
                          A_CmsUI.get().getPage().setLocation(path);
                          if (path.contains("workplace#")) {
                              A_CmsUI.get().getPage().reload();
                          }
                      } catch (CmsException e) {
                          //
                      }
                      closeRunnable.run();
                  }
  
              });
          }
          setHideSwitchButton(session);
  
          m_cancelButton.addClickListener(new ClickListener() {
  
              private static final long serialVersionUID = -1033076596404978498L;
  
              public void buttonClick(ClickEvent event) {
  
                  closeRunnable.run();
  
              }
          });
      }