Explorar el Código

Migrate to query events not actions.

Change-Id: I9a8817842167ae56f845987c5d345122667314df
Reviewed-on: http://gerrit.dmdirc.com/3460
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
pull/1/head
Greg Holmes hace 10 años
padre
commit
5dde390450

+ 31
- 16
src/com/dmdirc/Query.java Ver fichero

@@ -23,9 +23,16 @@
23 23
 package com.dmdirc;
24 24
 
25 25
 import com.dmdirc.actions.ActionManager;
26
-import com.dmdirc.actions.CoreActionType;
27 26
 import com.dmdirc.commandparser.CommandType;
28 27
 import com.dmdirc.commandparser.parsers.QueryCommandParser;
28
+import com.dmdirc.events.DisplayableEvent;
29
+import com.dmdirc.events.QueryActionEvent;
30
+import com.dmdirc.events.QueryClosedEvent;
31
+import com.dmdirc.events.QueryMessageEvent;
32
+import com.dmdirc.events.QueryNickchangeEvent;
33
+import com.dmdirc.events.QueryQuitEvent;
34
+import com.dmdirc.events.QuerySelfActionEvent;
35
+import com.dmdirc.events.QuerySelfMessageEvent;
29 36
 import com.dmdirc.interfaces.CommandController;
30 37
 import com.dmdirc.interfaces.Connection;
31 38
 import com.dmdirc.interfaces.PrivateChat;
@@ -69,6 +76,8 @@ public class Query extends MessageTarget implements PrivateActionListener,
69 76
 
70 77
     /** The Server this Query is on. */
71 78
     private final Server server;
79
+    /** Event bus to post events on. */
80
+    private final EventBus eventBus;
72 81
     /** The full host of the client associated with this query. */
73 82
     private String host;
74 83
     /** The nickname of the client associated with this query. */
@@ -107,6 +116,7 @@ public class Query extends MessageTarget implements PrivateActionListener,
107 116
                         WindowComponent.TEXTAREA.getIdentifier(),
108 117
                         WindowComponent.INPUTFIELD.getIdentifier()));
109 118
 
119
+        this.eventBus = eventBus;
110 120
         this.server = newServer;
111 121
         this.host = newHost;
112 122
         this.nickname = server.parseHostmask(host)[0];
@@ -135,8 +145,10 @@ public class Query extends MessageTarget implements PrivateActionListener,
135 145
                 server.getParser().sendMessage(target, part);
136 146
 
137 147
                 doNotification("querySelfMessage", server.getParser().getLocalClient(), part);
138
-                triggerAction("querySelfMessage", CoreActionType.QUERY_SELF_MESSAGE,
139
-                        server.getParser().getLocalClient(), part);
148
+                final DisplayableEvent event = new QuerySelfMessageEvent(this, server.getParser().
149
+                        getLocalClient(), part);
150
+                event.setDisplayFormat("querySelfMessage");
151
+                eventBus.post(event);
140 152
             }
141 153
         }
142 154
     }
@@ -174,7 +186,9 @@ public class Query extends MessageTarget implements PrivateActionListener,
174 186
             server.getParser().sendAction(getNickname(), action);
175 187
 
176 188
             doNotification("querySelfAction", client, action);
177
-            triggerAction("querySelfAction", CoreActionType.QUERY_SELF_ACTION, client, action);
189
+            final DisplayableEvent event = new QuerySelfActionEvent(this, client, action);
190
+            event.setDisplayFormat("querySelfAction");
191
+            eventBus.post(event);
178 192
         } else {
179 193
             addLine("actionTooLong", action.length());
180 194
         }
@@ -187,9 +201,9 @@ public class Query extends MessageTarget implements PrivateActionListener,
187 201
 
188 202
         final StringBuffer buff = new StringBuffer("queryMessage");
189 203
 
190
-        ActionManager.getActionManager().triggerEvent(
191
-                CoreActionType.QUERY_MESSAGE, buff, this,
192
-                parser.getClient(host), message);
204
+        final DisplayableEvent event = new QueryMessageEvent(this, parser.getClient(host), message);
205
+        event.setDisplayFormat(buff.toString());
206
+        eventBus.post(event);
193 207
 
194 208
         addLine(buff, parts[0], parts[1], parts[2], message);
195 209
     }
@@ -201,9 +215,9 @@ public class Query extends MessageTarget implements PrivateActionListener,
201 215
 
