code: public CmsMenuListItem createListItem(final CmsContainerElementData containerElement) {
  
          CmsMenuListItem listItem = new CmsMenuListItem(containerElement);
          if (!containerElement.isGroupContainer()
              && !containerElement.isInheritContainer()
              && CmsStringUtil.isEmptyOrWhitespaceOnly(containerElement.getNoEditReason())) {
              listItem.enableEdit(new ClickHandler() {
  
                  public void onClick(ClickEvent event) {
  
                      CmsEditableData editableData = new CmsEditableData();
                      editableData.setElementLanguage(CmsCoreProvider.get().getLocale());
                      editableData.setStructureId(
                          new CmsUUID(CmsContainerpageController.getServerId(containerElement.getClientId())));
                      editableData.setSitePath(containerElement.getSitePath());
                      getController().getContentEditorHandler().openDialog(editableData, false, null, null, null);
                      ((CmsPushButton)event.getSource()).clearHoverState();
                  }
              });
          } else {
              if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(containerElement.getNoEditReason())) {
                  listItem.disableEdit(containerElement.getNoEditReason(), true);
              } else {
                  listItem.disableEdit(Messages.get().key(Messages.GUI_CLIPBOARD_ITEM_CAN_NOT_BE_EDITED_0), false);
              }
          }
          String clientId = containerElement.getClientId();
          String serverId = CmsContainerpageController.getServerId(clientId);
          if (CmsUUID.isValidUUID(serverId)) {
              CmsContextMenuButton button = new CmsContextMenuButton(new CmsUUID(serverId), new CmsContextMenuHandler() {
  
                  @Override
                  public void refreshResource(CmsUUID structureId) {
  
                      Window.Location.reload();
                  }
              }, AdeContext.gallery);
              listItem.getListItemWidget().addButtonToFront(button);
          }
          listItem.initMoveHandle(m_controller.getDndHandler(), true);
          return listItem;
      }
docs: Creates a list item.<p>
  
  @param containerElement the element data
  
  @return the list item widget