List of usage examples for org.eclipse.jface.util TransferDropTargetListener isEnabled
boolean isEnabled(DropTargetEvent event);
true if this listener can handle the drop based on the given DropTargetEvent. From source file:descent.internal.ui.dnd.DelegatingDropAdapter.java
License:Open Source License
/** * Updates the current listener to one that can handle the drop. There can * be many listeners and each listener may be able to handle many * <code>TransferData</code> types. The first listener found that can * handle a drop of one of the given <code>TransferData</code> types will * be selected. If no listener can handle the drag operation the * <code>event.detail</code> field is set to <code>DND.DROP_NONE</code> * to indicate an invalid drop./*from w w w . ja v a 2 s . c om*/ * * @param event the drop target event */ private void updateCurrentListener(DropTargetEvent event) { int originalDetail = event.detail; // Revert the detail to the "original" drop type that the User // indicated. This is necessary because the previous listener // may have changed the detail to something other than what the // user indicated. event.detail = fOriginalDropType; for (int i = 0; i < fListeners.length; i++) { TransferDropTargetListener listener = fListeners[i]; TransferData dataType = getSupportedTransferType(event.dataTypes, listener); if (dataType != null) { TransferData originalDataType = event.currentDataType; // set the data type supported by the drop listener event.currentDataType = dataType; if (listener.isEnabled(event)) { // if the listener stays the same, set its previously // determined // event detail if (!setCurrentListener(listener, event)) event.detail = originalDetail; return; } else { event.currentDataType = originalDataType; } } } setCurrentListener(null, event); event.detail = DND.DROP_NONE; }
From source file:net.sf.eclipsensis.installoptions.editor.InstallOptionsGraphicalViewer.java
License:Open Source License
@Override public void addDropTargetListener(final TransferDropTargetListener listener) { if (listener.getTransfer() instanceof TemplateTransfer) { super.addDropTargetListener(new TransferDropTargetListener() { public void dragEnter(DropTargetEvent event) { listener.dragEnter(event); }/*from ww w .j a v a 2 s . co m*/ public void dragLeave(DropTargetEvent event) { listener.dragLeave(event); } public void dragOperationChanged(DropTargetEvent event) { listener.dragOperationChanged(event); } public void dragOver(DropTargetEvent event) { listener.dragOver(event); } public void drop(DropTargetEvent event) { listener.drop(event); } public void dropAccept(DropTargetEvent event) { listener.dropAccept(event); } public Transfer getTransfer() { return InstallOptionsTemplateTransfer.INSTANCE; } public boolean isEnabled(DropTargetEvent event) { return listener.isEnabled(event); } }); } else { super.addDropTargetListener(listener); } }
From source file:org.eclipse.cdt.internal.ui.dnd.DelegatingDropAdapter.java
License:Open Source License
/** * Updates the current listener to one that can handle the drop. There can * be many listeners and each listener may be able to handle many * <code>TransferData</code> types. The first listener found that can * handle a drop of one of the given <code>TransferData</code> types will * be selected. If no listener can handle the drag operation the * <code>event.detail</code> field is set to <code>DND.DROP_NONE</code> * to indicate an invalid drop.//from www. ja v a2 s . c o m * * @param event the drop target event */ private void updateCurrentListener(DropTargetEvent event) { int originalDetail = event.detail; // Revert the detail to the "original" drop type that the User // indicated. This is necessary because the previous listener // may have changed the detail to something other than what the // user indicated. event.detail = fOriginalDropType; for (int i = 0; i < fListeners.length; i++) { TransferDropTargetListener listener = fListeners[i]; TransferData dataType = getSupportedTransferType(event.dataTypes, listener); if (dataType != null) { TransferData originalDataType = event.currentDataType; // set the data type supported by the drop listener event.currentDataType = dataType; if (listener.isEnabled(event)) { // if the listener stays the same, set its previously // determined // event detail if (!setCurrentListener(listener, event)) event.detail = originalDetail; return; } event.currentDataType = originalDataType; } } setCurrentListener(null, event); event.detail = DND.DROP_NONE; }