Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 301276
Collapse All | Expand All

(-)js/org/eclipse/rwt/DNDSupport.js (+13 lines)
Lines 248-253 Link Here
248
      delete this._dropTargetEventQueue[ type ];
248
      delete this._dropTargetEventQueue[ type ];
249
    },
249
    },
250
    
250
    
251
    _setPropertyRetroactively : function( dropTarget, property, value ) {
252
      var wm = org.eclipse.swt.WidgetManager.getInstance();
253
      for( var type in this._dropTargetEventQueue ) {
254
        var event = this._dropTargetEventQueue[ type ];
255
        if( event[ "id" ] == wm.findIdByWidget( dropTarget ) ) {
256
          var eventName = event[ "eventName" ];
257
          event[ "param" ][ eventName + "." + property ] = value;
258
        }
259
      } 
260
    },
261
    
251
    _attachTropTargetEvents : function() {
262
    _attachTropTargetEvents : function() {
252
      var req = org.eclipse.swt.Request.getInstance();
263
      var req = org.eclipse.swt.Request.getInstance();
253
      var events = this._dropTargetEventQueue;
264
      var events = this._dropTargetEventQueue;
Lines 574-579 Link Here
574
        this._setAction( action, null );
585
        this._setAction( action, null );
575
        dndHandler._renderCursor();
586
        dndHandler._renderCursor();
576
      }
587
      }
588
      this._setPropertyRetroactively( widget, "operation", operation );
577
    },
589
    },
578
    
590
    
579
    /*
591
    /*
Lines 606-611 Link Here
606
      if( widget == this._currentDropTarget ) {
618
      if( widget == this._currentDropTarget ) {
607
        this._dataTypeOverwrite = type;
619
        this._dataTypeOverwrite = type;
608
      }
620
      }
621
      this._setPropertyRetroactively( widget, "dataType", type );
609
    }
622
    }
610
  
623
  
611
  }
624
  }
(-)js/org/eclipse/rwt/test/tests/DNDTest.js (+56 lines)
Lines 205-210 Link Here
205
      testUtil.flush();
205
      testUtil.flush();
206
    },
206
    },
207
207
208
    // See Bug 301276
209
    testSetPropertyRetroactively : function() {
210
      var testUtil = org.eclipse.rwt.test.fixture.TestUtil;
211
      var dndSupport = org.eclipse.rwt.DNDSupport.getInstance();
212
      var dndHandler = qx.event.handler.DragAndDropHandler.getInstance()
213
      var leftButton = qx.event.type.MouseEvent.buttons.left;
214
      // request uses SWT-like event-names: 
215
      var dragOver = "org.eclipse.swt.dnd.dragEnter";
216
      var dragMove = "org.eclipse.swt.dnd.dragOver";
217
      testUtil.prepareTimerUse();
218
      testUtil.initRequestLog();
219
      var source = this.createSource();
220
      var target = this.createTarget();
221
      var sourceNode = source._getTargetNode();
222
      var targetNode = target._getTargetNode();
223
      var doc = document.body;
224
      // drag
225
      testUtil.fakeMouseEventDOM( sourceNode, "mousedown", leftButton, 11, 11 );
226
      testUtil.clearRequestLog();
227
      testUtil.fakeMouseEventDOM( doc, "mousemove", leftButton, 25, 15 );
228
      // Over
229
      testUtil.fakeMouseEventDOM( targetNode, "mouseover", leftButton, 31, 15 );
230
      testUtil.fakeMouseEventDOM( targetNode, "mousemove", leftButton, 32, 15 );
231
      testUtil.forceTimerOnce();
232
      assertEquals( 2, testUtil.getRequestsSend() );
233
      var request = testUtil.getRequestLog()[ 1 ];      
234
      assertTrue( request.search( dragOver + "=w2" ) != -1 );
235
      assertTrue( request.search( dragOver + ".dataType=null" ) != -1 );
236
      assertTrue( request.search( dragOver + ".operation=move" ) != -1 );
237
      testUtil.clearTimerOnceLog();
238
      testUtil.clearRequestLog();
239
      // Move
240
      testUtil.fakeMouseEventDOM( targetNode, "mousemove", leftButton, 33, 15 );
241
      assertTrue( testUtil.getTimerOnceLog().length > 0 );
242
      // set properties
243
      dndSupport.setDataType( target, "76135" );
244
      dndSupport.setOperationOverwrite( target, "copy" );
245
      // send event:
246
      testUtil.forceTimerOnce();
247
      assertEquals( 1, testUtil.getRequestsSend() );
248
      var request = testUtil.getRequestLog()[ 0 ];
249
      assertTrue( request.search( dragMove + "=w2" ) != -1 );      
250
      assertTrue( request.search( dragMove + ".operation=copy" ) != -1 );
251
      assertTrue( request.search( dragMove + ".dataType=76135" ) != -1 );
252
      testUtil.clearTimerOnceLog();
253
      testUtil.clearRequestLog();
254
      dndSupport.cancel();
255
      dndSupport.deregisterDragSource( source );
256
      dndSupport.deregisterDropTarget( target );
257
      source.setParent( null );
258
      source.destroy();
259
      target.setParent( null );
260
      target.destroy();
261
      testUtil.flush();
262
    },
263
208
    // for Bug 299034
264
    // for Bug 299034
209
    testStopDropEventPropagation : function() {
265
    testStopDropEventPropagation : function() {
210
      var testUtil = org.eclipse.rwt.test.fixture.TestUtil;
266
      var testUtil = org.eclipse.rwt.test.fixture.TestUtil;

Return to bug 301276