use of org.eclipse.core.runtime.SubProgressMonitor in project che by eclipse.
the class FolderUndoState method createExistentResourceFromHandle.
public void createExistentResourceFromHandle(IResource resource, IProgressMonitor monitor) throws CoreException {
Assert.isLegal(resource instanceof IFolder);
if (resource.exists()) {
return;
}
IFolder folderHandle = (IFolder) resource;
try {
//$NON-NLS-1$
monitor.beginTask("", 200);
monitor.setTaskName(RefactoringCoreMessages.FolderDescription_NewFolderProgress);
if (monitor.isCanceled()) {
throw new OperationCanceledException();
}
if (location != null) {
folderHandle.createLink(location, IResource.ALLOW_MISSING_LOCAL, new SubProgressMonitor(monitor, 100));
} else {
folderHandle.create(false, true, new SubProgressMonitor(monitor, 100));
}
if (monitor.isCanceled()) {
throw new OperationCanceledException();
}
createChildResources(folderHandle, monitor, 100);
} finally {
monitor.done();
}
}
use of org.eclipse.core.runtime.SubProgressMonitor in project che by eclipse.
the class ProjectUndoState method createExistentResourceFromHandle.
public void createExistentResourceFromHandle(IResource resource, IProgressMonitor monitor) throws CoreException {
Assert.isLegal(resource instanceof IProject);
if (resource.exists()) {
return;
}
IProject projectHandle = (IProject) resource;
//$NON-NLS-1$
monitor.beginTask("", 200);
monitor.setTaskName(RefactoringCoreMessages.FolderDescription_NewFolderProgress);
if (projectDescription == null) {
projectHandle.create(new SubProgressMonitor(monitor, 100));
} else {
projectHandle.create(projectDescription, new SubProgressMonitor(monitor, 100));
}
if (monitor.isCanceled()) {
throw new OperationCanceledException();
}
if (openOnCreate) {
projectHandle.open(IResource.NONE, new SubProgressMonitor(monitor, 100));
}
monitor.done();
}
use of org.eclipse.core.runtime.SubProgressMonitor in project che by eclipse.
the class ProjectDescription method createExistentResourceFromHandle.
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.internal.ide.undo.ResourceDescription#createExistentResourceFromHandle(org.eclipse.core.resources.IResource,
* org.eclipse.core.runtime.IProgressMonitor)
*/
public void createExistentResourceFromHandle(IResource resource, IProgressMonitor monitor) throws CoreException {
Assert.isLegal(resource instanceof IProject);
if (resource.exists()) {
return;
}
IProject projectHandle = (IProject) resource;
//$NON-NLS-1$
monitor.beginTask("", 200);
monitor.setTaskName(UndoMessages.FolderDescription_NewFolderProgress);
if (projectDescription == null) {
projectHandle.create(new SubProgressMonitor(monitor, 100));
} else {
projectHandle.create(projectDescription, new SubProgressMonitor(monitor, 100));
}
if (monitor.isCanceled()) {
throw new OperationCanceledException();
}
if (openOnCreate) {
projectHandle.open(IResource.NONE, new SubProgressMonitor(monitor, 100));
}
monitor.done();
}
use of org.eclipse.core.runtime.SubProgressMonitor in project che by eclipse.
the class UndoCompilationUnitChange method perform.
/**
* {@inheritDoc}
*/
public Change perform(IProgressMonitor pm) throws CoreException {
//$NON-NLS-1$
pm.beginTask("", 2);
fCUnit.becomeWorkingCopy(new SubProgressMonitor(pm, 1));
try {
return super.perform(new SubProgressMonitor(pm, 1));
} finally {
fCUnit.discardWorkingCopy();
}
}
use of org.eclipse.core.runtime.SubProgressMonitor in project che by eclipse.
the class InferTypeArgumentsRefactoring method checkFinalConditions.
/*
* @see org.eclipse.ltk.core.refactoring.Refactoring#checkFinalConditions(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
public RefactoringStatus checkFinalConditions(final IProgressMonitor pm) throws CoreException, OperationCanceledException {
HashMap<IJavaProject, ArrayList<IJavaElement>> projectsToElements = getJavaElementsPerProject(fElements);
//$NON-NLS-1$
pm.beginTask("", projectsToElements.size() + 2);
final RefactoringStatus result = new RefactoringStatus();
try {
fTCModel = new InferTypeArgumentsTCModel();
final InferTypeArgumentsConstraintCreator unitCollector = new InferTypeArgumentsConstraintCreator(fTCModel, fAssumeCloneReturnsSameType);
for (Iterator<Entry<IJavaProject, ArrayList<IJavaElement>>> iter = projectsToElements.entrySet().iterator(); iter.hasNext(); ) {
Entry<IJavaProject, ArrayList<IJavaElement>> entry = iter.next();
IJavaProject project = entry.getKey();
ArrayList<IJavaElement> javaElementsList = entry.getValue();
IJavaElement[] javaElements = javaElementsList.toArray(new IJavaElement[javaElementsList.size()]);
List<ICompilationUnit> cus = Arrays.asList(JavaModelUtil.getAllCompilationUnits(javaElements));
int batchSize = 150;
int batches = ((cus.size() - 1) / batchSize) + 1;
SubProgressMonitor projectMonitor = new SubProgressMonitor(pm, 1);
//$NON-NLS-1$
projectMonitor.beginTask("", batches);
projectMonitor.setTaskName(RefactoringCoreMessages.InferTypeArgumentsRefactoring_building);
for (int i = 0; i < batches; i++) {
List<ICompilationUnit> batch = cus.subList(i * batchSize, Math.min(cus.size(), (i + 1) * batchSize));
ICompilationUnit[] batchCus = batch.toArray(new ICompilationUnit[batch.size()]);
final SubProgressMonitor batchMonitor = new SubProgressMonitor(projectMonitor, 1);
batchMonitor.subTask(RefactoringCoreMessages.InferTypeArgumentsRefactoring_calculating_dependencies);
ASTParser parser = ASTParser.newParser(ASTProvider.SHARED_AST_LEVEL);
parser.setProject(project);
parser.setCompilerOptions(RefactoringASTParser.getCompilerOptions(project));
parser.setResolveBindings(true);
parser.createASTs(batchCus, new String[0], new ASTRequestor() {
@Override
public void acceptAST(final ICompilationUnit source, final CompilationUnit ast) {
batchMonitor.subTask(BasicElementLabels.getFileName(source));
SafeRunner.run(new ISafeRunnable() {
public void run() throws Exception {
IProblem[] problems = ast.getProblems();
for (int p = 0; p < problems.length; p++) {
if (problems[p].isError()) {
String cuName = JavaElementLabels.getElementLabel(source, JavaElementLabels.CU_QUALIFIED);
String msg = Messages.format(RefactoringCoreMessages.InferTypeArgumentsRefactoring_error_in_cu_skipped, new Object[] { cuName });
result.addError(msg, JavaStatusContext.create(source, SourceRangeFactory.create(problems[p])));
return;
}
}
ast.accept(unitCollector);
}
public void handleException(Throwable exception) {
String cuName = JavaElementLabels.getElementLabel(source, JavaElementLabels.CU_QUALIFIED);
String msg = Messages.format(RefactoringCoreMessages.InferTypeArgumentsRefactoring_internal_error, new Object[] { cuName });
JavaPlugin.log(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, msg, null));
String msg2 = Messages.format(RefactoringCoreMessages.InferTypeArgumentsRefactoring_error_skipped, new Object[] { cuName });
result.addError(msg2, JavaStatusContext.create(source));
}
});
fTCModel.newCu();
}
@Override
public void acceptBinding(String bindingKey, IBinding binding) {
//do nothing
}
}, batchMonitor);
}
projectMonitor.done();
fTCModel.newCu();
}
// Display.getDefault().syncExec(new Runnable() {
// public void run() {
// MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Debugging...", "after constraint gen");
// }
// });
pm.setTaskName(RefactoringCoreMessages.InferTypeArgumentsRefactoring_solving);
InferTypeArgumentsConstraintsSolver solver = new InferTypeArgumentsConstraintsSolver(fTCModel);
InferTypeArgumentsUpdate updates = solver.solveConstraints(new SubProgressMonitor(pm, 1));
//free caches
solver = null;
fChangeManager = new TextChangeManager();
rewriteDeclarations(updates, new SubProgressMonitor(pm, 1));
IFile[] filesToModify = ResourceUtil.getFiles(fChangeManager.getAllCompilationUnits());
result.merge(Checks.validateModifiesFiles(filesToModify, getValidationContext()));
return result;
} finally {
pm.done();
clearGlobalState();
}
}
Aggregations