Browse Source

Only sort by one field

master
Chris Smith 15 years ago
parent
commit
0050ca8b37

+ 6
- 12
src/uk/co/md87/evetool/ui/dialogs/listableconfig/ListableConfigDialog.java View File

@@ -160,11 +160,8 @@ public class ListableConfigDialog extends JDialog implements ActionListener,
160 160
         components.put("bl", getComponents(config.bottomLeft));
161 161
         components.put("br", getComponents(config.bottomRight));
162 162
         components.put("+group", getComponents(config.group));
163
+        components.put("+sort", getComponents(config.sortOrder));
163 164
         
164
-        for (int i = 0; i < config.sortOrder.length; i++) {
165
-            components.put("+sort_" + i, getComponents(config.sortOrder[i]));
166
-        }
167
-
168 165
         complete = true;
169 166
     }
170 167
 
@@ -207,8 +204,8 @@ public class ListableConfigDialog extends JDialog implements ActionListener,
207 204
             return "Group by:";
208 205
         }
209 206
 
210
-        if (key.startsWith("+sort")) {
211
-            return key.equals("+sort_0") ? "Sort by:" : "... then:";
207
+        if (key.equals("+sort")) {
208
+            return "Sort by:";
212 209
         }
213 210
 
214 211
         final StringBuilder builder = new StringBuilder();
@@ -248,9 +245,7 @@ public class ListableConfigDialog extends JDialog implements ActionListener,
248 245
         return res;
249 246
     }
250 247
 
251
-    protected void rebuildConfig() {
252
-        config.sortOrder = new ConfigElement[components.size() - 5];
253
-        
248
+    protected void rebuildConfig() {        
254 249
         for (String loc : components.keySet()) {
255 250
             final List<ConfigElement> elements = new ArrayList<ConfigElement>();
256 251
 
@@ -276,9 +271,8 @@ public class ListableConfigDialog extends JDialog implements ActionListener,
276 271
                 config.bottomLeft = res;
277 272
             } else if (loc.equals("+group")) {
278 273
                 config.group = res;
279
-            } else if (loc.startsWith("+sort_")) {
280
-                final int line = Integer.parseInt(loc.substring(6));
281
-                config.sortOrder[line] = res;
274
+            } else if (loc.equals("+sort")) {
275
+                config.sortOrder = res;
282 276
             }
283 277
         }
284 278
     }

+ 7
- 9
src/uk/co/md87/evetool/ui/listable/ListableComparator.java View File

@@ -33,24 +33,22 @@ import uk.co.md87.evetool.ui.listable.ListableConfig.ConfigElement;
33 33
  */
