private void fireSyntheticDragEvent(ActionEvent e) {
    Component component = myLatestDragEvent.getComponent();

    Point componentOnScreen = component.getLocationOnScreen();
    int xScreen = myLatestDragEvent.getXOnScreen();
    int yScreen = myLatestDragEvent.getYOnScreen();
    int x = xScreen - componentOnScreen.x;
    int y = yScreen - componentOnScreen.y;
    SyntheticDragEvent dragEvent = new SyntheticDragEvent(component,
                                                          myLatestDragEvent.getID(), e.getWhen(),
                                                          myLatestDragEvent.getModifiers(),
                                                          x, y, xScreen, yScreen,
                                                          myLatestDragEvent.getClickCount(),
                                                          myLatestDragEvent.isPopupTrigger(),
                                                          myLatestDragEvent.getButton());

    for (MouseMotionListener l : component.getMouseMotionListeners()) {
      l.mouseDragged(dragEvent);
    }
  }
private void fireSyntheticDragEvent(ActionEvent e)