summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/gui/Gui.java
diff options
context:
space:
mode:
authorGravatar jeff2014-07-31 22:27:26 -0400
committerGravatar jeff2014-07-31 22:27:26 -0400
commitfaae0a6514c2565a10f9a62dd18c5d79fbbe4156 (patch)
tree9369f3b920919dd4a4bb2aa449c3dc467d4a43ea /src/cuchaz/enigma/gui/Gui.java
parentswitched to line-by-line mergable, human-readable file format for mappings (diff)
downloadenigma-fork-faae0a6514c2565a10f9a62dd18c5d79fbbe4156.tar.gz
enigma-fork-faae0a6514c2565a10f9a62dd18c5d79fbbe4156.tar.xz
enigma-fork-faae0a6514c2565a10f9a62dd18c5d79fbbe4156.zip
fixed bug with save mappings menu
gui shows deobfuscated classes list now working on name validation/sanitization
Diffstat (limited to 'src/cuchaz/enigma/gui/Gui.java')
-rw-r--r--src/cuchaz/enigma/gui/Gui.java64
1 files changed, 59 insertions, 5 deletions
diff --git a/src/cuchaz/enigma/gui/Gui.java b/src/cuchaz/enigma/gui/Gui.java
index a86ff9b..d448dc2 100644
--- a/src/cuchaz/enigma/gui/Gui.java
+++ b/src/cuchaz/enigma/gui/Gui.java
@@ -21,6 +21,8 @@ import java.awt.event.ActionListener;
21import java.awt.event.MouseAdapter; 21import java.awt.event.MouseAdapter;
22import java.awt.event.MouseEvent; 22import java.awt.event.MouseEvent;
23import java.io.IOException; 23import java.io.IOException;
24import java.util.Collections;
25import java.util.Comparator;
24import java.util.List; 26import java.util.List;
25import java.util.Vector; 27import java.util.Vector;
26 28
@@ -58,6 +60,25 @@ import cuchaz.enigma.mapping.MethodEntry;
58 60
59public class Gui 61public class Gui
60{ 62{
63 private static Comparator<ClassFile> m_obfuscatedClassSorter;
64
65 static
66 {
67 m_obfuscatedClassSorter = new Comparator<ClassFile>( )
68 {
69 @Override
70 public int compare( ClassFile a, ClassFile b )
71 {
72 if( a.getName().length() != b.getName().length() )
73 {
74 return a.getName().length() - b.getName().length();
75 }
76
77 return a.getName().compareTo( b.getName() );
78 }
79 };
80 }
81
61 private GuiController m_controller; 82 private GuiController m_controller;
62 83
63 // controls 84 // controls
@@ -101,7 +122,7 @@ public class Gui
101 m_obfClasses = new JList<ClassFile>(); 122 m_obfClasses = new JList<ClassFile>();
102 m_obfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); 123 m_obfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
103 m_obfClasses.setLayoutOrientation( JList.VERTICAL ); 124 m_obfClasses.setLayoutOrientation( JList.VERTICAL );
104 m_obfClasses.setCellRenderer( new ObfuscatedClassListCellRenderer() ); 125 m_obfClasses.setCellRenderer( new ClassListCellRenderer() );
105 m_obfClasses.addMouseListener( new MouseAdapter() 126 m_obfClasses.addMouseListener( new MouseAdapter()
106 { 127 {
107 public void mouseClicked( MouseEvent event ) 128 public void mouseClicked( MouseEvent event )
@@ -124,8 +145,23 @@ public class Gui
124 145
125 // init deobfuscated classes list 146 // init deobfuscated classes list
126 m_deobfClasses = new JList<ClassFile>(); 147 m_deobfClasses = new JList<ClassFile>();
127 m_obfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); 148 m_deobfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
128 m_obfClasses.setLayoutOrientation( JList.VERTICAL ); 149 m_deobfClasses.setLayoutOrientation( JList.VERTICAL );
150 m_deobfClasses.setCellRenderer( new ClassListCellRenderer() );
151 m_deobfClasses.addMouseListener( new MouseAdapter()
152 {
153 public void mouseClicked( MouseEvent event )
154 {
155 if( event.getClickCount() == 2 )
156 {
157 ClassFile selected = m_deobfClasses.getSelectedValue();
158 if( selected != null )
159 {
160 m_controller.deobfuscateClass( selected );
161 }
162 }
163 }
164 } );
129 JScrollPane deobfScroller = new JScrollPane( m_deobfClasses ); 165 JScrollPane deobfScroller = new JScrollPane( m_deobfClasses );
130 JPanel deobfPanel = new JPanel(); 166 JPanel deobfPanel = new JPanel();
131 deobfPanel.setLayout( new BorderLayout() ); 167 deobfPanel.setLayout( new BorderLayout() );
@@ -248,7 +284,6 @@ public class Gui
248 try 284 try
249 { 285 {
250 m_controller.openMappings( m_mappingFileChooser.getSelectedFile() ); 286 m_controller.openMappings( m_mappingFileChooser.getSelectedFile() );
251 m_saveMappingsMenu.setEnabled( true );
252 } 287 }
253 catch( IOException ex ) 288 catch( IOException ex )
254 { 289 {
@@ -383,7 +418,9 @@ public class Gui
383 { 418 {
384 if( classes != null ) 419 if( classes != null )
385 { 420 {
386 m_obfClasses.setListData( new Vector<ClassFile>( classes ) ); 421 Vector<ClassFile> sortedClasses = new Vector<ClassFile>( classes );
422 Collections.sort( sortedClasses, m_obfuscatedClassSorter );
423 m_obfClasses.setListData( sortedClasses );
387 } 424 }
388 else 425 else
389 { 426 {
@@ -391,6 +428,23 @@ public class Gui
391 } 428 }
392 } 429 }
393 430
431 public void setDeobfClasses( List<ClassFile> classes )
432 {
433 if( classes != null )
434 {
435 m_deobfClasses.setListData( new Vector<ClassFile>( classes ) );
436 }
437 else
438 {
439 m_deobfClasses.setListData( new Vector<ClassFile>() );
440 }
441 }
442
443 public void setMappingsLoaded( boolean isLoaded )
444 {
445 m_saveMappingsMenu.setEnabled( isLoaded );
446 }
447
394 public void setSource( String source ) 448 public void setSource( String source )
395 { 449 {
396 setSource( source, null ); 450 setSource( source, null );