summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/gui/GuiController.java
diff options
context:
space:
mode:
authorGravatar jeff2014-08-10 19:29:43 -0400
committerGravatar jeff2014-08-10 19:29:43 -0400
commite7febe4549c9fcdf1e82239959b3c6a83fad8934 (patch)
tree05cfbef04ee0839fe6fc5937d764044dcfa65e13 /src/cuchaz/enigma/gui/GuiController.java
parentfilter out tokens that are not obfuscated (diff)
downloadenigma-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.java47
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();