diff options
| author | 2014-08-10 19:29:43 -0400 | |
|---|---|---|
| committer | 2014-08-10 19:29:43 -0400 | |
| commit | e7febe4549c9fcdf1e82239959b3c6a83fad8934 (patch) | |
| tree | 05cfbef04ee0839fe6fc5937d764044dcfa65e13 /src/cuchaz/enigma/gui/GuiController.java | |
| parent | filter out tokens that are not obfuscated (diff) | |
| download | enigma-fork-e7febe4549c9fcdf1e82239959b3c6a83fad8934.tar.gz enigma-fork-e7febe4549c9fcdf1e82239959b3c6a83fad8934.tar.xz enigma-fork-e7febe4549c9fcdf1e82239959b3c6a83fad8934.zip | |
added go to entry feature
Diffstat (limited to 'src/cuchaz/enigma/gui/GuiController.java')
| -rw-r--r-- | src/cuchaz/enigma/gui/GuiController.java | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/src/cuchaz/enigma/gui/GuiController.java b/src/cuchaz/enigma/gui/GuiController.java index e0aad86..834afec 100644 --- a/src/cuchaz/enigma/gui/GuiController.java +++ b/src/cuchaz/enigma/gui/GuiController.java | |||
| @@ -77,7 +77,7 @@ public class GuiController | |||
| 77 | m_isDirty = false; | 77 | m_isDirty = false; |
| 78 | m_gui.setMappingsFile( file ); | 78 | m_gui.setMappingsFile( file ); |
| 79 | refreshClasses(); | 79 | refreshClasses(); |
| 80 | refreshOpenFiles(); | 80 | refreshCurrentClass(); |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | public void saveMappings( File file ) | 83 | public void saveMappings( File file ) |
| @@ -94,7 +94,7 @@ public class GuiController | |||
| 94 | m_deobfuscator.setMappings( null ); | 94 | m_deobfuscator.setMappings( null ); |
| 95 | m_gui.setMappingsFile( null ); | 95 | m_gui.setMappingsFile( null ); |
| 96 | refreshClasses(); | 96 | refreshClasses(); |
| 97 | refreshOpenFiles(); | 97 | refreshCurrentClass(); |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | public void deobfuscateClass( ClassFile classFile ) | 100 | public void deobfuscateClass( ClassFile classFile ) |
| @@ -157,12 +157,26 @@ public class GuiController | |||
| 157 | return thisNode; | 157 | return thisNode; |
| 158 | } | 158 | } |
| 159 | 159 | ||
| 160 | public void rename( Entry obfsEntry, String newName, int lineNum ) | 160 | public void rename( Entry obfEntry, String newName ) |
| 161 | { | 161 | { |
| 162 | m_deobfuscator.rename( obfsEntry, newName ); | 162 | m_deobfuscator.rename( obfEntry, newName ); |
| 163 | m_isDirty = true; | 163 | m_isDirty = true; |
| 164 | refreshClasses(); | 164 | refreshClasses(); |
| 165 | refreshOpenFiles( lineNum ); | 165 | refreshCurrentClass( m_deobfuscator.deobfuscateEntry( obfEntry ) ); |
| 166 | } | ||
| 167 | |||
| 168 | public void openEntry( Entry obfEntry ) | ||
| 169 | { | ||
| 170 | Entry deobfEntry = m_deobfuscator.deobfuscateEntry( obfEntry ); | ||
| 171 | if( !m_currentFile.getName().equals( obfEntry.getClassName() ) ) | ||
| 172 | { | ||
| 173 | m_currentFile = new ClassFile( obfEntry.getClassName() ); | ||
| 174 | deobfuscate( m_currentFile, deobfEntry ); | ||
| 175 | } | ||
| 176 | else | ||
| 177 | { | ||
| 178 | m_gui.showToken( m_index.getDeclarationToken( deobfEntry ) ); | ||
| 179 | } | ||
| 166 | } | 180 | } |
| 167 | 181 | ||
| 168 | private void refreshClasses( ) | 182 | private void refreshClasses( ) |
| @@ -173,27 +187,28 @@ public class GuiController | |||
| 173 | m_gui.setObfClasses( obfClasses ); | 187 | m_gui.setObfClasses( obfClasses ); |
| 174 | m_gui.setDeobfClasses( deobfClasses ); | 188 | m_gui.setDeobfClasses( deobfClasses ); |
| 175 | } | 189 | } |
| 176 | 190 | ||
| 177 | private void refreshOpenFiles( ) | 191 | private void refreshCurrentClass( ) |
| 178 | { | 192 | { |
| 179 | refreshOpenFiles( 0 ); | 193 | refreshCurrentClass( null ); |
| 180 | } | 194 | } |
| 181 | 195 | ||
| 182 | private void refreshOpenFiles( int lineNum ) | 196 | private void refreshCurrentClass( Entry entryToShow ) |
| 183 | { | 197 | { |
| 184 | if( m_currentFile != null ) | 198 | if( m_currentFile != null ) |
| 185 | { | 199 | { |
| 186 | deobfuscate( m_currentFile, lineNum ); | 200 | deobfuscate( m_currentFile, entryToShow ); |
| 187 | } | 201 | } |
| 188 | } | 202 | } |
| 189 | 203 | ||
| 190 | private void deobfuscate( final ClassFile classFile ) | 204 | private void deobfuscate( final ClassFile classFile ) |
| 191 | { | 205 | { |
| 192 | deobfuscate( classFile, 0 ); | 206 | deobfuscate( classFile, null ); |
| 193 | } | 207 | } |
| 194 | 208 | ||
| 195 | private void deobfuscate( final ClassFile classFile, final int lineNum ) | 209 | private void deobfuscate( final ClassFile classFile, final Entry entryToShow ) |
| 196 | { | 210 | { |
| 211 | m_currentFile = classFile; | ||
| 197 | m_gui.setSource( "(deobfuscating...)" ); | 212 | m_gui.setSource( "(deobfuscating...)" ); |
| 198 | 213 | ||
| 199 | // run the deobfuscator in a separate thread so we don't block the GUI event queue | 214 | // run the deobfuscator in a separate thread so we don't block the GUI event queue |
| @@ -202,9 +217,13 @@ public class GuiController | |||
| 202 | @Override | 217 | @Override |
| 203 | public void run( ) | 218 | public void run( ) |
| 204 | { | 219 | { |
| 205 | // decopmile,deobfuscate the bytecode | 220 | // decompile,deobfuscate the bytecode |
| 206 | m_index = m_deobfuscator.getSource( classFile ); | 221 | m_index = m_deobfuscator.getSource( classFile ); |
| 207 | m_gui.setSource( m_index.getSource(), lineNum ); | 222 | m_gui.setSource( m_index.getSource() ); |
| 223 | if( entryToShow != null ) | ||
| 224 | { | ||
| 225 | m_gui.showToken( m_index.getDeclarationToken( entryToShow ) ); | ||
| 226 | } | ||
| 208 | 227 | ||
| 209 | // set the highlighted tokens | 228 | // set the highlighted tokens |
| 210 | List<Token> obfuscatedTokens = Lists.newArrayList(); | 229 | List<Token> obfuscatedTokens = Lists.newArrayList(); |