34 34
 public class ListableComparator implements Comparator<Object> {
35 35
 
36
-    private final ListableConfig.ConfigElement[] order;
36
+    private final ListableConfig.ConfigElement order;
37 37
     private final ListableParser parser;
38 38
 
39
-    public ListableComparator(ConfigElement[] order, ListableParser parser) {
39
+    public ListableComparator(ConfigElement order, ListableParser parser) {
40 40
         this.order = order;
41 41
         this.parser = parser;
42 42
     }
43 43
 
44 44
     public int compare(final Object o1, final Object o2) {
45
-        for (ConfigElement element : order) {
46
-            final Object op1 = element.getUnformattedValue(o1, parser);
47
-            final Object op2 = element.getUnformattedValue(o2, parser);
45
+        final Object op1 = order.getUnformattedValue(o1, parser);
46
+        final Object op2 = order.getUnformattedValue(o2, parser);
48 47
 
49
-            int res = doCompare(op1, op2);
48
+        int res = doCompare(op1, op2);
50 49
 
51
-            if (res != 0) {
52
-                return res;
53
-            }
50
+        if (res != 0) {
51
+            return res;
54 52
         }
55 53
 
56 54
         return 0;

+ 2
- 2
src/uk/co/md87/evetool/ui/listable/ListableConfig.java View File

@@ -34,7 +34,7 @@ import java.util.List;
34 34
 public class ListableConfig implements Cloneable {
35 35
 
36 36
     public ConfigElement topLeft, topRight, bottomLeft, bottomRight;
37
-    public ConfigElement[] sortOrder;
37
+    public ConfigElement sortOrder;
38 38
     public ConfigElement group;
39 39
 
40 40
     public static interface ConfigElement {
@@ -130,7 +130,7 @@ public class ListableConfig implements Cloneable {
130 130
         clone.topLeft = topLeft;
131 131
         clone.topRight = topRight;
132 132
         clone.group = group;
133
-        clone.sortOrder = Arrays.copyOf(sortOrder, sortOrder.length);
133
+        clone.sortOrder = sortOrder;
134 134
 
135 135
         return clone;
136 136
     }

+ 11
- 9
src/uk/co/md87/evetool/ui/pages/ShipsPage.java View File

@@ -32,6 +32,8 @@ import uk.co.md87.evetool.api.wrappers.data.BasicShipInfo;
32 32
 import uk.co.md87.evetool.ui.MainWindow;
33 33
 import uk.co.md87.evetool.ui.data.BasicShipInfoSurrogate;
34 34
 import uk.co.md87.evetool.ui.listable.ListableConfig;
35
+import uk.co.md87.evetool.ui.listable.ListableConfig.BasicConfigElement;
36
+import uk.co.md87.evetool.ui.listable.ListableConfig.CompoundConfigElement;
35 37
 
36 38
 /**
37 39
  *
@@ -52,16 +54,16 @@ public class ShipsPage extends ListablePage<BasicShipInfoSurrogate> implements A
52 54
         super(window, manager, factory);
53 55
 
54 56
         config = new ListableConfig();
55
-        config.topLeft = new ListableConfig.BasicConfigElement("name");
56
-        config.topRight = new ListableConfig.CompoundConfigElement();
57
-        config.bottomLeft = new ListableConfig.BasicConfigElement("can fly");
58
-        config.bottomRight = new ListableConfig.CompoundConfigElement();
59
-        config.group = new ListableConfig.BasicConfigElement("group name");
57
+        config.topLeft = new BasicConfigElement("name");
58
+        config.topRight = new CompoundConfigElement();
59
+        config.bottomLeft = new BasicConfigElement("can fly");
60
+        config.bottomRight = new CompoundConfigElement();
61
+        config.group = new BasicConfigElement("group name");
60 62
 
61
-        config.sortOrder = new ListableConfig.ConfigElement[]{
62
-            new ListableConfig.BasicConfigElement("group name"),
63
-            new ListableConfig.BasicConfigElement("name"),
64
-        };
63
+        config.sortOrder = new CompoundConfigElement(
64
+            new BasicConfigElement("group name"),
65
+            new BasicConfigElement("name")
66
+        );
65 67
     }
66 68
 
67 69
     /** {@inheritDoc} */

+ 16
- 13
src/uk/co/md87/evetool/ui/pages/SkillPage.java View File

@@ -32,6 +32,9 @@ import uk.co.md87.evetool.api.wrappers.data.TrainedSkillInfo;
32 32
 import uk.co.md87.evetool.ui.MainWindow;
33 33
 import uk.co.md87.evetool.ui.data.TrainedSkillInfoSurrogate;
34 34
 import uk.co.md87.evetool.ui.listable.ListableConfig;
35
+import uk.co.md87.evetool.ui.listable.ListableConfig.BasicConfigElement;
36
+import uk.co.md87.evetool.ui.listable.ListableConfig.CompoundConfigElement;
37
+import uk.co.md87.evetool.ui.listable.ListableConfig.LiteralConfigElement;
35 38
 
36 39
 /**
37 40
  *
@@ -53,20 +56,20 @@ public class SkillPage extends ListablePage<TrainedSkillInfoSurrogate>
53 56
         super(window, manager, factory);
54 57
 
55 58
         config = new ListableConfig();
56
-        config.topLeft = new ListableConfig.BasicConfigElement("name");
57
-        config.topRight = new ListableConfig.CompoundConfigElement(
58
-                new ListableConfig.BasicConfigElement("trained skillpoints"),
59
-                new ListableConfig.LiteralConfigElement("/"),
60
-                new ListableConfig.BasicConfigElement("max skillpoints"));
61
-        config.bottomLeft = new ListableConfig.BasicConfigElement("group name");
62
-        config.bottomRight = new ListableConfig.BasicConfigElement("time to next level");
63
-        config.group = new ListableConfig.BasicConfigElement("group name");
59
+        config.topLeft = new BasicConfigElement("name");
60
+        config.topRight = new CompoundConfigElement(
61
+                new BasicConfigElement("trained skillpoints"),
62
+                new LiteralConfigElement("/"),
63
+                new BasicConfigElement("max skillpoints"));
64
+        config.bottomLeft = new BasicConfigElement("group name");
65
+        config.bottomRight = new BasicConfigElement("time to next level");
66
+        config.group = new BasicConfigElement("group name");
64 67
 
65
-        config.sortOrder = new ListableConfig.ConfigElement[]{
66
-            new ListableConfig.BasicConfigElement("group name"),
67
-            new ListableConfig.BasicConfigElement("current level"),
68
-            new ListableConfig.BasicConfigElement("trained skillpoints"),
69
-        };
68
+        config.sortOrder = new CompoundConfigElement(
69
+            new BasicConfigElement("group name"),
70
+            new BasicConfigElement("current level"),
71
+            new BasicConfigElement("trained skillpoints")
72
+        );
70 73
     }
71 74
 
72 75
     /** {@inheritDoc} */

Loading…
Cancel
Save