code: public void fill(CmsAppCategoryNode rootNode, Locale locale) {
  
          List<I_CmsHasOrder> configurations = new ArrayList<I_CmsHasOrder>();
          configurations.addAll(rootNode.getAppConfigurations());
          configurations.addAll(rootNode.getChildren());
          Collections.sort(configurations, new ConfigurationComparator<I_CmsHasOrder>());
          for (I_CmsHasOrder config : configurations) {
              if (config instanceof I_CmsWorkplaceAppConfiguration) {
                  m_appPanel.addComponent(m_appButtonProvider.createAppButton((I_CmsWorkplaceAppConfiguration)config));
              } else {
                  CmsAppCategoryNode childNode = (CmsAppCategoryNode)config;
                  if (childNode.getCategory() instanceof I_CmsFolderAppCategory) {
                      m_appPanel.addComponent(m_appButtonProvider.createAppFolderButton(childNode));
                  } else {
                      CmsAppHierarchyPanel childPanel = new CmsAppHierarchyPanel(m_appButtonProvider);
                      addChild(childNode.getCategory().getName(locale), childPanel);
                      childPanel.fill(childNode, locale);
                  }
              }
          }
      }
docs: Displays the given tree of categories and apps in the tree.<p>
  
  @param rootNode the rootNode to render in this panel
  @param locale the locale to use