下面列出了怎么用org.eclipse.ui.ide.undo.MoveResourcesOperation的API类实例代码及写法,或者点击链接到github查看源代码。
private IProject renameProjectTo( IProject project, String name ) throws ExecutionException {
IProject result = project.getWorkspace().getRoot().getProject( name );
IPath path = result.getFullPath();
AbstractOperation operation = new MoveResourcesOperation( project, path, "Rename project" );
operation.execute( new NullProgressMonitor(), null );
renamedProjects.add( result );
return result;
}
@Override
protected IRunnableWithProgress createOperation(final IStatus[] errorStatus) {
return monitor -> {
final IResource[] resources = getActionResources().toArray(new IResource[getActionResources().size()]);
// Rename is only valid for a single resource. This has already
// been validated.
if (resources.length == 1) {
// check for overwrite
final IWorkspaceRoot workspaceRoot = resources[0].getWorkspace().getRoot();
final IResource newResource = workspaceRoot.findMember(newPath);
boolean go = true;
if (newResource != null) {
go = checkOverwrite(WorkbenchHelper.getShell(), newResource);
}
if (go) {
final MoveResourcesOperation op = new MoveResourcesOperation(resources[0], newPath,
IDEWorkbenchMessages.RenameResourceAction_operationTitle);
op.setModelProviderIds(getModelProviderIds());
try {
PlatformUI.getWorkbench().getOperationSupport().getOperationHistory().execute(op, monitor,
WorkspaceUndoUtil.getUIInfoAdapter(WorkbenchHelper.getShell()));
} catch (final ExecutionException e) {
if (e.getCause() instanceof CoreException) {
errorStatus[0] = ((CoreException) e.getCause()).getStatus();
} else {
errorStatus[0] = new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, getProblemsMessage(), e);
}
}
}
}
};
}
protected IRunnableWithProgress createOperation(final IStatus[] errorStatus) {
return new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) {
IResource[] resources = (IResource[]) getActionResources()
.toArray(new IResource[getActionResources().size()]);
// Rename is only valid for a single resource. This has already
// been validated.
if (resources.length == 1) {
// check for overwrite
IWorkspaceRoot workspaceRoot = resources[0].getWorkspace()
.getRoot();
IResource newResource = workspaceRoot.findMember(newPath);
boolean go = true;
if (newResource != null) {
go = checkOverwrite(shellProvider.getShell(), newResource);
}
if (go) {
MoveResourcesOperation op = new MoveResourcesOperation(
resources[0],
newPath,
IDEWorkbenchMessages.RenameResourceAction_operationTitle);
op.setModelProviderIds(getModelProviderIds());
try {
PlatformUI
.getWorkbench()
.getOperationSupport()
.getOperationHistory()
.execute(
op,
monitor,
WorkspaceUndoUtil
.getUIInfoAdapter(shellProvider.getShell()));
} catch (ExecutionException e) {
if (e.getCause() instanceof CoreException) {
errorStatus[0] = ((CoreException) e.getCause())
.getStatus();
} else {
errorStatus[0] = new Status(IStatus.ERROR,
PlatformUI.PLUGIN_ID,
getProblemsMessage(), e);
}
}
}
}
}
};
}
protected IRunnableWithProgress createOperation(final IStatus[] errorStatus) {
return new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) {
IResource[] resources = (IResource[]) getActionResources()
.toArray(new IResource[getActionResources().size()]);
// Rename is only valid for a single resource. This has already
// been validated.
if (resources.length == 1) {
// check for overwrite
IWorkspaceRoot workspaceRoot = resources[0].getWorkspace()
.getRoot();
IResource newResource = workspaceRoot.findMember(newPath);
boolean go = true;
if (newResource != null) {
go = checkOverwrite(shellProvider.getShell(), newResource);
}
if (go) {
MoveResourcesOperation op = new MoveResourcesOperation(
resources[0],
newPath,
IDEWorkbenchMessages.RenameResourceAction_operationTitle);
op.setModelProviderIds(getModelProviderIds());
try {
PlatformUI
.getWorkbench()
.getOperationSupport()
.getOperationHistory()
.execute(
op,
monitor,
WorkspaceUndoUtil
.getUIInfoAdapter(shellProvider.getShell()));
} catch (ExecutionException e) {
if (e.getCause() instanceof CoreException) {
errorStatus[0] = ((CoreException) e.getCause())
.getStatus();
} else {
errorStatus[0] = new Status(IStatus.ERROR,
PlatformUI.PLUGIN_ID,
getProblemsMessage(), e);
}
}
}
}
}
};
}