Explorar el Código

Tidying.

Fix some incorrect EventBus/notification logic in Query.

Change-Id: I4940bb16836fb39a117de7c3c36fc0aebd57eac0
Reviewed-on: http://gerrit.dmdirc.com/3825
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
pull/1/head
Chris Smith hace 9 años
padre
commit
d3ed8a460c

+ 3
- 1
.idea/inspectionProfiles/Project_Default.xml Ver fichero

@@ -283,7 +283,9 @@
283 283
     <inspection_tool class="UnnecessaryQualifierForThis" enabled="true" level="WARNING" enabled_by_default="true" />
284 284
     <inspection_tool class="UnnecessarySuperConstructor" enabled="true" level="WARNING" enabled_by_default="true" />
285 285
     <inspection_tool class="UnnecessarySuperQualifier" enabled="true" level="WARNING" enabled_by_default="true" />
286
-    <inspection_tool class="UnnecessaryThis" enabled="true" level="WARNING" enabled_by_default="true" />
286
+    <inspection_tool class="UnnecessaryThis" enabled="true" level="WARNING" enabled_by_default="true">
287
+      <option name="ignoreAssignments" value="true" />
288
+    </inspection_tool>
287 289
     <inspection_tool class="UnnecessaryToStringCall" enabled="true" level="WARNING" enabled_by_default="true" />
288 290
     <inspection_tool class="UnusedImport" enabled="true" level="WARNING" enabled_by_default="true" />
289 291
     <inspection_tool class="UseOfAnotherObjectsPrivateField" enabled="true" level="WARNING" enabled_by_default="true">

+ 1
- 1
src/com/dmdirc/ChannelMap.java Ver fichero

@@ -144,7 +144,7 @@ public class ChannelMap {
144 144
      * @return A collection of join requests corresponding to channels in this map.
145 145
      */
146 146
     public Collection<ChannelJoinRequest> asJoinRequests() {
147
-        final List<ChannelJoinRequest> requests = new ArrayList<>(channels.size());
147
+        final Collection<ChannelJoinRequest> requests = new ArrayList<>(channels.size());
148 148
         for (Channel channel : channels.values()) {
149 149
             requests.add(new ChannelJoinRequest(channel.getName()));
150 150
         }

+ 2
- 0
src/com/dmdirc/ParserFactory.java Ver fichero

@@ -34,6 +34,7 @@ import com.dmdirc.plugins.ServiceProvider;
34 34
 
35 35
 import java.net.URI;
36 36
 
37
+import javax.annotation.Nullable;
37 38
 import javax.inject.Inject;
38 39
 
39 40
 /**
@@ -71,6 +72,7 @@ public class ParserFactory {
71 72
      *
72 73
      * @since 0.6.3
73 74
      */
75
+    @Nullable
74 76
     public Parser getParser(final MyInfo myInfo, final URI address) {
75 77
         final Object obj = getExportResult(address, "getParser", myInfo, address);
76 78
 

+ 29
- 43
src/com/dmdirc/Query.java Ver fichero

@@ -24,6 +24,8 @@ package com.dmdirc;
24 24
 
25 25
 import com.dmdirc.commandparser.CommandType;
26 26
 import com.dmdirc.commandparser.parsers.QueryCommandParser;
27
+import com.dmdirc.events.AppErrorEvent;
28
+import com.dmdirc.events.EventUtils;
27 29
 import com.dmdirc.events.QueryActionEvent;
28 30
 import com.dmdirc.events.QueryClosedEvent;
29 31
 import com.dmdirc.events.QueryMessageEvent;
@@ -35,7 +37,6 @@ import com.dmdirc.interfaces.CommandController;
35 37
 import com.dmdirc.interfaces.Connection;
36 38
 import com.dmdirc.interfaces.PrivateChat;
37 39
 import com.dmdirc.logger.ErrorLevel;
38
-import com.dmdirc.logger.Logger;
39 40
 import com.dmdirc.messages.MessageSinkManager;
40 41
 import com.dmdirc.parser.common.CallbackManager;
41 42
 import com.dmdirc.parser.common.CallbackNotFoundException;
@@ -108,11 +109,6 @@ public class Query extends MessageTarget implements PrivateActionListener,
108 109
         this.server = newServer;
109 110
         this.host = newHost;
110 111
         this.nickname = server.parseHostmask(host)[0];
111
-
112
-        if (!server.getState().isDisconnected()) {
113
-            reregister();
114
-        }
115
-
116 112
         updateTitle();
117 113
     }
118 114
 
@@ -132,11 +128,10 @@ public class Query extends MessageTarget implements PrivateActionListener,
132 128
             if (!part.isEmpty()) {
133 129
                 server.getParser().sendMessage(target, part);
134 130
 
135
-                doNotification("querySelfMessage", server.getParser().getLocalClient(), part);
136
-                final QuerySelfMessageEvent event = new QuerySelfMessageEvent(this, server.getParser().
137
-                        getLocalClient(), part);
138
-                event.setDisplayFormat("querySelfMessage");
139
-                getEventBus().publish(event);
131
+                final String format = EventUtils.postDisplayable(getEventBus(),
132
+                        new QuerySelfMessageEvent(this, server.getParser().getLocalClient(), part),
133
+                        "querySelfMessage");
134
+                doNotification(format, server.getParser().getLocalClient(), part);
140 135
             }
141 136
         }
142 137
     }
