public IStatus handleDrop(CommonDropAdapter dropAdapter, DropTargetEvent dropTargetEvent, Object target) { if (LocalSelectionTransfer.getInstance().isSupportedType( dropAdapter.getCurrentTransfer())) { try { switch (dropAdapter.getCurrentOperation()) { case (DND.DROP_COPY): handleDropCopy(target); break; case (DND.DROP_MOVE): handleDropMove(target); break; } } catch (ConnectionProfileException e) { e.printStackTrace(); } catch (CoreException e) { e.printStackTrace(); } } return Status.CANCEL_STATUS; }
/** * Performs a drop using the FileTransfer transfer type. */ private IStatus performFileDrop(final CommonDropAdapter anAdapter, Object data) { final int currentOperation = anAdapter.getCurrentOperation(); MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 0, WorkbenchNavigatorMessages.DropAdapter_problemImporting, null); mergeStatus(problems, validateTarget(anAdapter.getCurrentTarget(), anAdapter .getCurrentTransfer(), currentOperation)); final IContainer target = getActualTarget((IResource) anAdapter .getCurrentTarget()); final String[] names = (String[]) data; // Run the import operation asynchronously. // Otherwise the drag source (e.g., Windows Explorer) will be blocked // while the operation executes. Fixes bug 16478. Display.getCurrent().asyncExec(() -> { getShell().forceActive(); new CopyFilesAndFoldersOperation(getShell()).copyOrLinkFiles(names, target, currentOperation); }); return problems; }
/** * <p> * Adds DND support to the Navigator. Uses hooks into the extensible * framework for DND. * </p> * <p> * By default, the following Transfer types are supported: * <ul> * <li>LocalSelectionTransfer.getInstance(), * <li>PluginTransfer.getInstance() * </ul> * </p> * * @see CommonDragAdapter * @see CommonDropAdapter */ protected void initDragAndDrop() { /* Handle Drag and Drop */ int operations = DND.DROP_COPY | DND.DROP_MOVE; CommonDragAdapter dragAdapter = new CommonDragAdapter(contentService, this); addDragSupport(operations, dragAdapter.getSupportedDragTransfers(), dragAdapter); CommonDropAdapter dropAdapter = new CommonDropAdapter(contentService, this); addDropSupport(operations, dropAdapter.getSupportedDropTransfers(), dropAdapter); }
public void drop(DropTargetEvent event) { if (PluginTransfer.getInstance().isSupportedType(event.currentDataType)) { super.drop(event); } else { Object target = getCurrentTarget() != null ? getCurrentTarget() : getViewer().getInput(); CommonDropAdapterAssistant[] assistants = dndService .findCommonDropAdapterAssistants(target, getCurrentTransfer()); IStatus valid = null; for (int i = 0; i < assistants.length; i++) { try { valid = assistants[i].validateDrop(getCurrentTarget(), getCurrentOperation(), getCurrentTransfer()); if (valid != null && valid.isOK()) { assistants[i].handleDrop(this, event, getCurrentTarget()); return; } } catch (Throwable t) { NavigatorPlugin.logError(0, t.getMessage(), t); } } } }
} else { if (handleValidateCopy(target) != DND.DROP_NONE) { getCommonDropAdapter().overrideOperation(DND.DROP_COPY); result= Status.OK_STATUS; } else {
} else { if (handleValidateCopy(target) != DND.DROP_NONE) { getCommonDropAdapter().overrideOperation(DND.DROP_COPY); result= Status.OK_STATUS; } else {
TransferData currentTransfer = aDropAdapter.getCurrentTransfer(); if (LocalSelectionTransfer.getTransfer().isSupportedType( currentTransfer)) { status = performFileDrop(aDropAdapter, aDropTargetEvent.data); } else if (resources != null && resources.length > 0) { if ((aDropAdapter.getCurrentOperation() == DND.DROP_COPY) || (aDropAdapter.getCurrentOperation() == DND.DROP_LINK)) { if (Policy.DEBUG_DND) { System.out
MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1, WorkbenchNavigatorMessages.DropAdapter_problemsMoving, null); mergeStatus(problems, validateTarget(dropAdapter.getCurrentTarget(), dropAdapter.getCurrentTransfer(), dropAdapter.getCurrentOperation())); IContainer target = getActualTarget((IResource) dropAdapter.getCurrentTarget()); ImportTypeDialog dialog = new ImportTypeDialog(getShell(), dropAdapter.getCurrentOperation(), sources, target); dialog.setResource(target); if (dialog.open() == Window.OK) {
@Override public IStatus handleDrop(CommonDropAdapter dropAdapter, DropTargetEvent dropTargetEvent, Object target) { int currentOperation= dropAdapter.getCurrentOperation(); if (LocalSelectionTransfer.getInstance().isSupportedType(dropAdapter.getCurrentTransfer())) { try { target= getActualTarget(target); } else if (FileTransfer.getInstance().isSupportedType(dropAdapter.getCurrentTransfer())) { try { final IContainer targetContainer= getTargetContainer(target); final Object data= FileTransfer.getInstance().nativeToJava(dropAdapter.getCurrentTransfer()); new CopyFilesAndFoldersOperation(getShell()).copyOrLinkFiles((String[])data, targetContainer, currentOperation); } catch (JavaModelException e) {
MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1, WorkbenchNavigatorMessages.DropAdapter_problemsMoving, null); mergeStatus(problems, validateTarget(dropAdapter.getCurrentTarget(), dropAdapter.getCurrentTransfer(), dropAdapter.getCurrentOperation())); IContainer target = getActualTarget((IResource) dropAdapter.getCurrentTarget());
public IStatus handleDrop(CommonDropAdapter dropAdapter, DropTargetEvent dropTargetEvent, Object target) { if (LocalSelectionTransfer.getInstance().isSupportedType(dropAdapter.getCurrentTransfer())) { try { switch (dropAdapter.getCurrentOperation()) { case DND.DROP_MOVE : handleDropMove(target); } else if (FileTransfer.getInstance().isSupportedType(dropAdapter.getCurrentTransfer())) { try { final Object data = FileTransfer.getInstance().nativeToJava(dropAdapter.getCurrentTransfer()); if (!(data instanceof String[])) return Status.CANCEL_STATUS;
@Override public IStatus handleDrop(CommonDropAdapter dropAdapter, DropTargetEvent dropTargetEvent, Object target) { int currentOperation= dropAdapter.getCurrentOperation(); if (LocalSelectionTransfer.getInstance().isSupportedType(dropAdapter.getCurrentTransfer())) { try { target= getActualTarget(target); } else if (FileTransfer.getInstance().isSupportedType(dropAdapter.getCurrentTransfer())) { try { final IContainer targetContainer= getTargetContainer(target); final Object data= FileTransfer.getInstance().nativeToJava(dropAdapter.getCurrentTransfer()); new CopyFilesAndFoldersOperation(getShell()).copyOrLinkFiles((String[])data, targetContainer, currentOperation); } catch (JavaModelException e) {