diff options
Diffstat (limited to 'src/cuchaz/enigma/gui/GuiController.java')
| -rw-r--r-- | src/cuchaz/enigma/gui/GuiController.java | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/src/cuchaz/enigma/gui/GuiController.java b/src/cuchaz/enigma/gui/GuiController.java index a4228c7..1946b4a 100644 --- a/src/cuchaz/enigma/gui/GuiController.java +++ b/src/cuchaz/enigma/gui/GuiController.java | |||
| @@ -20,6 +20,8 @@ import java.util.Stack; | |||
| 20 | import com.google.common.collect.Lists; | 20 | import com.google.common.collect.Lists; |
| 21 | 21 | ||
| 22 | import cuchaz.enigma.Deobfuscator; | 22 | import cuchaz.enigma.Deobfuscator; |
| 23 | import cuchaz.enigma.analysis.ClassInheritanceTreeNode; | ||
| 24 | import cuchaz.enigma.analysis.MethodInheritanceTreeNode; | ||
| 23 | import cuchaz.enigma.analysis.SourceIndex; | 25 | import cuchaz.enigma.analysis.SourceIndex; |
| 24 | import cuchaz.enigma.analysis.Token; | 26 | import cuchaz.enigma.analysis.Token; |
| 25 | import cuchaz.enigma.mapping.ClassEntry; | 27 | import cuchaz.enigma.mapping.ClassEntry; |
| @@ -27,8 +29,8 @@ import cuchaz.enigma.mapping.Entry; | |||
| 27 | import cuchaz.enigma.mapping.EntryPair; | 29 | import cuchaz.enigma.mapping.EntryPair; |
| 28 | import cuchaz.enigma.mapping.MappingsReader; | 30 | import cuchaz.enigma.mapping.MappingsReader; |
| 29 | import cuchaz.enigma.mapping.MappingsWriter; | 31 | import cuchaz.enigma.mapping.MappingsWriter; |
| 32 | import cuchaz.enigma.mapping.MethodEntry; | ||
| 30 | import cuchaz.enigma.mapping.TranslationDirection; | 33 | import cuchaz.enigma.mapping.TranslationDirection; |
| 31 | import cuchaz.enigma.mapping.Translator; | ||
| 32 | 34 | ||
| 33 | public class GuiController | 35 | public class GuiController |
| 34 | { | 36 | { |
| @@ -128,27 +130,22 @@ public class GuiController | |||
| 128 | return m_deobfuscator.entryIsObfuscatedIdenfitier( m_deobfuscator.obfuscateEntry( deobfEntry ) ); | 130 | return m_deobfuscator.entryIsObfuscatedIdenfitier( m_deobfuscator.obfuscateEntry( deobfEntry ) ); |
| 129 | } | 131 | } |
| 130 | 132 | ||
| 131 | public ClassInheritanceTreeNode getClassInheritance( ClassEntry classEntry ) | 133 | public ClassInheritanceTreeNode getClassInheritance( ClassEntry obfClassEntry ) |
| 132 | { | 134 | { |
| 133 | Translator deobfuscatingTranslator = m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ); | 135 | ClassInheritanceTreeNode rootNode = m_deobfuscator.getAncestries().getClassInheritance( |
| 134 | 136 | m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ), | |
| 135 | // create a node for this class | 137 | obfClassEntry |
| 136 | ClassInheritanceTreeNode thisNode = new ClassInheritanceTreeNode( deobfuscatingTranslator, classEntry.getName() ); | 138 | ); |
| 137 | 139 | return ClassInheritanceTreeNode.findNode( rootNode, obfClassEntry ); | |
| 138 | // expand all children recursively | 140 | } |
| 139 | thisNode.load( m_deobfuscator.getAncestries(), true ); | 141 | |
| 140 | 142 | public MethodInheritanceTreeNode getMethodInheritance( MethodEntry obfMethodEntry ) | |
| 141 | // get the ancestors too | 143 | { |
| 142 | ClassInheritanceTreeNode node = thisNode; | 144 | MethodInheritanceTreeNode rootNode = m_deobfuscator.getAncestries().getMethodInheritance( |
| 143 | for( String superclassName : m_deobfuscator.getAncestries().getAncestry( classEntry.getName() ) ) | 145 | m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ), |
| 144 | { | 146 | obfMethodEntry |
| 145 | // add the parent node | 147 | ); |
| 146 | ClassInheritanceTreeNode parentNode = new ClassInheritanceTreeNode( deobfuscatingTranslator, superclassName ); | 148 | return MethodInheritanceTreeNode.findNode( rootNode, obfMethodEntry ); |
| 147 | parentNode.add( node ); | ||
| 148 | node = parentNode; | ||
| 149 | } | ||
| 150 | |||
| 151 | return thisNode; | ||
| 152 | } | 149 | } |
| 153 | 150 | ||
| 154 | public void rename( Entry obfEntry, String newName ) | 151 | public void rename( Entry obfEntry, String newName ) |