diff options
| author | 2014-08-10 22:13:01 -0400 | |
|---|---|---|
| committer | 2014-08-10 22:13:01 -0400 | |
| commit | 22b6c861df68557352fb5a87948f3e065f395ef3 (patch) | |
| tree | 98fc3de07b8a64a9466c42fc75adad25945bd482 /src/cuchaz/enigma/gui/GuiController.java | |
| parent | added go to entry feature (diff) | |
| download | enigma-fork-22b6c861df68557352fb5a87948f3e065f395ef3.tar.gz enigma-fork-22b6c861df68557352fb5a87948f3e065f395ef3.tar.xz enigma-fork-22b6c861df68557352fb5a87948f3e065f395ef3.zip | |
refactored to remove ClassFile class to prep for upcoming stack navigation. It wasn't really necessary anymore.
Diffstat (limited to 'src/cuchaz/enigma/gui/GuiController.java')
| -rw-r--r-- | src/cuchaz/enigma/gui/GuiController.java | 37 |
1 files changed, 11 insertions, 26 deletions
diff --git a/src/cuchaz/enigma/gui/GuiController.java b/src/cuchaz/enigma/gui/GuiController.java index 834afec..6a7a7da 100644 --- a/src/cuchaz/enigma/gui/GuiController.java +++ b/src/cuchaz/enigma/gui/GuiController.java | |||
| @@ -15,12 +15,9 @@ import java.io.FileReader; | |||
| 15 | import java.io.FileWriter; | 15 | import java.io.FileWriter; |
| 16 | import java.io.IOException; | 16 | import java.io.IOException; |
| 17 | import java.util.List; | 17 | import java.util.List; |
| 18 | import java.util.Map; | ||
| 19 | 18 | ||
| 20 | import com.google.common.collect.Lists; | 19 | import com.google.common.collect.Lists; |
| 21 | import com.google.common.collect.Maps; | ||
| 22 | 20 | ||
| 23 | import cuchaz.enigma.ClassFile; | ||
| 24 | import cuchaz.enigma.Deobfuscator; | 21 | import cuchaz.enigma.Deobfuscator; |
| 25 | import cuchaz.enigma.analysis.SourceIndex; | 22 | import cuchaz.enigma.analysis.SourceIndex; |
| 26 | import cuchaz.enigma.analysis.Token; | 23 | import cuchaz.enigma.analysis.Token; |
| @@ -37,7 +34,7 @@ public class GuiController | |||
| 37 | private Deobfuscator m_deobfuscator; | 34 | private Deobfuscator m_deobfuscator; |
| 38 | private Gui m_gui; | 35 | private Gui m_gui; |
| 39 | private SourceIndex m_index; | 36 | private SourceIndex m_index; |
| 40 | private ClassFile m_currentFile; | 37 | private ClassEntry m_currentClass; |
| 41 | private boolean m_isDirty; | 38 | private boolean m_isDirty; |
| 42 | 39 | ||
| 43 | public GuiController( Gui gui ) | 40 | public GuiController( Gui gui ) |
| @@ -45,7 +42,7 @@ public class GuiController | |||
| 45 | m_gui = gui; | 42 | m_gui = gui; |
| 46 | m_deobfuscator = null; | 43 | m_deobfuscator = null; |
| 47 | m_index = null; | 44 | m_index = null; |
| 48 | m_currentFile = null; | 45 | m_currentClass = null; |
| 49 | m_isDirty = false; | 46 | m_isDirty = false; |
| 50 | } | 47 | } |
| 51 | 48 | ||
| @@ -97,12 +94,6 @@ public class GuiController | |||
| 97 | refreshCurrentClass(); | 94 | refreshCurrentClass(); |
| 98 | } | 95 | } |
| 99 | 96 | ||
| 100 | public void deobfuscateClass( ClassFile classFile ) | ||
| 101 | { | ||
| 102 | m_currentFile = classFile; | ||
| 103 | deobfuscate( m_currentFile ); | ||
| 104 | } | ||
| 105 | |||
| 106 | public Token getToken( int pos ) | 97 | public Token getToken( int pos ) |
| 107 | { | 98 | { |
| 108 | if( m_index == null ) | 99 | if( m_index == null ) |
| @@ -168,10 +159,10 @@ public class GuiController | |||
| 168 | public void openEntry( Entry obfEntry ) | 159 | public void openEntry( Entry obfEntry ) |
| 169 | { | 160 | { |
| 170 | Entry deobfEntry = m_deobfuscator.deobfuscateEntry( obfEntry ); | 161 | Entry deobfEntry = m_deobfuscator.deobfuscateEntry( obfEntry ); |
| 171 | if( !m_currentFile.getName().equals( obfEntry.getClassName() ) ) | 162 | if( m_currentClass == null || !m_currentClass.equals( deobfEntry.getClassEntry() ) ) |
| 172 | { | 163 | { |
| 173 | m_currentFile = new ClassFile( obfEntry.getClassName() ); | 164 | m_currentClass = new ClassEntry( obfEntry.getClassEntry() ); |
| 174 | deobfuscate( m_currentFile, deobfEntry ); | 165 | deobfuscate( m_currentClass, deobfEntry ); |
| 175 | } | 166 | } |
| 176 | else | 167 | else |
| 177 | { | 168 | { |
| @@ -181,8 +172,8 @@ public class GuiController | |||
| 181 | 172 | ||
| 182 | private void refreshClasses( ) | 173 | private void refreshClasses( ) |
| 183 | { | 174 | { |
| 184 | List<ClassFile> obfClasses = Lists.newArrayList(); | 175 | List<String> obfClasses = Lists.newArrayList(); |
| 185 | Map<ClassFile,String> deobfClasses = Maps.newHashMap(); | 176 | List<String> deobfClasses = Lists.newArrayList(); |
| 186 | m_deobfuscator.getSeparatedClasses( obfClasses, deobfClasses ); | 177 | m_deobfuscator.getSeparatedClasses( obfClasses, deobfClasses ); |
| 187 | m_gui.setObfClasses( obfClasses ); | 178 | m_gui.setObfClasses( obfClasses ); |
| 188 | m_gui.setDeobfClasses( deobfClasses ); | 179 | m_gui.setDeobfClasses( deobfClasses ); |
| @@ -195,20 +186,14 @@ public class GuiController | |||
| 195 | 186 | ||
| 196 | private void refreshCurrentClass( Entry entryToShow ) | 187 | private void refreshCurrentClass( Entry entryToShow ) |
| 197 | { | 188 | { |
| 198 | if( m_currentFile != null ) | 189 | if( m_currentClass != null ) |
| 199 | { | 190 | { |
| 200 | deobfuscate( m_currentFile, entryToShow ); | 191 | deobfuscate( m_currentClass, entryToShow ); |
| 201 | } | 192 | } |
| 202 | } | 193 | } |
| 203 | |||
| 204 | private void deobfuscate( final ClassFile classFile ) | ||
| 205 | { | ||
| 206 | deobfuscate( classFile, null ); | ||
| 207 | } | ||
| 208 | 194 | ||
| 209 | private void deobfuscate( final ClassFile classFile, final Entry entryToShow ) | 195 | private void deobfuscate( final ClassEntry classEntry, final Entry entryToShow ) |
| 210 | { | 196 | { |
| 211 | m_currentFile = classFile; | ||
| 212 | m_gui.setSource( "(deobfuscating...)" ); | 197 | m_gui.setSource( "(deobfuscating...)" ); |
| 213 | 198 | ||
| 214 | // run the deobfuscator in a separate thread so we don't block the GUI event queue | 199 | // run the deobfuscator in a separate thread so we don't block the GUI event queue |
| @@ -218,7 +203,7 @@ public class GuiController | |||
| 218 | public void run( ) | 203 | public void run( ) |
| 219 | { | 204 | { |
| 220 | // decompile,deobfuscate the bytecode | 205 | // decompile,deobfuscate the bytecode |
| 221 | m_index = m_deobfuscator.getSource( classFile ); | 206 | m_index = m_deobfuscator.getSource( classEntry.getClassName() ); |
| 222 | m_gui.setSource( m_index.getSource() ); | 207 | m_gui.setSource( m_index.getSource() ); |
| 223 | if( entryToShow != null ) | 208 | if( entryToShow != null ) |
| 224 | { | 209 | { |