Bläddra i källkod

Fix DCC Plugin after parser changes.

pull/393/head
Greg Holmes 9 år sedan
förälder
incheckning
580c8c39ed

+ 8
- 14
dcc/src/com/dmdirc/addons/dcc/TransferContainer.java Visa fil

@@ -32,24 +32,25 @@ import com.dmdirc.addons.dcc.io.DCC;
32 32
 import com.dmdirc.addons.dcc.io.DCCTransfer;
33 33
 import com.dmdirc.interfaces.Connection;
34 34
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
35
+import com.dmdirc.parser.events.SocketCloseEvent;
35 36
 import com.dmdirc.parser.interfaces.Parser;
36
-import com.dmdirc.parser.interfaces.callbacks.SocketCloseListener;
37 37
 import com.dmdirc.ui.messages.BackBufferFactory;
38 38
 
39 39
 import java.awt.Desktop;
40 40
 import java.io.File;
41 41
 import java.util.Arrays;
42
-import java.util.Date;
43 42
 import java.util.Optional;
44 43
 
45 44
 import javax.annotation.Nullable;
46 45
 import javax.swing.JOptionPane;
47 46
 
47
+import net.engio.mbassy.listener.Handler;
48
+
48 49
 /**
49 50
  * This class links DCC Send objects to a window.
50 51
  */
51 52
 public class TransferContainer extends FrameContainer implements
52
-        DCCTransferHandler, SocketCloseListener {
53
+        DCCTransferHandler {
53 54
 
54 55
     /** The dcc plugin that owns this frame */
55 56
     protected final DCCManager plugin;
@@ -99,7 +100,7 @@ public class TransferContainer extends FrameContainer implements
99 100
         myPlugin = plugin;
100 101
 
101 102
         if (parser != null) {
102
-            parser.getCallbackManager().addCallback(SocketCloseListener.class, this);
103
+            parser.getCallbackManager().subscribe(this);
103 104
         }
104 105
         dcc.addHandler(this);
105 106
 
@@ -108,10 +109,10 @@ public class TransferContainer extends FrameContainer implements
108 109
         initBackBuffer();
109 110
     }
110 111
 
111
-    @Override
112
-    public void onSocketClosed(final Parser parser, final Date date) {
112
+    @Handler
113
+    public void onSocketClosed(final SocketCloseEvent event) {
113 114
         // Remove our reference to the parser (and its reference to us)
114
-        this.parser.getCallbackManager().delAllCallback(this);
115
+        parser.getCallbackManager().unsubscribe(this);
115 116
         this.parser = null;
116 117
     }
117 118
 
@@ -346,13 +347,6 @@ public class TransferContainer extends FrameContainer implements
346 347
         dcc.removeFromTransfers();
347 348
     }
348 349
 
349
-    public void addSocketCloseCallback(final SocketCloseListener listener) {
350
-        if (connection != null) {
351
-            connection.getParser().map(Parser::getCallbackManager).ifPresent(
352
-                    cbm -> cbm.addCallback(SocketCloseListener.class, listener));
353
-        }
354
-    }
355
-
356 350
     @Override
357 351
     public Optional<Connection> getConnection() {
358 352
         return Optional.empty();

+ 11
- 6
dcc/src/com/dmdirc/addons/dcc/ui/TransferPanel.java Visa fil

@@ -29,10 +29,11 @@ import com.dmdirc.addons.dcc.io.DCCTransfer;
29 29
 import com.dmdirc.addons.ui_swing.UIUtilities;
30 30
 import com.dmdirc.addons.ui_swing.components.frames.SwingFrameComponent;
31 31
 import com.dmdirc.events.UserErrorEvent;
32
+import com.dmdirc.interfaces.Connection;
32 33
 import com.dmdirc.interfaces.WindowModel;
33 34
 import com.dmdirc.logger.ErrorLevel;
35
+import com.dmdirc.parser.events.SocketCloseEvent;
34 36
 import com.dmdirc.parser.interfaces.Parser;
35
-import com.dmdirc.parser.interfaces.callbacks.SocketCloseListener;
36 37
 import com.dmdirc.util.DateUtils;
37 38
 
38 39
 import java.awt.Desktop;
@@ -40,7 +41,6 @@ import java.awt.event.ActionEvent;
40 41
 import java.awt.event.ActionListener;
41 42
 import java.io.File;
42 43
 import java.io.IOException;
43
-import java.util.Date;
44 44
 
45 45
 import javax.swing.JButton;
46 46
 import javax.swing.JLabel;
@@ -49,13 +49,15 @@ import javax.swing.JProgressBar;
49 49
 
50 50
 import net.miginfocom.swing.MigLayout;
51 51
 
52
+import net.engio.mbassy.listener.Handler;
53
+
52 54
 /**
53 55
  * A panel for displaying the progress of DCC transfers.
54 56
  *
55 57
  * @since 0.6.6
56 58
  */
57 59
 public class TransferPanel extends JPanel implements ActionListener,
58
-        SocketCloseListener, DCCTransferHandler, SwingFrameComponent {
60
+        DCCTransferHandler, SwingFrameComponent {
59 61
 
60 62
     /** A version number for this class. */
61 63
     private static final long serialVersionUID = 1L;
@@ -92,7 +94,10 @@ public class TransferPanel extends JPanel implements ActionListener,
92 94
         dcc = transferContainer.getDCC();
93 95
 
94 96
         dcc.addHandler(this);
95
-        transferContainer.addSocketCloseCallback(this);
97
+        transferContainer.getConnection()
98
+                .flatMap(Connection::getParser)
99
+                .map(Parser::getCallbackManager)
100
+                .ifPresent(cm -> cm.subscribe(this));
96 101
 
97 102
         setLayout(new MigLayout("hidemode 0"));
98 103
 
@@ -164,8 +169,8 @@ public class TransferPanel extends JPanel implements ActionListener,
164 169
         }
165 170
     }
166 171
 
167
-    @Override
168
-    public void onSocketClosed(final Parser parser, final Date date) {
172
+    @Handler
173
+    public void onSocketClosed(final SocketCloseEvent event) {
169 174
         if ("Resend".equals(button.getText())) {
170 175
             button.setText("Close Window");
171 176
         }

Laddar…
Avbryt
Spara