From d71c0af8ed298bfb4b35b4e3e61b5678bc1c7d9f Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 6 Aug 2014 00:22:25 -0400 Subject: added simple class inheritance browsing --- .../enigma/gui/ClassInheritanceTreeNode.java | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java (limited to 'src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java') diff --git a/src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java b/src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java new file mode 100644 index 0000000..921a1e9 --- /dev/null +++ b/src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java @@ -0,0 +1,56 @@ +package cuchaz.enigma.gui; + +import java.util.List; + +import javax.swing.tree.DefaultMutableTreeNode; + +import com.beust.jcommander.internal.Lists; + +import cuchaz.enigma.mapping.Ancestries; + +public class ClassInheritanceTreeNode extends DefaultMutableTreeNode +{ + private static final long serialVersionUID = 4432367405826178490L; + + String m_className; + + public ClassInheritanceTreeNode( String className ) + { + m_className = className; + } + + public String getClassName( ) + { + return m_className; + } + + @Override + public String toString( ) + { + return m_className; + } + + public void load( Ancestries ancestries, boolean recurse ) + { + // get all the child nodes + List nodes = Lists.newArrayList(); + for( String subclassName : ancestries.getSubclasses( m_className ) ) + { + nodes.add( new ClassInheritanceTreeNode( subclassName ) ); + } + + // add then to this node + for( ClassInheritanceTreeNode node : nodes ) + { + this.add( node ); + } + + if( recurse ) + { + for( ClassInheritanceTreeNode node : nodes ) + { + node.load( ancestries, true ); + } + } + } +} -- cgit v1.2.3