docs: void handleFileItemClick(ItemClickEvent event) {
  
          if (isEditing()) {
              stopEdit();
  
          } else if (!event.isCtrlKey() && !event.isShiftKey()) {
              // don't interfere with multi-selection using control key
              String itemId = (String)event.getItemId();
              CmsUUID structureId = getUUIDFromItemID(itemId);
              boolean openedFolder = false;
              if (event.getButton().equals(MouseButton.RIGHT)) {
                  handleSelection(itemId);
                  openContextMenu(event);
              } else {
                  if ((event.getPropertyId() == null)
                      || CmsResourceTableProperty.PROPERTY_TYPE_ICON.equals(event.getPropertyId())) {
                      handleSelection(itemId);
                      openContextMenu(event);
                  } else {
                      if (m_actionColumnProperty.equals(event.getPropertyId())) {
                          Boolean isFolder = (Boolean)event.getItem().getItemProperty(
                              CmsResourceTableProperty.PROPERTY_IS_FOLDER).getValue();
                          if ((isFolder != null) && isFolder.booleanValue()) {
                              if (m_folderSelectHandler != null) {
                                  m_folderSelectHandler.onFolderSelect(structureId);
                              }
                              openedFolder = true;
                          } else {
                              try {
                                  CmsObject cms = A_CmsUI.getCmsObject();
                                  CmsResource res = cms.readResource(structureId, CmsResourceFilter.IGNORE_EXPIRATION);
                                  m_currentResources = Collections.singletonList(res);
                                  I_CmsDialogContext context = m_contextProvider.getDialogContext();
                                  I_CmsDefaultAction action = OpenCms.getWorkplaceAppManager().getDefaultAction(
                                      context,
                                      m_menuBuilder);
                                  if (action != null) {
                                      action.executeAction(context);
                                      return;
                                  }
                              } catch (CmsVfsResourceNotFoundException e) {
                                  LOG.info(e.getLocalizedMessage(), e);
                              } catch (CmsException e) {
                                  LOG.error(e.getLocalizedMessage(), e);
                              }
                          }
                      } else {
                          I_CmsDialogContext context = m_contextProvider.getDialogContext();
                          if ((m_currentResources.size() == 1)
                              && m_currentResources.get(0).getStructureId().equals(structureId)
                              && (context instanceof I_CmsEditPropertyContext)
                              && ((I_CmsEditPropertyContext)context).isPropertyEditable(event.getPropertyId())) {
  
                              ((I_CmsEditPropertyContext)context).editProperty(event.getPropertyId());
                          }
                      }
                  }
              }
              // update the item on click to show any available changes
              if (!openedFolder) {
                  update(Collections.singletonList(structureId), false);
              }
          }
      }