docs: public void onClickOpen(CmsSitemapTreeNode node) {
  
          if (node.isOpen()) {
              node.setOpen(false);
          } else {
              if (!m_alreadyLoaded.containsKey(node)) {
                  Object nodeData = node.getData();
                  List<CmsSitemapTreeNodeData> children = m_treeDataProvider.getChildren(
                      (CmsSitemapTreeNodeData)nodeData);
                  m_alreadyLoaded.put(node, null);
                  if (children.isEmpty()) {
                      node.setOpenerVisible(false);
                  } else {
                      for (CmsSitemapTreeNodeData child : children) {
                          CmsSitemapTreeNode childNode = createNode(child);
                          childNode.setData(child);
                          initEventHandlers(childNode);
                          node.getChildren().addComponent(childNode);
                      }
                  }
              }
              node.setOpen(true);
          }
      }