- public void setRootPane(Component rootPane) {
- final DragSourceListener dsl = new DragSourceListener() {
- @Override
- public void dropActionChanged(DragSourceDragEvent dsde) {
- }
- @Override
- public void dragOver(DragSourceDragEvent dsde) {
- }
- @Override
- public void dragExit(DragSourceEvent dse) {
- }
- @Override
- public void dragEnter(DragSourceDragEvent dsde) {
- }
- @Override
- public void dragDropEnd(DragSourceDropEvent dsde) {
- }
- };
- DragGestureListener dgl = new DragGestureListener() {
- @Override
- public void dragGestureRecognized(DragGestureEvent dge) {
- InputEvent ie = dge.getTriggerEvent();
- if (ie instanceof java.awt.event.MouseEvent) {
- java.awt.event.MouseEvent e = (java.awt.event.MouseEvent) ie;
- Point2D controlPos = AWTMouseEventAdapter.getControlPosition(e);
- MouseDragBegin event = new MouseDragBegin(NodeEventHandler.this,
- e.getWhen(), 0,
- AWTMouseEventAdapter.getButtonStatus(e),
- AWTMouseEventAdapter.getStateMask(e),
- AWTMouseEventAdapter.getMouseButton(e),
- // TODO: fix canvas position if necessary
- new Point2D.Double(),
- controlPos,
- controlPos,
- AWTMouseEventAdapter.getScreenPosition(e));
-
- // Send MouseDragBegin to the scenegraph and see
- // if anyone sets event.transferable to start DnD.
- handleMouseDragBeginEvent(event, EventTypes.MouseDragBegin);
- if (event.transferable != null) {
- ds.startDrag(dge, null, event.transferable, dsl);
- if (DEBUG_EVENTS)
- debug("dragGestureRecognized: startDrag " + event.transferable);
- }
- }
- }
- };
- ds.createDefaultDragGestureRecognizer(
- rootPane,
- DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK,
- dgl);
- ds.addDragSourceListener(dsl);
- }
-