docs: protected void openPopup() {
  
          if (m_cmsPopup == null) {
  
              m_cmsPopup = new CmsPopup(Messages.get().key(Messages.GUI_DIALOG_CATEGORIES_TITLE_0), CmsPopup.WIDE_WIDTH);
              m_cmsCategoryTree = new CmsCategoryTree(m_selected, 300, m_isSingleValue, m_resultList, m_collapsed);
              m_cmsPopup.add(m_cmsCategoryTree);
              m_cmsPopup.setModal(false);
              m_cmsPopup.setAutoHideEnabled(true);
              m_cmsPopup.addCloseHandler(new CloseHandler<PopupPanel>() {
  
                  public void onClose(CloseEvent<PopupPanel> event) {
  
                      closePopup();
  
                  }
              });
              m_cmsPopup.addDialogClose(new Command() {
  
                  public void execute() {
  
                      // do nothing all will done in onClose();
                  }
              });
          }
          if (m_previewHandlerRegistration != null) {
              m_previewHandlerRegistration.removeHandler();
          }
          m_previewHandlerRegistration = Event.addNativePreviewHandler(new CloseEventPreviewHandler());
          m_cmsCategoryTree.truncate("CATEGORIES", CmsPopup.WIDE_WIDTH - 20);
          m_cmsPopup.showRelativeTo(m_categoryField);
          m_xcoordspopup = m_cmsPopup.getPopupLeft();
          m_ycoordspopup = m_cmsPopup.getPopupTop();
      }