summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/gui/Gui.java
diff options
context:
space:
mode:
authorGravatar jeff2014-08-10 22:13:01 -0400
committerGravatar jeff2014-08-10 22:13:01 -0400
commit22b6c861df68557352fb5a87948f3e065f395ef3 (patch)
tree98fc3de07b8a64a9466c42fc75adad25945bd482 /src/cuchaz/enigma/gui/Gui.java
parentadded go to entry feature (diff)
downloadenigma-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/Gui.java')
-rw-r--r--src/cuchaz/enigma/gui/Gui.java63
1 files changed, 30 insertions, 33 deletions
diff --git a/src/cuchaz/enigma/gui/Gui.java b/src/cuchaz/enigma/gui/Gui.java
index bf72c85..6666b4c 100644
--- a/src/cuchaz/enigma/gui/Gui.java
+++ b/src/cuchaz/enigma/gui/Gui.java
@@ -31,7 +31,6 @@ import java.io.IOException;
31import java.util.Collections; 31import java.util.Collections;
32import java.util.Comparator; 32import java.util.Comparator;
33import java.util.List; 33import java.util.List;
34import java.util.Map;
35import java.util.Vector; 34import java.util.Vector;
36 35
37import javax.swing.BorderFactory; 36import javax.swing.BorderFactory;
@@ -66,7 +65,6 @@ import jsyntaxpane.DefaultSyntaxKit;
66 65
67import com.google.common.collect.Lists; 66import com.google.common.collect.Lists;
68 67
69import cuchaz.enigma.ClassFile;
70import cuchaz.enigma.Constants; 68import cuchaz.enigma.Constants;
71import cuchaz.enigma.analysis.Token; 69import cuchaz.enigma.analysis.Token;
72import cuchaz.enigma.mapping.ArgumentEntry; 70import cuchaz.enigma.mapping.ArgumentEntry;
@@ -79,35 +77,34 @@ import cuchaz.enigma.mapping.MethodEntry;
79 77
80public class Gui 78public class Gui
81{ 79{
82 private static Comparator<ClassFile> m_obfuscatedClassSorter; 80 private static Comparator<String> m_obfClassSorter;
83 private static Comparator<Map.Entry<ClassFile,String>> m_deobfuscatedClassSorter; 81 private static Comparator<String> m_deobfClassSorter;
84 82
85 static 83 static
86 { 84 {
87 m_obfuscatedClassSorter = new Comparator<ClassFile>( ) 85 m_obfClassSorter = new Comparator<String>( )
88 { 86 {
89 @Override 87 @Override
90 public int compare( ClassFile a, ClassFile b ) 88 public int compare( String a, String b )
91 { 89 {
92 if( a.getName().length() != b.getName().length() ) 90 if( a.length() != b.length() )
93 { 91 {
94 return a.getName().length() - b.getName().length(); 92 return a.length() - b.length();
95 } 93 }
96 94 return a.compareTo( b );
97 return a.getName().compareTo( b.getName() );
98 } 95 }
99 }; 96 };
100 97
101 m_deobfuscatedClassSorter = new Comparator<Map.Entry<ClassFile,String>>( ) 98 m_deobfClassSorter = new Comparator<String>( )
102 { 99 {
103 @Override 100 @Override
104 public int compare( Map.Entry<ClassFile,String> a, Map.Entry<ClassFile,String> b ) 101 public int compare( String a, String b )
105 { 102 {
106 // I can never keep this rule straight when writing these damn things... 103 // I can never keep this rule straight when writing these damn things...
107 // a < b => -1, a == b => 0, a > b => +1 104 // a < b => -1, a == b => 0, a > b => +1
108 105
109 String[] aparts = a.getValue().split( "\\." ); 106 String[] aparts = a.split( "\\." );
110 String[] bparts = b.getValue().split( "\\." ); 107 String[] bparts = b.split( "\\." );
111 for( int i=0; true; i++ ) 108 for( int i=0; true; i++ )
112 { 109 {
113 if( i >= aparts.length ) 110 if( i >= aparts.length )
@@ -133,8 +130,8 @@ public class Gui
133 130
134 // controls 131 // controls
135 private JFrame m_frame; 132 private JFrame m_frame;
136 private JList<ClassFile> m_obfClasses; 133 private JList<String> m_obfClasses;
137 private JList<Map.Entry<ClassFile,String>> m_deobfClasses; 134 private JList<String> m_deobfClasses;
138 private JEditorPane m_editor; 135 private JEditorPane m_editor;
139 private JPanel m_infoPanel; 136 private JPanel m_infoPanel;
140 private BoxHighlightPainter m_obfuscatedHighlightPainter; 137 private BoxHighlightPainter m_obfuscatedHighlightPainter;
@@ -170,10 +167,10 @@ public class Gui
170 pane.setLayout( new BorderLayout() ); 167 pane.setLayout( new BorderLayout() );
171 168
172 // init obfuscated classes list 169 // init obfuscated classes list
173 m_obfClasses = new JList<ClassFile>(); 170 m_obfClasses = new JList<String>();
174 m_obfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); 171 m_obfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
175 m_obfClasses.setLayoutOrientation( JList.VERTICAL ); 172 m_obfClasses.setLayoutOrientation( JList.VERTICAL );
176 m_obfClasses.setCellRenderer( new ObfuscatedClassListCellRenderer() ); 173 m_obfClasses.setCellRenderer( new ClassListCellRenderer() );
177 m_obfClasses.addMouseListener( new MouseAdapter() 174 m_obfClasses.addMouseListener( new MouseAdapter()
178 { 175 {
179 @Override 176 @Override
@@ -181,10 +178,10 @@ public class Gui
181 { 178 {
182 if( event.getClickCount() == 2 ) 179 if( event.getClickCount() == 2 )
183 { 180 {
184 ClassFile selected = m_obfClasses.getSelectedValue(); 181 String selected = m_obfClasses.getSelectedValue();
185 if( selected != null ) 182 if( selected != null )
186 { 183 {
187 m_controller.deobfuscateClass( selected ); 184 m_controller.openEntry( new ClassEntry( selected ) );
188 } 185 }
189 } 186 }
190 } 187 }
@@ -196,10 +193,10 @@ public class Gui
196 obfPanel.add( obfScroller, BorderLayout.CENTER ); 193 obfPanel.add( obfScroller, BorderLayout.CENTER );
197 194
198 // init deobfuscated classes list 195 // init deobfuscated classes list
199 m_deobfClasses = new JList<Map.Entry<ClassFile,String>>(); 196 m_deobfClasses = new JList<String>();
200 m_deobfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); 197 m_deobfClasses.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
201 m_deobfClasses.setLayoutOrientation( JList.VERTICAL ); 198 m_deobfClasses.setLayoutOrientation( JList.VERTICAL );
202 m_deobfClasses.setCellRenderer( new DeobfuscatedClassListCellRenderer() ); 199 m_deobfClasses.setCellRenderer( new ClassListCellRenderer() );
203 m_deobfClasses.addMouseListener( new MouseAdapter() 200 m_deobfClasses.addMouseListener( new MouseAdapter()
204 { 201 {
205 @Override 202 @Override
@@ -207,10 +204,10 @@ public class Gui
207 { 204 {
208 if( event.getClickCount() == 2 ) 205 if( event.getClickCount() == 2 )
209 { 206 {
210 Map.Entry<ClassFile,String> selected = m_deobfClasses.getSelectedValue(); 207 String selected = m_deobfClasses.getSelectedValue();
211 if( selected != null ) 208 if( selected != null )
212 { 209 {
213 m_controller.deobfuscateClass( selected.getKey() ); 210 m_controller.openEntry( new ClassEntry( selected ) );
214 } 211 }
215 } 212 }
216 } 213 }
@@ -330,7 +327,7 @@ public class Gui
330 ClassInheritanceTreeNode node = (ClassInheritanceTreeNode)m_inheritanceTree.getSelectionPath().getLastPathComponent(); 327 ClassInheritanceTreeNode node = (ClassInheritanceTreeNode)m_inheritanceTree.getSelectionPath().getLastPathComponent();
331 if( node != null ) 328 if( node != null )
332 { 329 {
333 m_controller.deobfuscateClass( new ClassFile( node.getObfClassName() ) ); 330 m_controller.openEntry( new ClassEntry( node.getDeobfClassName() ) );
334 } 331 }
335 } 332 }
336 } 333 }
@@ -566,31 +563,31 @@ public class Gui
566 m_closeMappingsMenu.setEnabled( false ); 563 m_closeMappingsMenu.setEnabled( false );
567 } 564 }
568 565
569 public void setObfClasses( List<ClassFile> obfClasses ) 566 public void setObfClasses( List<String> obfClasses )
570 { 567 {
571 if( obfClasses != null ) 568 if( obfClasses != null )
572 { 569 {
573 Vector<ClassFile> sortedClasses = new Vector<ClassFile>( obfClasses ); 570 Vector<String> sortedClasses = new Vector<String>( obfClasses );
574 Collections.sort( sortedClasses, m_obfuscatedClassSorter ); 571 Collections.sort( sortedClasses, m_obfClassSorter );
575 m_obfClasses.setListData( sortedClasses ); 572 m_obfClasses.setListData( sortedClasses );
576 } 573 }
577 else 574 else
578 { 575 {
579 m_obfClasses.setListData( new Vector<ClassFile>() ); 576 m_obfClasses.setListData( new Vector<String>() );
580 } 577 }
581 } 578 }
582 579
583 public void setDeobfClasses( Map<ClassFile,String> deobfClasses ) 580 public void setDeobfClasses( List<String> deobfClasses )
584 { 581 {
585 if( deobfClasses != null ) 582 if( deobfClasses != null )
586 { 583 {
587 Vector<Map.Entry<ClassFile,String>> sortedClasses = new Vector<Map.Entry<ClassFile,String>>( deobfClasses.entrySet() ); 584 Vector<String> sortedClasses = new Vector<String>( deobfClasses );
588 Collections.sort( sortedClasses, m_deobfuscatedClassSorter ); 585 Collections.sort( sortedClasses, m_deobfClassSorter );
589 m_deobfClasses.setListData( sortedClasses ); 586 m_deobfClasses.setListData( sortedClasses );
590 } 587 }
591 else 588 else
592 { 589 {
593 m_deobfClasses.setListData( new Vector<Map.Entry<ClassFile,String>>() ); 590 m_deobfClasses.setListData( new Vector<String>() );
594 } 591 }
595 } 592 }
596 593