*/
    public void mouseDragged(MouseEvent e) {
      if (dragStarted) {
        e.consume();
        return;
      }
      if (dndArmedEvent == null) {
        return;
      }

      int dx = Math.abs(e.getX() - dndArmedEvent.getX());
      int dy = Math.abs(e.getY() - dndArmedEvent.getY());
      if ((dx > motionThreshold) || (dy > motionThreshold)) {
        TransferHandler th = JoshText.this.getTransferHandler();
        int act = e.isControlDown()? TransferHandler.COPY : TransferHandler.MOVE;
        dragStarted = true;
        th.exportAsDrag(JoshText.this, dndArmedEvent, act);
        dndArmedEvent = null;
      }
      e.consume();
    }