@@ -173,10 +168,10 @@ public class Query extends MessageTarget implements PrivateActionListener,
173 168
         if (maxLineLength >= action.length() + 2) {
174 169
             server.getParser().sendAction(getNickname(), action);
175 170
 
176
-            doNotification("querySelfAction", client, action);
177
-            final QuerySelfActionEvent event = new QuerySelfActionEvent(this, client, action);
178
-            event.setDisplayFormat("querySelfAction");
179
-            getEventBus().publish(event);
171
+            final String format = EventUtils.postDisplayable(getEventBus(),
172
+                    new QuerySelfActionEvent(this, client, action),
173
+                    "querySelfAction");
174
+            doNotification(format, client, action);
180 175
         } else {
181 176
             addLine("actionTooLong", action.length());
182 177
         }
@@ -187,13 +182,10 @@ public class Query extends MessageTarget implements PrivateActionListener,
187 182
             final String message, final String host) {
188 183
         final String[] parts = server.parseHostmask(host);
189 184
 
190
-        final StringBuffer buff = new StringBuffer("queryMessage");
191
-
192
-        final QueryMessageEvent event = new QueryMessageEvent(this, parser.getClient(host), message);
193
-        event.setDisplayFormat(buff.toString());
194
-        getEventBus().publish(event);
195
-
196
-        addLine(buff, parts[0], parts[1], parts[2], message);
185
+        final String format = EventUtils.postDisplayable(getEventBus(),
186
+                new QueryMessageEvent(this, parser.getClient(host), message),
187
+                "queryMessage");
188
+        addLine(format, parts[0], parts[1], parts[2], message);
197 189
     }
198 190
 
199 191
     @Override
@@ -201,13 +193,10 @@ public class Query extends MessageTarget implements PrivateActionListener,
201 193
             final String message, final String host) {
202 194
         final String[] parts = server.parseHostmask(host);
203 195
 
204
-        final StringBuffer buff = new StringBuffer("queryAction");
205
-
206
-        final QueryActionEvent event = new QueryActionEvent(this, parser.getClient(host), message);
207
-        event.setDisplayFormat(buff.toString());
208
-        getEventBus().publish(event);
209
-
210
-        addLine(buff, parts[0], parts[1], parts[2], message);
196
+        final String format = EventUtils.postDisplayable(getEventBus(),
197
+                new QueryActionEvent(this, parser.getClient(host), message),
198
+                "queryAction");
199
+        addLine(format, parts[0], parts[1], parts[2], message);
211 200
     }
212 201
 
