/** * get the list of good command by taking in account if this is a change order or a drop into * * @param target the target object of the drop * @return the list of command */ public List<Command> getDrop(Object target) { CommonDropAdapter dropAdapter = getCommonDropAdapter(); List<Command> commandList = new ArrayList<Command>(); switch (dropAdapter.getCurrentOperation()) { case DND.DROP_MOVE: if (dropAdapter.getCurrentLocation() == ViewerDropAdapter.LOCATION_BEFORE) { if (target instanceof ModelElementItem) { commandList = getOrderChangeCommand(target, true); } } else if (dropAdapter.getCurrentLocation() == ViewerDropAdapter.LOCATION_AFTER) { if (target instanceof ModelElementItem) { commandList = getOrderChangeCommand(target, false); } } else if (dropAdapter.getCurrentLocation() == ViewerDropAdapter.LOCATION_ON) { if (target instanceof ModelElementItem) { commandList = getDropIntoCommand(target, null); } if (target instanceof LinkItem) { commandList = getDropIntoCommand( ((LinkItem) target).getParent(), ((LinkItem) target).getReference()); } } else if (dropAdapter.getCurrentLocation() == ViewerDropAdapter.LOCATION_NONE) { } break; } return commandList; }
@Override public IStatus handleDrop( final CommonDropAdapter dropAdapter, final DropTargetEvent dropTargetEvent, final Object target) { // get the source data final TransferData td = dropAdapter.getCurrentTransfer(); final ISelection sel = (ISelection) LocalSelectionTransfer.getTransfer().nativeToJava(td); final TreeSelection s = (TreeSelection) sel; try { GlobalParameters.setSelection(s); } catch (final WranglerException e1) { e1.printStackTrace(); } // get the target data String moduleName; IFile file; if (target instanceof IFile) { file = (IFile) target; } else { file = (IFile) ((IErlElement) target).getResource(); } moduleName = file.getName(); moduleName = moduleName.substring(0, moduleName.lastIndexOf(".")); final MoveFunctionRefactoring refactoring = new MoveFunctionRefactoring(); refactoring.setUserInput(moduleName); final RefactoringWizard wizard = new DefaultWranglerRefactoringWizard( refactoring, RefactoringWizard.DIALOG_BASED_USER_INTERFACE, new ArrayList<WranglerPage>()); final Shell shell = PlatformUI.getWorkbench().getDisplay().getActiveShell(); final RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(wizard); try { op.run(shell, refactoring.getName()); } catch (final Exception e) { e.printStackTrace(); } System.out.print("hand"); return Status.OK_STATUS; }