Pārlūkot izejas kodu

Move AliasDialogModelAdapter to core. Add check for current alias.

Change-Id: Ic547ed6e12879c7c6ea77d2c6766989c01dff640
Depends-On: I71d77d5c76f72e44303d2fd7f5dede75eef89ec1
Reviewed-on: http://gerrit.dmdirc.com/3580
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
pull/1/head
Greg Holmes 10 gadus atpakaļ
vecāks
revīzija
4bd5b915ff

+ 59
- 0
src/com/dmdirc/commandparser/aliases/AliasDialogModelAdapter.java Parādīt failu

@@ -0,0 +1,59 @@
1
+/*
2
+ * Copyright (c) 2006-2014 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.commandparser.aliases;
24
+
25
+import com.dmdirc.interfaces.ui.AliasDialogModelListener;
26
+
27
+import com.google.common.base.Optional;
28
+
29
+/**
30
+ * An abstract adapter class for receiving alias dialog model events. The methods in this class are
31
+ * empty. This class exists as convenience for creating listener objects.
32
+ */
33
+public class AliasDialogModelAdapter implements AliasDialogModelListener {
34
+
35
+    @Override
36
+    public void aliasAdded(final Alias alias) {
37
+    }
38
+
39
+    @Override
40
+    public void aliasRemoved(final Alias alias) {
41
+    }
42
+
43
+    @Override
44
+    public void aliasEdited(final Alias oldAlias, final Alias newAlias) {
45
+    }
46
+
47
+    @Override
48
+    public void aliasRenamed(final Alias oldAlias, final Alias newAlias) {
49
+    }
50
+
51
+    @Override
52
+    public void aliasSelectionChanged(final Optional<Alias> alias) {
53
+    }
54
+
55
+    @Override
56
+    public void selectedAliasEdited(final String name, final int minArgs, final String sub) {
57
+    }
58
+
59
+}

+ 12
- 0
src/com/dmdirc/commandparser/aliases/CoreAliasDialogModel.java Parādīt failu

@@ -196,16 +196,22 @@ public class CoreAliasDialogModel implements AliasDialogModel {
196 196
     @Override
197 197
     public void setSelectedAliasName(final String aliasName) {
198 198
         this.name = aliasName;
199
+        listeners.getCallable(AliasDialogModelListener.class).selectedAliasEdited(name, minArgs,
200
+                substitution);
199 201
     }
200 202
 
201 203
     @Override
202 204
     public void setSelectedAliasMinimumArguments(final int minArgs) {
203 205
         this.minArgs = minArgs;
206
+        listeners.getCallable(AliasDialogModelListener.class).selectedAliasEdited(name, minArgs,
207
+                substitution);
204 208
     }
205 209
 
206 210
     @Override
207 211
     public void setSelectedAliasSubstitution(final String substitution) {
208 212
         this.substitution = substitution;
213
+        listeners.getCallable(AliasDialogModelListener.class).selectedAliasEdited(name, minArgs,
214
+                substitution);
209 215
     }
210 216
 
211 217
     @Override
@@ -225,6 +231,12 @@ public class CoreAliasDialogModel implements AliasDialogModel {
225 231
                 isFailure();
226 232
     }
227 233
 
234
+    @Override
235
+    public boolean isSelectedAliasValid() {
236
+        return selectedAlias.isPresent() && isCommandValid() && isMinimumArgumentsValid()
237
+                && isSubstitutionValid();
238
+    }
239
+
228 240
     @Override
229 241
     public Validator<String> getCommandValidator() {
230 242
         return ValidatorChain.<String>builder()

+ 7
- 0
src/com/dmdirc/interfaces/ui/AliasDialogModel.java Parādīt failu

@@ -165,6 +165,13 @@ public interface AliasDialogModel {
165 165
      */
166 166
     boolean isSubstitutionValid();
167 167
 
168
+    /**
169
+     * Tests whether the dialog can be saved.
170
+     *
171
+     * @return true if valid
172
+     */
173
+    boolean isSelectedAliasValid();
174
+
168 175
     /**
169 176
      * Gets a validator for changing the command of an existing alias.
170 177
      *

+ 10
- 0
src/com/dmdirc/interfaces/ui/AliasDialogModelListener.java Parādīt failu

@@ -67,4 +67,14 @@ public interface AliasDialogModelListener {
67 67
      * @param alias Optional alias that has been selected
68 68
      */
69 69
     void aliasSelectionChanged(Optional<Alias> alias);
70
+
71
+    /**
72
+     * The selected alias has been edited.
73
+     *
74
+     * @param name         New name
75
+     * @param minArguments New minimum arguments
76
+     * @param substitution New substitution
77
+     */
78
+    void selectedAliasEdited(final String name, final int minArguments, final String substitution);
79
+
70 80
 }

Notiek ielāde…
Atcelt
Saglabāt