code: private static StringTreeNode createExampleHierarchy() {
  		StringTreeNode root = new StringTreeNode(Object.class.getName());
  		Map<String, StringTreeNode> nodeMap = new HashMap<>();
  		nodeMap.put(root.getData(), root);
  
  		// The classes to show in the hierarchy
  		Class<?>[] classes = new Class[]{
  			WMenu.class,
  			WMenuItem.class,
  			WSubMenu.class,
  			WMenuItemGroup.class,
  			WText.class,
  			WText.class
  		};
  
  		for (Class<?> clazz : classes) {
  			StringTreeNode childNode = new StringTreeNode(clazz.getName());
  			nodeMap.put(childNode.getData(), childNode);
  
  			for (Class<?> parentClass = clazz.getSuperclass(); parentClass != null; parentClass = parentClass.
  					getSuperclass()) {
  				StringTreeNode parentNode = nodeMap.get(parentClass.getName());
  
  				if (parentNode == null) {
  					parentNode = new StringTreeNode(parentClass.getName());
  					nodeMap.put(parentNode.getData(), parentNode);
  					parentNode.add(childNode);
  					childNode = parentNode;
  				} else {
  					parentNode.add(childNode); // already have this node hierarchy
  					break;
  				}
  			}
  		}
  
  		return root;
  	}
docs: Creates an example hierarchy, showing the WMenu API.
  
  @return the root of the tree.