code: private IStatus performResourceMove(CommonDropAdapter dropAdapter,
  			IResource[] sources) {
  		MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1,
  				WorkbenchNavigatorMessages.DropAdapter_problemsMoving, null);
  		mergeStatus(problems, validateTarget(dropAdapter.getCurrentTarget(),
  				dropAdapter.getCurrentTransfer(), dropAdapter
  						.getCurrentOperation()));
  
  		IContainer target = null;
  
  		if (dropAdapter.getCurrentTarget() instanceof IVdmContainer) {
  			target = ((IVdmContainer) dropAdapter.getCurrentTarget())
  					.getContainer();
  		} else {
  			target = getActualTarget((IResource) dropAdapter.getCurrentTarget());
  		}
  
  		ReadOnlyStateChecker checker = new ReadOnlyStateChecker(getShell(),
  				WorkbenchNavigatorMessages.MoveResourceAction_title,
  				WorkbenchNavigatorMessages.MoveResourceAction_checkMoveMessage);
  		sources = checker.checkReadOnlyResources(sources);
  		MoveFilesAndFoldersOperation operation = new MoveFilesAndFoldersOperation(
  				getShell());
  		operation.copyResources(sources, target);
  
  		return problems;
  	}
docs: Performs a resource move