@Override
  public void NewEvent(final CEvent e) {
    //
    if (e.IsEvent("CHANNEL")) {
      String cname = e.data[1];
      if (channeldata.containsKey(cname)) {
        //
        CChannelInfo i = channeldata.get(cname);
        i.setUsercount(Integer.parseInt(e.data[2]));
        i.setTopic(Misc.makeSentence(e.data, 3));
      } else {
        final CChannelInfo i =
            new CChannelInfo(e.data[1], Integer.parseInt(e.data[2]), Misc.makeSentence(e.data, 3));
        channeldata.put(cname, i);
        Runnable doWorkRunnable =
            new Runnable() {
              public void run() {
                channeltablemodel.AddChannel(i);
              }
            };
        SwingUtilities.invokeLater(doWorkRunnable);
      }

    } else if (e.data[0].equalsIgnoreCase("ENDOFCHANNELS") == true) {
      Runnable doWorkRunnable =
          new Runnable() {
            public void run() {
              channeltablemodel.fireTableDataChanged();
              ChanRefreshButton.setEnabled(true);
            }
          };
      SwingUtilities.invokeLater(doWorkRunnable);
    } else if (e.data[0].equalsIgnoreCase("LOGININFOEND") == true) {
      LM.protocol.SendTraffic("CHANNELS");
    }
  }