213 202
     /**
@@ -231,7 +220,8 @@ public class Query extends MessageTarget implements PrivateActionListener,
231 220
             callbackManager.addCallback(QuitListener.class, this);
232 221
             callbackManager.addCallback(NickChangeListener.class, this);
233 222
         } catch (CallbackNotFoundException ex) {
234
-            Logger.appError(ErrorLevel.HIGH, "Unable to get query events", ex);
223
+            getEventBus().publishAsync(new AppErrorEvent(ErrorLevel.HIGH, ex,
224
+                    "Unable to get query events", ex.getMessage()));
235 225
         }
236 226
     }
237 227
 
@@ -252,14 +242,14 @@ public class Query extends MessageTarget implements PrivateActionListener,
252 242
                 callbackManager.addCallback(CompositionStateChangeListener.class, this, client.
253 243
                         getNickname());
254 244
             } catch (CallbackNotFoundException ex) {
255
-                Logger.appError(ErrorLevel.HIGH, "Unable to get query events", ex);
245
+                getEventBus().publishAsync(
246
+                        new AppErrorEvent(ErrorLevel.HIGH, ex, "Unable to get query events",
247
+                                ex.getMessage()));
256 248
             }
257 249
 
258
-            final StringBuffer format = new StringBuffer("queryNickChanged");
259
-
260
-            final QueryNickchangeEvent event = new QueryNickchangeEvent(this, oldNick);
261
-            event.setDisplayFormat("queryNickChanged");
262
-            getEventBus().publish(event);
250
+            final String format = EventUtils.postDisplayable(getEventBus(),
251
+                    new QueryNickchangeEvent(this, oldNick),
252
+                    "queryNickChanged");
263 253
 
264 254
             server.updateQuery(this, oldNick, client.getNickname());
265 255
 
@@ -277,13 +267,9 @@ public class Query extends MessageTarget implements PrivateActionListener,
277 267
     public void onQuit(final Parser parser, final Date date,
278 268
             final ClientInfo client, final String reason) {
279 269
         if (client.getNickname().equals(getNickname())) {
280
-            final StringBuffer format = new StringBuffer(reason.isEmpty()
281
-                    ? "queryQuit" : "queryQuitReason");
282
-
283
-            final QueryQuitEvent event = new QueryQuitEvent(this, reason);
284
-            event.setDisplayFormat(format.toString());
285
-            getEventBus().publish(event);
286
-
270
+            final String format = EventUtils.postDisplayable(getEventBus(),
271
+                    new QueryQuitEvent(this, reason),
272
+                    reason.isEmpty() ? "queryQuit" : "queryQuitReason");
287 273
             addLine(format, client.getNickname(),
288 274
                     client.getUsername(), client.getHostname(), reason);
289 275
         }

+ 5
- 0
src/com/dmdirc/Server.java Ver fichero

@@ -92,6 +92,7 @@ import java.util.concurrent.locks.ReadWriteLock;
92 92
 import java.util.concurrent.locks.ReentrantReadWriteLock;
93 93
 
94 94
 import javax.annotation.Nonnull;
95
+import javax.annotation.Nullable;
95 96
 import javax.net.ssl.SSLException;
96 97
 import javax.net.ssl.TrustManager;
97 98
 
@@ -535,6 +536,9 @@ public class Server extends FrameContainer implements ConfigChangeListener,
535 536
 
536 537
         if (!queries.containsKey(lnick)) {
537 538
             final Query newQuery = queryFactory.getQuery(this, host);
539
+            if (!getState().isDisconnected()) {
540
+                newQuery.reregister();
541
+            }
538 542
 
539 543
             windowManager.addWindow(this, newQuery, focus);
540 544
             getEventBus().publish(new QueryOpenedEvent(newQuery));
@@ -664,6 +668,7 @@ public class Server extends FrameContainer implements ConfigChangeListener,
664 668
      *
665 669
      * @return A configured parser.
666 670
      */
671
+    @Nullable
667 672
     private Parser buildParser() {
668 673
         final MyInfo myInfo = buildMyInfo();
669 674
         final Parser myParser = parserFactory.getParser(myInfo, address);

Loading…
Cancelar
Guardar