Browse Source

Fixes issue 3626: Sort modes in SSD/CSD

Change-Id: Ibd79387e1a34e782fdd95f4e9f5fbe3739aafb82
Reviewed-on: http://gerrit.dmdirc.com/719
Automatic-Compile: DMDirc Local Commits <dmdirc@googlemail.com>
Reviewed-by: Chris Smith <chris@dmdirc.com>
tags/0.6.3
Gregory Holmes 14 years ago
parent
commit
ce02cbd4d3

+ 24
- 20
src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelModesPane.java View File

@@ -30,6 +30,7 @@ import com.dmdirc.parser.interfaces.Parser;
30 30
 import java.awt.Insets;
31 31
 import java.util.Hashtable;
32 32
 import java.util.Map;
33
+import java.util.TreeSet;
33 34
 
34 35
 import javax.swing.BorderFactory;
35 36
 import javax.swing.JCheckBox;
@@ -93,8 +94,7 @@ public final class ChannelModesPane extends JPanel {
93 94
                 new Hashtable<String, JCheckBox>();
94 95
 
95 96
         // Lay out all the boolean mode checkboxes
96
-        for (int i = 0; i < booleanModes.length();
97
-                i++) {
97
+        for (int i = 0; i < booleanModes.length(); i++) {
98 98
             final String mode = booleanModes.substring(i, i + 1);
99 99
             final char modeChar = mode.toCharArray()[0];
100 100
             final boolean state =
@@ -106,16 +106,15 @@ public final class ChannelModesPane extends JPanel {
106 106
             if (channel.getConfigManager().hasOptionString("server",
107 107
                     "mode" + mode)) {
108 108
                 text = channel.getConfigManager().
109
-                        getOption("server", "mode" + mode) + " [+"+mode+"]";
109
+                        getOption("server", "mode" + mode) + " [+" + mode + "]";
110 110
             } else {
111 111
                 text = "Mode " + mode;
112 112
             }
113 113
 
114
-            if (channel.getConfigManager().hasOptionString("server", "mode" +
115
-                    mode)) {
114
+            if (channel.getConfigManager().hasOptionString("server", "mode"
115
+                    + mode)) {
116 116
                 tooltip =
117
-                        "Mode " + mode + ": " +
118
-                        channel.getConfigManager().
117
+                        "Mode " + mode + ": " + channel.getConfigManager().
119 118
                         getOption("server", "mode" + mode);
120 119
             } else {
121 120
                 tooltip = "Mode " + mode + ": Unknown";
@@ -139,11 +138,9 @@ public final class ChannelModesPane extends JPanel {
139 138
         }
140 139
 
141 140
         // Lay out all the parameter-requiring modes
142
-        modeInputs =
143
-                new Hashtable<String, ParamModePanel>();
141
+        modeInputs = new Hashtable<String, ParamModePanel>();
144 142
 
145
-        for (int i = 0; i < paramModes.length();
146
-                i++) {
143
+        for (int i = 0; i < paramModes.length(); i++) {
147 144
             final String mode = paramModes.substring(i, i + 1);
148 145
             final String value =
149 146
                     channel.getChannelInfo().getMode(mode.charAt(0));
@@ -163,13 +160,20 @@ public final class ChannelModesPane extends JPanel {
163 160
     private void layoutComponents() {
164 161
         final JPanel booleanModes =
165 162
                 new JPanel(new MigLayout("wrap 2, fillx"));
166
-        for (JCheckBox checkBox : modeCheckBoxes.values()) {
167
-            booleanModes.add(checkBox);
168
-        }
169
-
170 163
         final JPanel paramModes =
171 164
                 new JPanel(new MigLayout("wrap 2, fillx"));
172
-        for (ParamModePanel modePanel : modeInputs.values()) {
165
+
166
+        final TreeSet<String> modes = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
167
+
168
+        modes.addAll(modeCheckBoxes.keySet());
169
+        for(String mode : modes) {
170
+            booleanModes.add(modeCheckBoxes.get(mode));
171
+        }
172
+        modes.clear();
173
+
174
+        modes.addAll(modeInputs.keySet());
175
+        for(String mode : modes) {
176
+            final ParamModePanel modePanel = modeInputs.get(mode);
173 177
             paramModes.add(modePanel.getCheckboxComponent());
174 178
             paramModes.add(modePanel.getValueComponent(), "growx, pushx");
175 179
         }
@@ -207,8 +211,8 @@ public final class ChannelModesPane extends JPanel {
207 211
                     ourBooleanModes.split(" ")[0].contains(
208 212
                     mode.subSequence(0, 1));
209 213
 
210
-            if (modeCheckBoxes.get(mode) != null &&
211
-                    state != modeCheckBoxes.get(mode).isSelected()) {
214
+            if (modeCheckBoxes.get(mode) != null && state != modeCheckBoxes.get(
215
+                    mode).isSelected()) {
212 216
                 changed = true;
213 217
                 channel.getChannelInfo().
214 218
                         alterMode(modeCheckBoxes.get(mode).isSelected(),
@@ -226,8 +230,8 @@ public final class ChannelModesPane extends JPanel {
226 230
                     mode.subSequence(0, 1));
227 231
             final ParamModePanel paramModePanel = modeInputs.get(mode);
228 232
 
229
-            if (state != paramModePanel.getState() ||
230
-                    !value.equals(paramModePanel.getValue())) {
233
+            if (state != paramModePanel.getState() || !value.equals(paramModePanel.
234
+                    getValue())) {
231 235
                 changed = true;
232 236
                 channel.getChannelInfo().
233 237
                         alterMode(paramModePanel.getState(),

+ 10
- 8
src/com/dmdirc/addons/ui_swing/dialogs/serversetting/UserModesPane.java View File

@@ -1,3 +1,4 @@
1
+
1 2
 /*
2 3
  * Copyright (c) 2006-2010 Chris Smith, Shane Mc Cormack, Gregory Holmes
3 4
  *
@@ -29,6 +30,7 @@ import com.dmdirc.parser.interfaces.Parser;
29 30
 import java.awt.Insets;
30 31
 import java.util.Hashtable;
31 32
 import java.util.Map;
33
+import java.util.TreeSet;
32 34
 
33 35
 import javax.swing.BorderFactory;
34 36
 import javax.swing.JCheckBox;
@@ -83,12 +85,10 @@ public final class UserModesPane extends JPanel {
83 85
         final String userModes = parser.getUserModes();
84 86
         final String ourUserModes = parser.getLocalClient().getModes();
85 87
 
86
-        modeCheckBoxes =
87
-                new Hashtable<String, JCheckBox>();
88
+        modeCheckBoxes = new Hashtable<String, JCheckBox>();
88 89
 
89 90
         // Lay out all the boolean mode checkboxes
90
-        for (int i = 0; i < userModes.length();
91
-                i++) {
91
+        for (int i = 0; i < userModes.length(); i++) {
92 92
             final String mode = userModes.substring(i, i + 1);
93 93
             final boolean state =
94 94
                     ourUserModes.split(" ")[0].contains(mode.subSequence(0, 1));
@@ -122,10 +122,12 @@ public final class UserModesPane extends JPanel {
122 122
 
123 123
     /** Lays out the components. */
124 124
     private void layoutComponents() {
125
-        final JPanel userModes =
126
-                new JPanel(new MigLayout("wrap 2, fillx"));
127
-        for (JCheckBox checkBox : modeCheckBoxes.values()) {
128
-            userModes.add(checkBox);
125
+        final JPanel userModes = new JPanel(new MigLayout("wrap 2, fillx"));
126
+        final TreeSet<String> modes = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
127
+
128
+        modes.addAll(modeCheckBoxes.keySet());
129
+        for(String mode : modes) {
130
+            userModes.add(modeCheckBoxes.get(mode));
129 131
         }
130 132
 
131 133
         userModes.setBorder(BorderFactory.createTitledBorder(UIManager.getBorder(

Loading…
Cancel
Save