Index: /trunk/autoquest-plugin-jfc/src/main/java/de/ugoe/cs/autoquest/plugin/jfc/commands/CMDgenerateJacaretoReplay.java
===================================================================
--- /trunk/autoquest-plugin-jfc/src/main/java/de/ugoe/cs/autoquest/plugin/jfc/commands/CMDgenerateJacaretoReplay.java	(revision 1837)
+++ /trunk/autoquest-plugin-jfc/src/main/java/de/ugoe/cs/autoquest/plugin/jfc/commands/CMDgenerateJacaretoReplay.java	(revision 1838)
@@ -267,17 +267,8 @@
 
                 if (event.getType() instanceof MouseButtonDown) {
-                    commitFocusEvent();
-                    lastKeySequenceEvent = null;
-
-                    lastMouseClickEvent = new StructureNode("MouseClick");
-                    lastMouseDownTarget = event.getTarget();
-                    writeMouseClickEvent(writer, event, (JFCGUIElement) event.getTarget(),
-                                         EVENT_DURATION, 501);
+                    handleMouseDown(writer, event, "MouseClick");
                 }
                 else if (event.getType() instanceof MouseButtonUp) {
-                    lastKeySequenceEvent = null;
-
-                    writeMouseClickEvent(writer, event, (JFCGUIElement) event.getTarget(),
-                                         EVENT_DURATION, 502);
+                    handleMouseUp(writer, event);
                 }
                 else if (event.getType() instanceof MouseDoubleClick) {
@@ -379,4 +370,7 @@
                     writeFocusChangeEvent(writer, event);
                 }
+                else if (event.getType() instanceof MouseDragAndDrop) {
+                    handleMouseDragAndDrop(writer, event);
+                }
                 else if (event.getType() instanceof KeyPressed) {
                     handleKeyPressed(writer, event);
@@ -388,6 +382,42 @@
                     handleTextInput(writer, event);
                 }
-            }
-        }
+                else {
+                    Console.traceln(Level.WARNING, "No handler for event \"" + event +
+                        "\". Skipped.");
+                }
+            }
+        }
+    }
+
+    private void handleMouseDown(BufferedWriter writer, Event event, String structureName)
+        throws IOException
+    {
+        commitFocusEvent();
+        lastKeySequenceEvent = null;
+
+        lastMouseClickEvent = new StructureNode(structureName);
+        lastMouseDownTarget = event.getTarget();
+        writeMouseClickEvent(writer, event, (JFCGUIElement) event.getTarget(), EVENT_DURATION, 501);
+    }
+
+    private void handleMouseUp(BufferedWriter writer, Event event) throws IOException {
+        lastKeySequenceEvent = null;
+
+        writeMouseClickEvent(writer, event, (JFCGUIElement) event.getTarget(), EVENT_DURATION, 502);
+    }
+
+    private void handleMouseDragAndDrop(BufferedWriter writer, Event event) throws IOException {
+        commitFocusEvent();
+
+        MouseDragAndDrop dragEvent = (MouseDragAndDrop) event.getType();
+        lastMouseClickEvent = new StructureNode("MouseDrag");
+        lastMouseDownTarget = null;
+
+        writeMouseClickEvent(writer, event, (JFCGUIElement) event.getTarget(), EVENT_DURATION,
+                             dragEvent.getXStart(), dragEvent.getYStart(), 501);
+        writeMouseClickEvent(writer, event, (JFCGUIElement) event.getTarget(), EVENT_DURATION,
+                             dragEvent.getX(), dragEvent.getY(), 506);
+
+        structure.children.add(lastMouseClickEvent);
     }
 
@@ -642,4 +672,16 @@
     {
         MouseButtonInteraction info = (MouseButtonInteraction) event.getType();
+        writeMouseClickEvent(writer, event, target, duration, info.getX(), info.getY(), jacId);
+    }
+
+    private void writeMouseClickEvent(BufferedWriter writer,
+                                      Event event,
+                                      JFCGUIElement target,
+                                      int duration,
+                                      int x,
+                                      int y,
+                                      int jacId) throws IOException
+    {
+        MouseButtonInteraction info = (MouseButtonInteraction) event.getType();
         int clickCount = event.getType() instanceof MouseDoubleClick ? 2 : 1;
 
@@ -664,6 +706,6 @@
         writeLine(writer,
             "<MouseInfo "
-            + "xPosition=\"" + info.getX() + "\" "
-            + "yPosition=\"" + info.getY() + "\" "
+            + "xPosition=\"" + x + "\" "
+            + "yPosition=\"" + y + "\" "
             + "rootX=\"0\" "
             + "rootY=\"0\" "
