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 --- src/cuchaz/enigma/gui/GuiController.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/cuchaz/enigma/gui/GuiController.java') diff --git a/src/cuchaz/enigma/gui/GuiController.java b/src/cuchaz/enigma/gui/GuiController.java index e1ba49a..452632f 100644 --- a/src/cuchaz/enigma/gui/GuiController.java +++ b/src/cuchaz/enigma/gui/GuiController.java @@ -26,6 +26,7 @@ import cuchaz.enigma.ClassFile; import cuchaz.enigma.Deobfuscator; import cuchaz.enigma.analysis.Analyzer; import cuchaz.enigma.analysis.SourceIndex; +import cuchaz.enigma.mapping.ClassEntry; import cuchaz.enigma.mapping.Entry; import cuchaz.enigma.mapping.EntryPair; import cuchaz.enigma.mapping.MappingsReader; @@ -129,6 +130,27 @@ public class GuiController return m_deobfuscator.hasMapping( pair.obf ); } + public ClassInheritanceTreeNode getClassInheritance( ClassEntry classEntry ) + { + // create a node for this class + ClassInheritanceTreeNode thisNode = new ClassInheritanceTreeNode( classEntry.getName() ); + + // expand all children recursively + thisNode.load( m_deobfuscator.getAncestries(), true ); + + // get the ancestors too + ClassInheritanceTreeNode node = thisNode; + for( String superclassName : m_deobfuscator.getAncestries().getAncestry( classEntry.getName() ) ) + { + // add the parent node + ClassInheritanceTreeNode parentNode = new ClassInheritanceTreeNode( superclassName ); + parentNode.add( node ); + node = parentNode; + } + + return thisNode; + } + public void rename( Entry obfsEntry, String newName, int lineNum ) { m_deobfuscator.rename( obfsEntry, newName ); -- cgit v1.2.3