summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jeff2014-08-09 16:42:25 -0400
committerGravatar jeff2014-08-09 16:42:25 -0400
commitb10af1dbfceb913689226c8fb75641f275eb11b4 (patch)
tree5410b80b8adf47529dd0b9135c1840e9f1c12a39 /src
parentstarted working on recognition of non-class member identifiers in the source (diff)
downloadenigma-fork-b10af1dbfceb913689226c8fb75641f275eb11b4.tar.gz
enigma-fork-b10af1dbfceb913689226c8fb75641f275eb11b4.tar.xz
enigma-fork-b10af1dbfceb913689226c8fb75641f275eb11b4.zip
added sorting for deobfuscated classes
Diffstat (limited to 'src')
-rw-r--r--src/cuchaz/enigma/gui/Gui.java46
1 files changed, 40 insertions, 6 deletions
diff --git a/src/cuchaz/enigma/gui/Gui.java b/src/cuchaz/enigma/gui/Gui.java
index 57c6ef7..61e66e0 100644
--- a/src/cuchaz/enigma/gui/Gui.java
+++ b/src/cuchaz/enigma/gui/Gui.java
@@ -60,11 +60,12 @@ import javax.swing.tree.DefaultTreeModel;
60import javax.swing.tree.TreeNode; 60import javax.swing.tree.TreeNode;
61import javax.swing.tree.TreePath; 61import javax.swing.tree.TreePath;
62 62
63import com.beust.jcommander.internal.Lists;
64
65import jsyntaxpane.DefaultSyntaxKit; 63import jsyntaxpane.DefaultSyntaxKit;
66import jsyntaxpane.SyntaxDocument; 64import jsyntaxpane.SyntaxDocument;
67import jsyntaxpane.Token; 65import jsyntaxpane.Token;
66
67import com.beust.jcommander.internal.Lists;
68
68import cuchaz.enigma.ClassFile; 69import cuchaz.enigma.ClassFile;
69import cuchaz.enigma.Constants; 70import cuchaz.enigma.Constants;
70import cuchaz.enigma.mapping.ArgumentEntry; 71import cuchaz.enigma.mapping.ArgumentEntry;
@@ -78,6 +79,7 @@ import cuchaz.enigma.mapping.MethodEntry;
78public class Gui 79public class Gui
79{ 80{
80 private static Comparator<ClassFile> m_obfuscatedClassSorter; 81 private static Comparator<ClassFile> m_obfuscatedClassSorter;
82 private static Comparator<Map.Entry<ClassFile,String>> m_deobfuscatedClassSorter;
81 83
82 static 84 static
83 { 85 {
@@ -94,6 +96,36 @@ public class Gui
94 return a.getName().compareTo( b.getName() ); 96 return a.getName().compareTo( b.getName() );
95 } 97 }
96 }; 98 };
99
100 m_deobfuscatedClassSorter = new Comparator<Map.Entry<ClassFile,String>>( )
101 {
102 @Override
103 public int compare( Map.Entry<ClassFile,String> a, Map.Entry<ClassFile,String> b )
104 {
105 // I can never keep this rule straight when writing these damn things...
106 // a < b => -1, a == b => 0, a > b => +1
107
108 String[] aparts = a.getValue().split( "\\." );
109 String[] bparts = b.getValue().split( "\\." );
110 for( int i=0; true; i++ )
111 {
112 if( i >= aparts.length )
113 {
114 return -1;
115 }
116 else if( i >= bparts.length )
117 {
118 return 1;
119 }
120
121 int result = aparts[i].compareTo( bparts[i] );
122 if( result != 0 )
123 {
124 return result;
125 }
126 }
127 }
128 };
97 } 129 }
98 130
99 private GuiController m_controller; 131 private GuiController m_controller;
@@ -520,11 +552,11 @@ public class Gui
520 m_closeMappingsMenu.setEnabled( false ); 552 m_closeMappingsMenu.setEnabled( false );
521 } 553 }
522 554
523 public void setObfClasses( List<ClassFile> classes ) 555 public void setObfClasses( List<ClassFile> obfClasses )
524 { 556 {
525 if( classes != null ) 557 if( obfClasses != null )
526 { 558 {
527 Vector<ClassFile> sortedClasses = new Vector<ClassFile>( classes ); 559 Vector<ClassFile> sortedClasses = new Vector<ClassFile>( obfClasses );
528 Collections.sort( sortedClasses, m_obfuscatedClassSorter ); 560 Collections.sort( sortedClasses, m_obfuscatedClassSorter );
529 m_obfClasses.setListData( sortedClasses ); 561 m_obfClasses.setListData( sortedClasses );
530 } 562 }
@@ -538,7 +570,9 @@ public class Gui
538 { 570 {
539 if( deobfClasses != null ) 571 if( deobfClasses != null )
540 { 572 {
541 m_deobfClasses.setListData( new Vector<Map.Entry<ClassFile,String>>( deobfClasses.entrySet() ) ); 573 Vector<Map.Entry<ClassFile,String>> sortedClasses = new Vector<Map.Entry<ClassFile,String>>( deobfClasses.entrySet() );
574 Collections.sort( sortedClasses, m_deobfuscatedClassSorter );
575 m_deobfClasses.setListData( sortedClasses );
542 } 576 }
543 else 577 else
544 { 578 {