Sfoglia il codice sorgente

Callbacks in the channel class are now normal methods rather than AICs

Added handler for topic changes

git-svn-id: http://svn.dmdirc.com/trunk@171 00569f92-eb28-0410-84fd-f71c24880f
tags/0.1
Chris Smith 17 anni fa
parent
commit
edbf89d4da
1 ha cambiato i file con 29 aggiunte e 24 eliminazioni
  1. 29
    24
      src/uk/org/ownage/dmdirc/Channel.java

+ 29
- 24
src/uk/org/ownage/dmdirc/Channel.java Vedi File

@@ -36,7 +36,8 @@ import uk.org.ownage.dmdirc.ui.MainFrame;
36 36
  * ChannelFrame, and handles user input to a ChannelFrame
37 37
  * @author chris
38 38
  */
39
-public class Channel {
39
+public class Channel implements IRCParser.IChannelMessage,
40
+        IRCParser.IChannelGotNames, IRCParser.IChannelTopic {
40 41
     
41 42
     /** The parser's pChannel class */
42 43
     private ChannelInfo channelInfo;
@@ -59,29 +60,11 @@ public class Channel {
59 60
         frame = new ChannelFrame(this);
60 61
         MainFrame.getMainFrame().addChild(frame);
61 62
         
62
-        frame.setTitle(channelInfo.getName()+" - "+channelInfo.getTopic());
63
-        
64
-        // I have no idea what's going on with the indentation here.
65
-        server.getParser().addChannelMessage(
66
-                new IRCParser.IChannelMessage() {
67
-            public void onChannelMessage(IRCParser tParser, ChannelInfo cChannel,
68
-                    ChannelClientInfo cChannelClient, String sMessage, String sHost) {
69
-                if (cChannelClient != null) {
70
-                    Channel.this.frame.addLine("<"+cChannelClient.getNickname()+"> "+sMessage);
71
-                }
72
-            }
73
-            
74
-        },
75
-                channelInfo.getName());
63
+        server.getParser().addChannelMessage(this, channelInfo.getName());
64
+        server.getParser().addChannelTopic(this, channelInfo.getName());
65
+        server.getParser().addChannelGotNames(this, channelInfo.getName());
76 66
         
77
-        server.getParser().addChannelGotNames(
78
-                new IRCParser.IChannelGotNames() {
79
-            public void onChannelGotNames(IRCParser tParser, ChannelInfo cChannel) {
80
-                Channel.this.updateNames();
81
-            }
82
-        },
83
-                channelInfo.getName()
84
-                );
67
+        updateTitle();
85 68
     }
86 69
     
87 70
     public void sendLine(String line) {
@@ -89,8 +72,30 @@ public class Channel {
89 72
         frame.addLine("> "+line);
90 73
     }
91 74
     
92
-    private void updateNames() {
75
+    public void onChannelMessage(IRCParser tParser, ChannelInfo cChannel,
76
+            ChannelClientInfo cChannelClient, String sMessage, String sHost) {
77
+        if (cChannelClient != null) {
78
+            frame.addLine("<"+cChannelClient.getNickname()+"> "+sMessage);
79
+        }
80
+    }
81
+    
82
+    public void onChannelGotNames(IRCParser tParser, ChannelInfo cChannel) {
93 83
         frame.updateNames(channelInfo.getChannelClients());
94 84
     }
95 85
     
86
+    public void onChannelTopic(IRCParser tParser, ChannelInfo cChannel, boolean bIsJoinTopic) {
87
+        if (bIsJoinTopic) {
88
+            frame.addLine("* Topic is '"+cChannel.getTopic()+"'.");
89
+            frame.addLine("* Set by "+cChannel.getTopicUser()+".");
90
+        } else {
91
+            frame.addLine("* "+cChannel.getTopicUser()+" has changed the topic to '"+cChannel.getTopic()+"'");
92
+        }
93
+        
94
+        updateTitle();
95
+    }
96
+    
97
+    private void updateTitle() {
98
+        frame.setTitle(channelInfo.getName()+" - "+channelInfo.getTopic());
99
+    }
100
+    
96 101
 }

Loading…
Annulla
Salva