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/Gui.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/Gui.java')
| -rw-r--r-- | src/cuchaz/enigma/gui/Gui.java | 63 |
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; | |||
| 31 | import java.util.Collections; | 31 | import java.util.Collections; |
| 32 | import java.util.Comparator; | 32 | import java.util.Comparator; |
| 33 | import java.util.List; | 33 | import java.util.List; |
| 34 | import java.util.Map; | ||
| 35 | import java.util.Vector; | 34 | import java.util.Vector; |
| 36 | 35 | ||
| 37 | import javax.swing.BorderFactory; | 36 | import javax.swing.BorderFactory; |
| @@ -66,7 +65,6 @@ import jsyntaxpane.DefaultSyntaxKit; | |||
| 66 | 65 | ||
| 67 | import com.google.common.collect.Lists; | 66 | import com.google.common.collect.Lists; |
| 68 | 67 | ||
| 69 | import cuchaz.enigma.ClassFile; | ||
| 70 | import cuchaz.enigma.Constants; | 68 | import cuchaz.enigma.Constants; |
| 71 | import cuchaz.enigma.analysis.Token; | 69 | import cuchaz.enigma.analysis.Token; |
| 72 | import cuchaz.enigma.mapping.ArgumentEntry; | 70 | import cuchaz.enigma.mapping.ArgumentEntry; |
| @@ -79,35 +77,34 @@ import cuchaz.enigma.mapping.MethodEntry; | |||
| 79 | 77 | ||
| 80 | public class Gui | 78 | public 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 | ||