Browse Source

Stop trying to select a value past the end of the list.

Also some minor tidying.
pull/334/head
Greg Holmes 9 years ago
parent
commit
8c2b54485d

+ 45
- 24
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog.java View File

24
 
24
 
25
 import com.dmdirc.DMDircMBassador;
25
 import com.dmdirc.DMDircMBassador;
26
 import com.dmdirc.addons.ui_swing.UIUtilities;
26
 import com.dmdirc.addons.ui_swing.UIUtilities;
27
+import com.dmdirc.addons.ui_swing.components.IconManager;
27
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
28
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
28
 import com.dmdirc.addons.ui_swing.components.validating.ValidationFactory;
29
 import com.dmdirc.addons.ui_swing.components.validating.ValidationFactory;
29
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
30
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
30
 import com.dmdirc.addons.ui_swing.injection.MainWindow;
31
 import com.dmdirc.addons.ui_swing.injection.MainWindow;
31
 import com.dmdirc.commandparser.aliases.Alias;
32
 import com.dmdirc.commandparser.aliases.Alias;
32
 import com.dmdirc.interfaces.ui.AliasDialogModel;
33
 import com.dmdirc.interfaces.ui.AliasDialogModel;
33
-import com.dmdirc.addons.ui_swing.components.IconManager;
34
 import com.dmdirc.util.validators.NotEmptyValidator;
34
 import com.dmdirc.util.validators.NotEmptyValidator;
35
 
35
 
36
 import java.awt.Dimension;
36
 import java.awt.Dimension;
53
 public class AliasManagerDialog extends StandardDialog {
53
 public class AliasManagerDialog extends StandardDialog {
54
 
54
 
55
     private static final long serialVersionUID = 1;
55
     private static final long serialVersionUID = 1;
56
+    private final AliasDialogModel model;
57
+    private final IconManager iconManager;
58
+    private final DMDircMBassador eventBus;
59
+    private JList<Alias> aliasList;
60
+    private JTextField command;
61
+    private JSpinner argumentsNumber;
62
+    private JTextArea response;
63
+    private JButton addAlias;
64
+    private JButton deleteAlias;
65
+    private JScrollPane responseScroll;
56
 
66
 
57
     @Inject
67
     @Inject
58
     public AliasManagerDialog(@MainWindow final Window mainFrame, final AliasDialogModel model,
68
     public AliasManagerDialog(@MainWindow final Window mainFrame, final AliasDialogModel model,
59
             final IconManager iconManager, final DMDircMBassador eventBus) {
69
             final IconManager iconManager, final DMDircMBassador eventBus) {
60
         super(mainFrame, ModalityType.DOCUMENT_MODAL);
70
         super(mainFrame, ModalityType.DOCUMENT_MODAL);
71
+        this.model = model;
72
+        this.iconManager = iconManager;
73
+        this.eventBus = eventBus;
74
+        initComponents();
75
+        layoutComponents();
76
+    }
77
+
78
+    @Override
79
+    public void display() {
61
         final AliasManagerLinker linker = new AliasManagerLinker(model, this, iconManager);
80
         final AliasManagerLinker linker = new AliasManagerLinker(model, this, iconManager);
81
+        UIUtilities.addUndoManager(eventBus, response);
82
+        linker.bindCommandList(aliasList);
83
+        linker.bindCommand(command);
84
+        linker.bindArgumentsNumber(argumentsNumber);
85
+        linker.bindResponse(response, responseScroll);
86
+        linker.bindAddAlias(addAlias);
87
+        linker.bindDeleteAlias(deleteAlias);
88
+        linker.bindOKButton(getOkButton());
89
+        linker.bindCancelButton(getCancelButton());
90
+        linker.init();
91
+        model.loadModel();
92
+        super.display();
93
+    }
94
+
95
+    private void initComponents() {
62
         setTitle("Alias Manager");
96
         setTitle("Alias Manager");
63
-        final JList<Alias> aliasList = new JList<>();
64
-        final JTextField command = new JTextField();
65
-        final JSpinner argumentsNumber = new JSpinner();
66
-        final JTextArea response = new JTextArea();
67
-        final JButton addAlias = new JButton("Add Alias");
68
-        final JButton deleteAlias = new JButton("Delete Alias");
69
-        final JScrollPane responseScroll = new JScrollPane(response);
70
-        getOkButton();
71
-        getCancelButton();
97
+        aliasList = new JList<>();
98
+        command = new JTextField();
99
+        argumentsNumber = new JSpinner();
100
+        response = new JTextArea();
101
+        addAlias = new JButton("Add Alias");
102
+        deleteAlias = new JButton("Delete Alias");
103
+        responseScroll = new JScrollPane(response);
104
+    }
105
+
106
+    private void layoutComponents() {
72
         setMinimumSize(new Dimension(800, 400));
107
         setMinimumSize(new Dimension(800, 400));
73
         setPreferredSize(new Dimension(800, 400));
108
         setPreferredSize(new Dimension(800, 400));
74
         setLayout(new MigLayout("flowy, fill", "[][][grow]", "[][][][grow][]"));
109
         setLayout(new MigLayout("flowy, fill", "[][][grow]", "[][][][grow][]"));
92
 
127
 
93
         add(getLeftButton(), "flowx, split 3, right, sg button");
128
         add(getLeftButton(), "flowx, split 3, right, sg button");
94
         add(getRightButton(), "sg button");
129
         add(getRightButton(), "sg button");
95
-
96
-        UIUtilities.addUndoManager(eventBus, response);
97
-
98
-        linker.bindCommandList(aliasList);
99
-        linker.bindCommand(command);
100
-        linker.bindArgumentsNumber(argumentsNumber);
101
-        linker.bindResponse(response, responseScroll);
102
-        linker.bindAddAlias(addAlias);
103
-        linker.bindDeleteAlias(deleteAlias);
104
-        linker.bindOKButton(getOkButton());
105
-        linker.bindCancelButton(getCancelButton());
106
-        linker.init();
107
-        model.loadModel();
108
     }
130
     }
109
-
110
 }
131
 }

+ 1
- 1
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerLinker.java View File

172
         commandModel.remove(alias);
172
         commandModel.remove(alias);
173
         if (index >= commandModel.getSize()) {
173
         if (index >= commandModel.getSize()) {
174
             model.setSelectedAlias(Optional.ofNullable(
174
             model.setSelectedAlias(Optional.ofNullable(
175
-                    commandModel.getElementAt(commandModel.getSize() - 1)));
175
+                    commandModel.getElementAt(commandModel.getSize())));
176
         } else if (index == -1 && !commandModel.isEmpty()) {
176
         } else if (index == -1 && !commandModel.isEmpty()) {
177
             model.setSelectedAlias(Optional.ofNullable(commandModel.get(0)));
177
             model.setSelectedAlias(Optional.ofNullable(commandModel.get(0)));
178
         } else {
178
         } else {

Loading…
Cancel
Save