class MegaMutableTreeNode extends DefaultMutableTreeNode {

    protected long mega_node_size = 0L;

    protected Comparator nodeComparator = new Comparator() {
        @Override
        public int compare(Object o1, Object o2) {

            return MiscTools.naturalCompare(o1.toString(), o2.toString(), true);
        }

        @Override
        @SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
        public boolean equals(Object obj) {
            return false;
        }
    };

    public void setMega_node_size(long mega_node_size) {
        this.mega_node_size = mega_node_size;
    }

    public long getMega_node_size() {
        return mega_node_size;
    }

    public MegaMutableTreeNode() {
        super();
    }

    public MegaMutableTreeNode(Object o) {
        super(o);
        this.mega_node_size = (long) ((HashMap<String, Object>) o).get("size");
    }

    @Override
    public String toString() {

        if (userObject instanceof HashMap) {

            HashMap<String, Object> user_object = (HashMap<String, Object>) userObject;

            return user_object.get("name") + " [" + formatBytes(mega_node_size) + "]";

        } else if (userObject instanceof Object) {

            return userObject.toString();

        } else {

            return "";
        }
    }

    @Override
    public Object clone() {<FILL_FUNCTION_BODY>}

    @Override
    public void insert(MutableTreeNode newChild, int childIndex) {
        super.insert(newChild, childIndex);
    }

}

        return super.clone(); //To change body of generated methods, choose Tools | Templates.
    
<methods>public void <init>() ,public void <init>(java.lang.Object) ,public void <init>(java.lang.Object, boolean) ,public void add(javax.swing.tree.MutableTreeNode) ,public Enumeration<javax.swing.tree.TreeNode> breadthFirstEnumeration() ,public Enumeration<javax.swing.tree.TreeNode> children() ,public java.lang.Object clone() ,public Enumeration<javax.swing.tree.TreeNode> depthFirstEnumeration() ,public boolean getAllowsChildren() ,public javax.swing.tree.TreeNode getChildAfter(javax.swing.tree.TreeNode) ,public javax.swing.tree.TreeNode getChildAt(int) ,public javax.swing.tree.TreeNode getChildBefore(javax.swing.tree.TreeNode) ,public int getChildCount() ,public int getDepth() ,public javax.swing.tree.TreeNode getFirstChild() ,public javax.swing.tree.DefaultMutableTreeNode getFirstLeaf() ,public int getIndex(javax.swing.tree.TreeNode) ,public javax.swing.tree.TreeNode getLastChild() ,public javax.swing.tree.DefaultMutableTreeNode getLastLeaf() ,public int getLeafCount() ,public int getLevel() ,public javax.swing.tree.DefaultMutableTreeNode getNextLeaf() ,public javax.swing.tree.DefaultMutableTreeNode getNextNode() ,public javax.swing.tree.DefaultMutableTreeNode getNextSibling() ,public javax.swing.tree.TreeNode getParent() ,public javax.swing.tree.TreeNode[] getPath() ,public javax.swing.tree.DefaultMutableTreeNode getPreviousLeaf() ,public javax.swing.tree.DefaultMutableTreeNode getPreviousNode() ,public javax.swing.tree.DefaultMutableTreeNode getPreviousSibling() ,public javax.swing.tree.TreeNode getRoot() ,public javax.swing.tree.TreeNode getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode) ,public int getSiblingCount() ,public java.lang.Object getUserObject() ,public java.lang.Object[] getUserObjectPath() ,public void insert(javax.swing.tree.MutableTreeNode, int) ,public boolean isLeaf() ,public boolean isNodeAncestor(javax.swing.tree.TreeNode) ,public boolean isNodeChild(javax.swing.tree.TreeNode) ,public boolean isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode) ,public boolean isNodeRelated(javax.swing.tree.DefaultMutableTreeNode) ,public boolean isNodeSibling(javax.swing.tree.TreeNode) ,public boolean isRoot() ,public Enumeration<javax.swing.tree.TreeNode> pathFromAncestorEnumeration(javax.swing.tree.TreeNode) ,public Enumeration<javax.swing.tree.TreeNode> postorderEnumeration() ,public Enumeration<javax.swing.tree.TreeNode> preorderEnumeration() ,public void remove(int) ,public void remove(javax.swing.tree.MutableTreeNode) ,public void removeAllChildren() ,public void removeFromParent() ,public void setAllowsChildren(boolean) ,public void setParent(javax.swing.tree.MutableTreeNode) ,public void setUserObject(java.lang.Object) ,public java.lang.String toString() <variables>public static final Enumeration<javax.swing.tree.TreeNode> EMPTY_ENUMERATION,protected boolean allowsChildren,protected Vector<javax.swing.tree.TreeNode> children,protected javax.swing.tree.MutableTreeNode parent,private static final long serialVersionUID,protected transient java.lang.Object userObject