202 216
         final StringBuffer buff = new StringBuffer("queryAction");
203 217
 
204
-        ActionManager.getActionManager().triggerEvent(
205
-                CoreActionType.QUERY_ACTION, buff, this, parser.getClient(host),
206
-                message);
218
+        final DisplayableEvent event = new QueryActionEvent(this, parser.getClient(host), message);
219
+        event.setDisplayFormat(buff.toString());
220
+        eventBus.post(event);
207 221
 
208 222
         addLine(buff, parts[0], parts[1], parts[2], message);
209 223
     }
@@ -255,8 +269,9 @@ public class Query extends MessageTarget implements PrivateActionListener,
255 269
 
256 270
             final StringBuffer format = new StringBuffer("queryNickChanged");
257 271
 
258
-            ActionManager.getActionManager().triggerEvent(
259
-                    CoreActionType.QUERY_NICKCHANGE, format, this, oldNick);
272
+            final DisplayableEvent event = new QueryNickchangeEvent(this, oldNick);
273
+            event.setDisplayFormat("queryNickChanged");
274
+            eventBus.post(event);
260 275
 
261 276
             server.updateQuery(this, oldNick, client.getNickname());
262 277
 
@@ -277,8 +292,9 @@ public class Query extends MessageTarget implements PrivateActionListener,
277 292
             final StringBuffer format = new StringBuffer(reason.isEmpty()
278 293
                     ? "queryQuit" : "queryQuitReason");
279 294
 
280
-            ActionManager.getActionManager().triggerEvent(
281
-                    CoreActionType.QUERY_QUIT, format, this, reason);
295
+            final DisplayableEvent event = new QueryQuitEvent(this, reason);
296
+            event.setDisplayFormat(format.toString());
297
+            eventBus.post(event);
282 298
 
283 299
             addLine(format, client.getNickname(),
284 300
                     client.getUsername(), client.getHostname(), reason);
@@ -310,8 +326,7 @@ public class Query extends MessageTarget implements PrivateActionListener,
310 326
         }
311 327
 
312 328
         // Trigger action for the window closing
313
-        ActionManager.getActionManager().triggerEvent(
314
-                CoreActionType.QUERY_CLOSED, null, this);
329
+        eventBus.post(new QueryClosedEvent(this));
315 330
 
316 331
         // Inform any parents that the window is closing
