private void createNodes(DefaultMutableTreeNode parent, PackageContents source) {
        HashMap childPackages = source.getContainedPackages();
        Iterator it = childPackages.values().iterator();
        while (it.hasNext() == true) {
            PackageContents pc = (PackageContents) it.next();
            DefaultMutableTreeNode branch = new DefaultMutableTreeNode(pc.getName());
            parent.add(branch);
            createNodes(branch, pc);
        }
        it = source.getContainedClasses().values().iterator();
        while (it.hasNext() == true) {
            String className = (String) it.next();
            DefaultMutableTreeNode leaf = new DefaultMutableTreeNode(className);
            parent.add(leaf);
        }
    }