docs: protected void handleItemClick(Object itemId) {
  
          Item item = getItem(itemId);
          I_CmsOuTreeType type = (I_CmsOuTreeType)getItem(itemId).getItemProperty(PROP_TYPE).getValue();
          CmsUUID roleOrGroupID = null;
          boolean idInItem = false;
          if (itemId instanceof CmsUUID) {
              roleOrGroupID = (CmsUUID)itemId;
              idInItem = true;
          } else if (item.getItemProperty(PROP_SID).getValue() != null) {
              roleOrGroupID = (CmsUUID)(item.getItemProperty(PROP_SID).getValue());
              idInItem = true;
          }
          if (type.equals(CmsOuTreeType.ROLE)) {
              String ou = getOuFromItem(itemId, CmsOuTreeType.ROLE);
              boolean isRoot = ou.isEmpty();
              if (isRoot) {
                  ou = "/";
              }
              if (!((String)itemId).endsWith(ou)) {
                  if (isRoot) {
                      if (((String)itemId).length() > (ou.length() + 1)) {
                          roleOrGroupID = new CmsUUID(((String)itemId).substring(ou.length() + 1));
                      }
                  } else {
                      roleOrGroupID = new CmsUUID(((String)itemId).substring(ou.length() + 2));
                  }
              }
          }
  
          m_app.update(getOuFromItem(itemId, type), type, roleOrGroupID, "");
          if (isExpanded(itemId) || idInItem) {
              return;
          }
          loadAndExpand(itemId, type);
          setValue(itemId);
  
      }