src/macosx/classes/sun/lwawt/macosx/CDragSourceContextPeer.java

Print this page




  81         fDragImage = dragImage;
  82         fDragImageOffset = dragImageOffset;
  83 
  84         super.startDrag(dsc, cursor, dragImage, dragImageOffset);
  85     }
  86 
  87     protected void startDrag(Transferable transferable, long[] formats, Map formatMap) {
  88         DragGestureEvent trigger = getTrigger();
  89         InputEvent         triggerEvent = trigger.getTriggerEvent();
  90 
  91         Point dragOrigin = trigger.getDragOrigin();
  92         int extModifiers = (triggerEvent.getModifiers() | triggerEvent.getModifiersEx());
  93         long timestamp   = triggerEvent.getWhen();
  94         int clickCount   = ((triggerEvent instanceof MouseEvent) ? (((MouseEvent) triggerEvent).getClickCount()) : 1);
  95 
  96         // Get drag source component and its peer:
  97         Component component = trigger.getComponent();
  98         Point componentOffset = new Point();
  99         ComponentPeer peer = component.getPeer();
 100 

 101         // For a lightweight component traverse up the hierarchy to the first heavyweight
 102         // which will be used as the ComponentModel for the native drag source.
 103         if (component.isLightweight()) {
 104             Point loc = component.getLocation();
 105             componentOffset.translate(loc.x, loc.y);
 106 
 107             for (Component parent = component.getParent(); parent != null; parent = parent.getParent()) {
 108                 if (parent.isLightweight() == false) {
 109                     peer = parent.getPeer();
 110                     break;
 111                 }
 112 
 113                 loc = parent.getLocation();
 114                 componentOffset.translate(loc.x, loc.y);
 115             }
 116         }
 117 
 118         // Make sure the drop target is a ComponentModel:
 119         if (!(peer instanceof LWComponentPeer))
 120             throw new IllegalArgumentException("DragSource's peer must be a ComponentModel.");
 121 
 122         // Get model pointer (CButton.m and such) and its native peer:
 123         LWComponentPeer model = (LWComponentPeer) peer;
 124         CPlatformWindow platformWindow = (CPlatformWindow) model.getPlatformWindow();
 125         long nativeWindowPtr = platformWindow.getNSWindowPtr();
 126 
 127         // Get drag cursor:
 128         Cursor cursor = this.getCursor();




  81         fDragImage = dragImage;
  82         fDragImageOffset = dragImageOffset;
  83 
  84         super.startDrag(dsc, cursor, dragImage, dragImageOffset);
  85     }
  86 
  87     protected void startDrag(Transferable transferable, long[] formats, Map formatMap) {
  88         DragGestureEvent trigger = getTrigger();
  89         InputEvent         triggerEvent = trigger.getTriggerEvent();
  90 
  91         Point dragOrigin = trigger.getDragOrigin();
  92         int extModifiers = (triggerEvent.getModifiers() | triggerEvent.getModifiersEx());
  93         long timestamp   = triggerEvent.getWhen();
  94         int clickCount   = ((triggerEvent instanceof MouseEvent) ? (((MouseEvent) triggerEvent).getClickCount()) : 1);
  95 
  96         // Get drag source component and its peer:
  97         Component component = trigger.getComponent();
  98         Point componentOffset = new Point();
  99         ComponentPeer peer = component.getPeer();
 100 
 101 
 102         // For a lightweight component traverse up the hierarchy to the first heavyweight
 103         // which will be used as the ComponentModel for the native drag source.
 104         if (!(component instanceof Window)) {
 105             Point loc = component.getLocation();
 106             componentOffset.translate(loc.x, loc.y);
 107 
 108             for (Component parent = component.getParent(); parent != null; parent = parent.getParent()) {
 109                 if (parent instanceof Window) {
 110                     peer = parent.getPeer();
 111                     break;
 112                 }
 113 
 114                 loc = parent.getLocation();
 115                 componentOffset.translate(loc.x, loc.y);
 116             }
 117        }
 118 
 119         // Make sure the drop target is a ComponentModel:
 120         if (!(peer instanceof LWComponentPeer))
 121             throw new IllegalArgumentException("DragSource's peer must be a ComponentModel.");
 122 
 123         // Get model pointer (CButton.m and such) and its native peer:
 124         LWComponentPeer model = (LWComponentPeer) peer;
 125         CPlatformWindow platformWindow = (CPlatformWindow) model.getPlatformWindow();
 126         long nativeWindowPtr = platformWindow.getNSWindowPtr();
 127 
 128         // Get drag cursor:
 129         Cursor cursor = this.getCursor();