Changeset 25884

Show
Ignore:
Timestamp:
12/05/08 02:17:02 (4 years ago)
Author:
tarchan
Message:

lang/java/IRCKit: IRCMessageAdapterクラスを追加

Location:
lang/java/IRCKit/trunk/src/com/mac/tarchan/irc/client
Files:
1 added
2 modified
1 moved

Legend:

Unmodified
Added
Removed
  • lang/java/IRCKit/trunk/src/com/mac/tarchan/irc/client/IRCClient.java

    r25815 r25884  
    1919{ 
    2020        /** メッセージハンドラ */ 
    21         protected ArrayList<IRCMessageHandler> handlers = new ArrayList<IRCMessageHandler>(); 
     21        protected ArrayList<IRCMessageListener> handlers = new ArrayList<IRCMessageListener>(); 
    2222 
    2323        /** 
     
    4848         * @param handler メッセージハンドラ 
    4949         */ 
    50         public void registerHandler(IRCMessageHandler handler) 
     50        public void registerHandler(IRCMessageListener handler) 
    5151        { 
    5252                handlers.add(handler); 
     
    129129        public void reply(IRCMessage msg) 
    130130        { 
    131                 for (IRCMessageHandler handle : handlers) 
     131                for (IRCMessageListener handle : handlers) 
    132132                { 
    133133                        handle.reply(msg); 
  • lang/java/IRCKit/trunk/src/com/mac/tarchan/irc/client/IRCConsole.java

    r25815 r25884  
    1616import java.io.IOException; 
    1717import java.net.MalformedURLException; 
     18import java.util.Date; 
    1819import java.util.Formatter; 
    1920import java.util.Properties; 
     
    144145 
    145146        /** 
     147         * CommandPublisher 
     148         */ 
     149        class CommandPublisher implements Runnable 
     150        { 
     151                /** コマンド */ 
     152                protected String str; 
     153 
     154                /** 
     155                 * @param command コマンド 
     156                 */ 
     157                public CommandPublisher(String command) 
     158                { 
     159                        this.str = command; 
     160                } 
     161 
     162                /** 
     163                 *  
     164                 */ 
     165                public void run() 
     166                { 
     167                        // IRC ネットワークに送信 
     168                        if (str.startsWith("/")) 
     169                        { 
     170                                // コマンド 
     171                                irc.put("tokyo", str.substring(1)); 
     172                        } 
     173                        else 
     174                        { 
     175                                // メッセージ送信 
     176                                String groupName = "tokyo"; 
     177                                String channelName = "#javabreak"; 
     178                                String message = str; 
     179                                irc.privmsg(groupName, channelName, message); 
     180                        } 
     181                } 
     182        } 
     183 
     184        /** 
    146185         * コマンドを送信します。 
    147186         *  
     
    153192                appendLine(command); 
    154193 
    155                 // IRC ネットワークに送信 
    156                 if (command.startsWith("/")) 
    157                 { 
    158                         // コマンド 
    159                         irc.put("tokyo", command.substring(1)); 
    160                 } 
    161                 else 
    162                 { 
    163                         // メッセージ送信 
    164                 } 
    165194        } 
    166195 
     
    179208                        irc = new IRCClient(); 
    180209                        irc.setUseSystemProxies(true); 
    181                         irc.registerHandler(new IRCMessageHandler() 
     210                        irc.registerHandler(new IRCMessageAdapter() 
    182211                        { 
    183                                 public void reply(IRCMessage msg) 
     212                                /** エンコーディング */ 
     213                                String encoding = "ISO-2022-JP"; 
     214 
     215//                              @Override 
     216//                              public void reply(IRCMessage reply) 
     217//                              { 
     218//                                      super.reply(reply); 
     219//                                      appendLine(reply.getMessage(encoding)); 
     220//                              } 
     221 
     222                                /** 
     223                                 * @see com.mac.tarchan.irc.client.IRCMessageAdapter#welcome(com.mac.tarchan.irc.client.IRCMessage) 
     224                                 */ 
     225                                @Override 
     226                                public void welcome(IRCMessage reply) 
    184227                                { 
    185                                         // TODO メッセージを表示 
    186                                         String encoding = "ISO-2022-JP"; 
    187                                         String nick = msg.getNick(); 
    188                                         String text = msg.getTrailing(encoding); 
    189                                         formatter.format("(%s) %s" + NL, nick, text); 
    190                                         flush(); 
     228                                        appendLine(reply.getTrailing(encoding)); 
    191229                                } 
    192230 
    193                                 public void error(Exception e) 
     231                                /** 
     232                                 * @see com.mac.tarchan.irc.client.IRCMessageAdapter#ping(com.mac.tarchan.irc.client.IRCMessage) 
     233                                 */ 
     234                                @Override 
     235                                public void ping(IRCMessage reply) 
    194236                                { 
    195                                         // エラーを表示 
    196                                         e.printStackTrace(); 
     237                                        appendLine("PONG " + reply.getTrailing(encoding)); 
     238                                } 
     239 
     240                                /** 
     241                                 * @see com.mac.tarchan.irc.client.IRCMessageAdapter#privmsg(com.mac.tarchan.irc.client.IRCMessage) 
     242                                 */ 
     243                                @Override 
     244                                public void privmsg(IRCMessage reply) 
     245                                { 
     246                                        // メッセージを表示 
     247                                        Date date = new Date(reply.getWhen()); 
     248                                        String nick = reply.getNick(); 
     249                                        String text = reply.getTrailing(encoding); 
     250                                        String str = String.format("%tR (%s) %s", date, nick, text); 
     251                                        appendLine(str); 
    197252                                } 
    198253                        }); 
  • lang/java/IRCKit/trunk/src/com/mac/tarchan/irc/client/IRCMessageListener.java

    r25795 r25884  
    11/* 
    2  * IRCMessageHandler.java 
     2 * IRCMessageListener.java 
    33 * IRCKit 
    44 * 
     
    99 
    1010/** 
    11  * IRCMessageHandler 
     11 * IRCMessageListener 
    1212 *  
    1313 * @author tarchan 
    1414 */ 
    15 public interface IRCMessageHandler 
     15public interface IRCMessageListener 
    1616{ 
    1717        /** 
    18          * メッセージを処理します。 
     18         * リプライメッセージを受け取ります。 
    1919         *  
    20          * @param msg メッセージ 
     20         * @param reply リプライメッセージ 
    2121         */ 
    22         public void reply(IRCMessage msg); 
    23  
    24         /** 
    25          * 例外を処理します。 
    26          *  
    27          * @param e 例外 
    28          */ 
    29         public void error(Exception e); 
     22        public void reply(IRCMessage reply); 
    3023}