public Reader newConnectionReader(Reader newReader) {
   ((ObservableReader) reader).removeReaderListener(readerListener);
   ObservableReader debugReader = new ObservableReader(newReader);
   debugReader.addReaderListener(readerListener);
   reader = debugReader;
   return reader;
 }
 /** Stops debugging the connection. Removes any listener on the connection. */
 void cancel() {
   connection.removeConnectionListener(connListener);
   connection.removePacketListener(packetReaderListener);
   connection.removePacketSendingListener(packetWriterListener);
   ((ObservableReader) reader).removeReaderListener(readerListener);
   ((ObservableWriter) writer).removeWriterListener(writerListener);
   messagesTable = null;
 }
 /**
  * Notification that the root window is closing. Stop listening for received and transmitted
  * packets.
  *
  * @param evt the event that indicates that the root window is closing
  */
 public void rootWindowClosing(WindowEvent evt) {
   connection.removePacketListener(listener);
   ((ObservableReader) reader).removeReaderListener(readerListener);
   ((ObservableWriter) writer).removeWriterListener(writerListener);
 }