root.addComponent(component);
Integer left = ed.getAbsoluteLeft();
Integer top = ed.getAbsoluteTop();
MouseEventDetails eventDetails = ed.getMouseEvent();
int clientX = eventDetails.getClientX();
int clientY = eventDetails.getClientY();
try {
root.getPosition(component).setTopValue(
Float.valueOf(clientY - top));
root.getPosition(component).setLeftValue(
Float.valueOf(clientX - left));
} catch (Exception e) {
}
} else {
// drag started and ended inside the this Pane
MouseEventDetails start = ((WrapperTransferable) event
.getTransferable()).getMouseDownEvent();
MouseEventDetails eventDetails = ed.getMouseEvent();
int deltaX = eventDetails.getClientX() - start.getClientX();
int deltaY = eventDetails.getClientY() - start.getClientY();
ComponentPosition p = root.getPosition(component);
p.setTopValue(p.getTopValue() + deltaY);
p.setLeftValue(p.getLeftValue() + deltaX);