if (DropTarget.this.control == null || DropTarget.this.control.isDisposed() || DropTarget.this.control.isVisible()) return;  unregisterDropTarget();
if (DropTarget.this.control.isDisposed() || dragOverStart == 0) return; long time = System.currentTimeMillis(); int delay = DRAGOVER_HYSTERESIS; if (time < dragOverStart) { delay = (int)(dragOverStart - time); } else { int allowedOperations = dragOverEvent.operations; TransferData[] allowedTypes = dragOverEvent.dataTypes;  TransferData[] dataTypes = new TransferData[allowedTypes.length]; System.arraycopy(allowedTypes, 0, dataTypes, 0, dataTypes.length);  DNDEvent event = new DNDEvent(); event.widget = dragOverEvent.widget; event.x = dragOverEvent.x; event.y = dragOverEvent.y; event.time = (int)time; event.feedback = DND.FEEDBACK_SELECT; event.dataTypes = dataTypes; event.dataType = selectedDataType; event.operations = dragOverEvent.operations; event.detail  = selectedOperation;  try { notifyListeners(DND.DragOver, event); } catch (Throwable e) { event.dataType = null; event.detail  = DND.DROP_NONE; }  effect.show(event.feedback, event.x, event.y);  selectedDataType = null; if (event.dataType != null) { for (int i = 0; i < allowedTypes.length; i++) { if (allowedTypes[i].type == event.dataType.type) { selectedDataType = event.dataType; break;
						public void run() {							if (DropTarget.this.control == null || 							    DropTarget.this.control.isDisposed() || 							    DropTarget.this.control.isVisible()) return;												unregisterDropTarget();						}