317 332
         if (server != null) {

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

@@ -28,6 +28,7 @@ import com.dmdirc.actions.CoreActionType;
28 28
 import com.dmdirc.commandparser.CommandType;
29 29
 import com.dmdirc.commandparser.parsers.CommandParser;
30 30
 import com.dmdirc.events.ChannelOpenedEvent;
31
+import com.dmdirc.events.QueryOpenedEvent;
31 32
 import com.dmdirc.events.ServerConnectErrorEvent;
32 33
 import com.dmdirc.events.ServerConnectedEvent;
33 34
 import com.dmdirc.events.ServerConnectingEvent;
@@ -146,7 +147,7 @@ public class Server extends FrameContainer implements ConfigChangeListener,
146 147
     /** Our reason for being away, if any. */
147 148
     private String awayMessage;
148 149
     /** Our event handler. */
149
-    private final ServerEventHandler eventHandler = new ServerEventHandler(this);
150
+    private final ServerEventHandler eventHandler;
150 151
     /** A list of outstanding invites. */
151 152
     private final List<Invite> invites = new ArrayList<>();
152 153
     /** A set of channels we want to join without focusing. */
@@ -257,6 +258,8 @@ public class Server extends FrameContainer implements ConfigChangeListener,
257 258
         this.userSettings = userSettings;
258 259
         this.statusBarManager = statusBarManager;
259 260
 
261
+        eventHandler = new ServerEventHandler(this, eventBus);
262
+
260 263
         setConnectionDetails(uri, profile);
261 264
 
262 265
         updateIcon();
@@ -535,8 +538,7 @@ public class Server extends FrameContainer implements ConfigChangeListener,
535 538
             final Query newQuery = queryFactory.getQuery(this, host);
536 539
 
537 540
             windowManager.addWindow(this, newQuery, focus);
538
-            ActionManager.getActionManager().triggerEvent(
539
-                    CoreActionType.QUERY_OPENED, null, newQuery);
541
+            eventBus.post(new QueryOpenedEvent(newQuery));
540 542
 
541 543
             getTabCompleter().addEntry(TabCompletionType.QUERY_NICK, nick);
542 544
             queries.put(lnick, newQuery);

+ 19
- 7
src/com/dmdirc/ServerEventHandler.java Ver fichero

@@ -24,6 +24,9 @@ package com.dmdirc;
24 24
 
25 25
 import com.dmdirc.actions.ActionManager;
26 26
 import com.dmdirc.actions.CoreActionType;
27
+import com.dmdirc.events.DisplayableEvent;
28
+import com.dmdirc.events.QuerySelfActionEvent;
29
+import com.dmdirc.events.QuerySelfMessageEvent;
27 30
 import com.dmdirc.interfaces.Connection;
28 31
 import com.dmdirc.interfaces.actions.ActionType;
29 32
 import com.dmdirc.logger.ErrorLevel;
@@ -68,6 +71,8 @@ import com.dmdirc.parser.interfaces.callbacks.WallDesyncListener;
68 71
 import com.dmdirc.parser.interfaces.callbacks.WallopListener;
69 72
 import com.dmdirc.parser.interfaces.callbacks.WalluserListener;
70 73
 
74
+import com.google.common.eventbus.EventBus;
75
+
71 76
 import java.util.ArrayList;
72 77
 import java.util.Arrays;
73 78
 import java.util.Date;
@@ -91,16 +96,18 @@ public class ServerEventHandler extends EventHandler implements
91 96
 
92 97
     /** The server instance that owns this event handler. */
93 98
     private final Server owner;
99
+    /** Event bus to post events to. */
100
+    private final EventBus eventBus;
94 101
 
95 102
     /**
96 103
      * Creates a new instance of ServerEventHandler.
97 104
      *
98
-     * @param owner The Server instance that we're handling events for
105
+     * @param owner    The Server instance that we're handling events for
106
+     * @param eventBus The event bus to post events to
99 107
      */
100
-    public ServerEventHandler(final Server owner) {
101
-        super();
102
-
108
+    public ServerEventHandler(final Server owner, final EventBus eventBus) {
103 109
         this.owner = owner;
110
+        this.eventBus = eventBus;
104 111
     }
105 112
 
106 113
     @Override
@@ -338,8 +345,10 @@ public class ServerEventHandler extends EventHandler implements
338 345
             // Local client
339 346
             owner.getQuery(target).doNotification("querySelfExternalMessage",
340 347
                     parser.getLocalClient(), message);
341
-            triggerAction("querySelfExternalMessage", CoreActionType.QUERY_SELF_MESSAGE, parser.
342
-                    getLocalClient(), message);
348
+            final DisplayableEvent event = new QuerySelfMessageEvent(owner.getQuery(target),
349
+                    parser.getLocalClient(), message);
350
+            event.setDisplayFormat("querySelfExternalMessage");
351
+            eventBus.post(event);
343 352
         } else {
344 353
             owner.doNotification("unknownMessage", host, target, message);
345 354
             triggerAction("unknownMessage", CoreActionType.SERVER_UNKNOWNNOTICE, host, target,
@@ -356,7 +365,10 @@ public class ServerEventHandler extends EventHandler implements
356 365
             // Local client
357 366
             owner.getQuery(target).doNotification("querySelfExternalAction",
358 367
                     parser.getLocalClient(), message);
359
-            triggerAction("querySelfExternalAction", CoreActionType.QUERY_SELF_ACTION, message);
368
+            final DisplayableEvent event = new QuerySelfActionEvent(owner.getQuery(target),
369
+                    parser.getLocalClient(), message);
370
+            event.setDisplayFormat("querySelfExternalAction");
371
+            eventBus.post(event);
360 372
         } else {
361 373
             owner.doNotification("unknownAction", host, target, message);
362 374
             triggerAction("unknownAction", CoreActionType.SERVER_UNKNOWNACTION, host, target,

+ 8
- 0
src/com/dmdirc/actions/CoreActionType.java Ver fichero

@@ -204,20 +204,28 @@ public enum CoreActionType implements ActionType {
204 204
     CHANNEL_TOPICCHANGE(ChannelEvents.CHANNEL_SOURCED_EVENT_WITH_ARG,
205 205
             "Someone changed channel topic"),
206 206
     /** Query opened. */
207
+    @Deprecated
207 208
     QUERY_OPENED(QueryEvents.QUERY_EVENT, "Query window opened"),
208 209
     /** Query closed. */
210
+    @Deprecated
209 211
     QUERY_CLOSED(QueryEvents.QUERY_EVENT, "Query window closed"),
210 212
     /** Query message received. */
213
+    @Deprecated
211 214
     QUERY_MESSAGE(QueryEvents.QUERY_SOURCED_EVENT_WITH_ARG, "Private message received"),
212 215
     /** Query action received. */
216
+    @Deprecated
213 217
     QUERY_ACTION(QueryEvents.QUERY_SOURCED_EVENT_WITH_ARG, "Private action received"),
214 218
     /** Query message sent. */
219
+    @Deprecated
215 220
     QUERY_SELF_MESSAGE(QueryEvents.QUERY_SOURCED_EVENT_WITH_ARG, "Private message sent"),
216 221
     /** Query action sent. */
222
+    @Deprecated
217 223
     QUERY_SELF_ACTION(QueryEvents.QUERY_SOURCED_EVENT_WITH_ARG, "Private action sent"),
218 224
     /** Query quit event. */
225
+    @Deprecated
219 226
     QUERY_QUIT(QueryEvents.QUERY_EVENT_WITH_ARG, "Query: user quit"),
220 227
     /** Query nick change. */
228
+    @Deprecated
221 229
     QUERY_NICKCHANGE(QueryEvents.QUERY_EVENT_WITH_ARG, "Query: user changed nicks"),
222 230
     /** Plugin loaded. */
223 231
     @Deprecated

+ 19
- 2
src/com/dmdirc/events/QueryActionEvent.java Ver fichero

@@ -23,18 +23,35 @@
23 23
 package com.dmdirc.events;
24 24
 
25 25
 import com.dmdirc.Query;
26
+import com.dmdirc.parser.interfaces.ClientInfo;
26 27
 
27 28
 /**
28 29
  * Fired when an action occurs in a query.
29 30
  */
30 31
 public class QueryActionEvent extends QueryDisplayableEvent {
31 32
 
32
-    public QueryActionEvent(final long timestamp, final Query query) {
33
+    private final ClientInfo client;
34
+    private final String message;
35
+
36
+    public QueryActionEvent(final long timestamp, final Query query, final ClientInfo client,
37
+            final String message) {
33 38
         super(timestamp, query);
39
+        this.client = client;
40
+        this.message = message;
34 41
     }
35 42
 
36
-    public QueryActionEvent(final Query query) {
43
+    public QueryActionEvent(final Query query, final ClientInfo client, final String message) {
37 44
         super(query);
45
+        this.client = client;
46
+        this.message = message;
47
+    }
48
+
49
+    public ClientInfo getClient() {
50
+        return client;
51
+    }
52
+
53
+    public String getMessage() {
54
+        return message;
38 55
     }
39 56
 
40 57
 }

+ 19
- 2
src/com/dmdirc/events/QueryMessageEvent.java Ver fichero

@@ -23,18 +23,35 @@
23 23
 package com.dmdirc.events;
24 24
 
25 25
 import com.dmdirc.Query;
26
+import com.dmdirc.parser.interfaces.ClientInfo;
26 27
 
27 28
 /**
28 29
  * Fired when a message occurs in a query.
29 30
  */
30 31
 public class QueryMessageEvent extends QueryDisplayableEvent {
31 32
 
32
-    public QueryMessageEvent(final long timestamp, final Query query) {
33
+    private final ClientInfo client;
34
+    private final String message;
35
+
36
+    public QueryMessageEvent(final long timestamp, final Query query, final ClientInfo client,
37
+            final String message) {
33 38
         super(timestamp, query);
39
+        this.client = client;
40
+        this.message = message;
34 41
     }
35 42
 
36
-    public QueryMessageEvent(final Query query) {
43
+    public QueryMessageEvent(final Query query, final ClientInfo client, final String message) {
37 44
         super(query);
45
+        this.client = client;
46
+        this.message = message;
47
+    }
48
+
49
+    public ClientInfo getClient() {
50
+        return client;
51
+    }
52
+
53
+    public String getMessage() {
54
+        return message;
38 55
     }
39 56
 
40 57
 }

+ 10
- 2
src/com/dmdirc/events/QueryNickchangeEvent.java Ver fichero

@@ -29,12 +29,20 @@ import com.dmdirc.Query;
29 29
  */
30 30
 public class QueryNickchangeEvent extends QueryDisplayableEvent {
31 31
 
32
-    public QueryNickchangeEvent(final long timestamp, final Query query) {
32
+    private final String oldNick;
33
+
34
+    public QueryNickchangeEvent(final long timestamp, final Query query, final String oldNick) {
33 35
         super(timestamp, query);
36
+        this.oldNick = oldNick;
34 37
     }
35 38
 
36
-    public QueryNickchangeEvent(final Query query) {
39
+    public QueryNickchangeEvent(final Query query, final String oldNick) {
37 40
         super(query);
41
+        this.oldNick = oldNick;
42
+    }
43
+
44
+    public String getOldNick() {
45
+        return oldNick;
38 46
     }
39 47
 
40 48
 }

+ 10
- 2
src/com/dmdirc/events/QueryQuitEvent.java Ver fichero

@@ -29,12 +29,20 @@ import com.dmdirc.Query;
29 29
  */
30 30
 public class QueryQuitEvent extends QueryDisplayableEvent {
31 31
 
32
-    public QueryQuitEvent(final long timestamp, final Query query) {
32
+    private final String reason;
33
+
34
+    public QueryQuitEvent(final long timestamp, final Query query, final String reason) {
33 35
         super(timestamp, query);
36
+        this.reason = reason;
34 37
     }
35 38
 
36
-    public QueryQuitEvent(final Query query) {
39
+    public QueryQuitEvent(final Query query, final String reason) {
37 40
         super(query);
41
+        this.reason = reason;
42
+    }
43
+
44
+    public String getReason() {
45
+        return reason;
38 46
     }
39 47
 
40 48
 }

+ 19
- 2
src/com/dmdirc/events/QuerySelfActionEvent.java Ver fichero

@@ -23,18 +23,35 @@
23 23
 package com.dmdirc.events;
24 24
 
25 25
 import com.dmdirc.Query;
26
+import com.dmdirc.parser.interfaces.ClientInfo;
26 27
 
27 28
 /**
28 29
  * Fired when a self action is sent in query.
29 30
  */
30 31
 public class QuerySelfActionEvent extends QueryDisplayableEvent {
31 32
 
32
-    public QuerySelfActionEvent(final long timestamp, final Query query) {
33
+    private final ClientInfo client;
34
+    private final String message;
35
+
36
+    public QuerySelfActionEvent(final long timestamp, final Query query, final ClientInfo client,
37
+            final String message) {
33 38
         super(timestamp, query);
39
+        this.client = client;
40
+        this.message = message;
34 41
     }
35 42
 
36
-    public QuerySelfActionEvent(final Query query) {
43
+    public QuerySelfActionEvent(final Query query, final ClientInfo client, final String message) {
37 44
         super(query);
45
+        this.client = client;
46
+        this.message = message;
47
+    }
48
+
49
+    public ClientInfo getClient() {
50
+        return client;
51
+    }
52
+
53
+    public String getMessage() {
54
+        return message;
38 55
     }
39 56
 
40 57
 }

src/com/dmdirc/events/QuerySelfMessage.java → src/com/dmdirc/events/QuerySelfMessageEvent.java Ver fichero

@@ -23,18 +23,35 @@
23 23
 package com.dmdirc.events;
24 24
 
25 25
 import com.dmdirc.Query;
26
+import com.dmdirc.parser.interfaces.ClientInfo;
26 27
 
27 28
 /**
28 29
  * Fired when a self message happens in a query.
29 30
  */
30
-public class QuerySelfMessage extends QueryDisplayableEvent {
31
+public class QuerySelfMessageEvent extends QueryDisplayableEvent {
31 32
 
32
-    public QuerySelfMessage(final long timestamp, final Query query) {
33
+    private final ClientInfo client;
34
+    private final String message;
35
+
36
+    public QuerySelfMessageEvent(final long timestamp, final Query query, final ClientInfo client,
37
+            final String message) {
33 38
         super(timestamp, query);
39
+        this.client = client;
40
+        this.message = message;
34 41
     }
35 42
 
36
-    public QuerySelfMessage(final Query query) {
43
+    public QuerySelfMessageEvent(final Query query, final ClientInfo client, final String message) {
37 44
         super(query);
45
+        this.client = client;
46
+        this.message = message;
47
+    }
48
+
49
+    public ClientInfo getClient() {
50
+        return client;
51
+    }
52
+
53
+    public String getMessage() {
54
+        return message;
38 55
     }
39 56
 
40 57
 }

Loading…
Cancelar
Guardar