diff options
author | Tobias Widmer | 2005-04-04 09:01:10 +0000 |
---|---|---|
committer | Tobias Widmer | 2005-04-04 09:01:10 +0000 |
commit | e652bc51e023adcbbbc6012fd420650fc6ac65e3 (patch) | |
tree | 3b6ea76820398f0881b679919bf3045a13163da1 /org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/constraints/SuperTypeRefactoringProcessor.java | |
parent | 6105f699cdf25fabd6d796e3080828d01be16e7d (diff) | |
download | eclipse.jdt.ui-e652bc51e023adcbbbc6012fd420650fc6ac65e3.tar.gz eclipse.jdt.ui-e652bc51e023adcbbbc6012fd420650fc6ac65e3.tar.xz eclipse.jdt.ui-e652bc51e023adcbbbc6012fd420650fc6ac65e3.zip |
Improved progress monitoring
Diffstat (limited to 'org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/constraints/SuperTypeRefactoringProcessor.java')
-rw-r--r-- | org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/constraints/SuperTypeRefactoringProcessor.java | 195 |
1 files changed, 126 insertions, 69 deletions
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/constraints/SuperTypeRefactoringProcessor.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/constraints/SuperTypeRefactoringProcessor.java index a155956638..0931f659e7 100644 --- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/constraints/SuperTypeRefactoringProcessor.java +++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/constraints/SuperTypeRefactoringProcessor.java @@ -489,27 +489,44 @@ public abstract class SuperTypeRefactoringProcessor extends RefactoringProcessor collection.add(current); } final ASTParser parser= ASTParser.newParser(AST.JLS3); - for (final Iterator iterator= projects.keySet().iterator(); iterator.hasNext();) { - project= (IJavaProject) iterator.next(); - collection= (Collection) projects.get(project); - parser.setWorkingCopyOwner(fOwner); - parser.setResolveBindings(true); - parser.setCompilerOptions(RefactoringASTParser.getCompilerOptions(project)); - parser.setProject(project); - parser.createASTs((ICompilationUnit[]) collection.toArray(new ICompilationUnit[collection.size()]), new String[0], new ASTRequestor() { - - public final void acceptAST(final ICompilationUnit unit, final CompilationUnit node) { - try { - rewriteTypeOccurrences(manager, this, sourceRewrite, unit, node, replacements); - } catch (CoreException exception) { - status.merge(RefactoringStatus.createFatalErrorStatus(exception.getLocalizedMessage())); - } - } + final IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1); + try { + final Set keySet= projects.keySet(); + subMonitor.beginTask("", keySet.size()); //$NON-NLS-1$ + subMonitor.setTaskName(RefactoringCoreMessages.getString("SuperTypeRefactoringProcessor.creating")); //$NON-NLS-1$ + for (final Iterator iterator= keySet.iterator(); iterator.hasNext();) { + project= (IJavaProject) iterator.next(); + collection= (Collection) projects.get(project); + parser.setWorkingCopyOwner(fOwner); + parser.setResolveBindings(true); + parser.setCompilerOptions(RefactoringASTParser.getCompilerOptions(project)); + parser.setProject(project); + final IProgressMonitor subsubMonitor= new SubProgressMonitor(subMonitor, 1); + try { + subsubMonitor.beginTask("", collection.size()); //$NON-NLS-1$ + subsubMonitor.setTaskName(RefactoringCoreMessages.getString("SuperTypeRefactoringProcessor.creating")); //$NON-NLS-1$ + parser.createASTs((ICompilationUnit[]) collection.toArray(new ICompilationUnit[collection.size()]), new String[0], new ASTRequestor() { - public final void acceptBinding(final String key, final IBinding binding) { - // Do nothing + public final void acceptAST(final ICompilationUnit unit, final CompilationUnit node) { + try { + rewriteTypeOccurrences(manager, this, sourceRewrite, unit, node, replacements); + } catch (CoreException exception) { + status.merge(RefactoringStatus.createFatalErrorStatus(exception.getLocalizedMessage())); + } finally { + subsubMonitor.worked(1); + } + } + + public final void acceptBinding(final String key, final IBinding binding) { + // Do nothing + } + }, subsubMonitor); + } finally { + subsubMonitor.done(); } - }, new SubProgressMonitor(monitor, 1)); + } + } finally { + subMonitor.done(); } try { rewriteTypeOccurrences(manager, sourceRequestor, sourceRewrite, subUnit, subNode, replacements); @@ -585,64 +602,104 @@ public abstract class SuperTypeRefactoringProcessor extends RefactoringProcessor Set units= null; final Set processed= new HashSet(); processed.add(subUnit); - for (final Iterator outer= firstPass.keySet().iterator(); outer.hasNext();) { - project= (IJavaProject) outer.next(); - collection= (Collection) firstPass.get(project); - if (collection != null) { - units= new HashSet(collection.size()); - for (final Iterator inner= collection.iterator(); inner.hasNext();) { - group= (SearchResultGroup) inner.next(); - matches= group.getSearchResults(); - if (matches.length > 0) { - element= matches[0].getElement(); - if (element instanceof IMember) - units.add(((IMember) element).getCompilationUnit()); - } - } - parser.setWorkingCopyOwner(fOwner); - parser.setResolveBindings(true); - parser.setCompilerOptions(RefactoringASTParser.getCompilerOptions(project)); - parser.setProject(project); - parser.createASTs((ICompilationUnit[]) units.toArray(new ICompilationUnit[units.size()]), new String[0], new ASTRequestor() { - - public final void acceptAST(final ICompilationUnit unit, final CompilationUnit node) { - monitor.subTask(unit.getElementName()); - if (!processed.contains(unit)) { - performFirstPass(creator, secondPass, groups, unit, node); - processed.add(unit); + IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1); + try { + final Set keySet= firstPass.keySet(); + subMonitor.beginTask("", keySet.size()); //$NON-NLS-1$ + subMonitor.setTaskName(RefactoringCoreMessages.getString("SuperTypeRefactoringProcessor.creating")); //$NON-NLS-1$ + for (final Iterator outer= keySet.iterator(); outer.hasNext();) { + project= (IJavaProject) outer.next(); + collection= (Collection) firstPass.get(project); + if (collection != null) { + units= new HashSet(collection.size()); + for (final Iterator inner= collection.iterator(); inner.hasNext();) { + group= (SearchResultGroup) inner.next(); + matches= group.getSearchResults(); + if (matches.length > 0) { + element= matches[0].getElement(); + if (element instanceof IMember) + units.add(((IMember) element).getCompilationUnit()); } } - - public final void acceptBinding(final String key, final IBinding binding) { - // Do nothing + parser.setWorkingCopyOwner(fOwner); + parser.setResolveBindings(true); + parser.setCompilerOptions(RefactoringASTParser.getCompilerOptions(project)); + parser.setProject(project); + final IProgressMonitor subsubMonitor= new SubProgressMonitor(subMonitor, 1); + try { + subsubMonitor.beginTask("", units.size()); //$NON-NLS-1$ + subsubMonitor.setTaskName(RefactoringCoreMessages.getString("SuperTypeRefactoringProcessor.creating")); //$NON-NLS-1$ + parser.createASTs((ICompilationUnit[]) units.toArray(new ICompilationUnit[units.size()]), new String[0], new ASTRequestor() { + + public final void acceptAST(final ICompilationUnit unit, final CompilationUnit node) { + try { + subsubMonitor.subTask(unit.getElementName()); + if (!processed.contains(unit)) { + performFirstPass(creator, secondPass, groups, unit, node); + processed.add(unit); + } + } finally { + subsubMonitor.worked(1); + } + } + + public final void acceptBinding(final String key, final IBinding binding) { + // Do nothing + } + }, subsubMonitor); + } finally { + subsubMonitor.done(); } - }, new SubProgressMonitor(monitor, 1)); + } } + } finally { + firstPass.clear(); + subMonitor.done(); } performFirstPass(creator, secondPass, groups, subUnit, subNode); - for (final Iterator iterator= secondPass.keySet().iterator(); iterator.hasNext();) { - project= (IJavaProject) iterator.next(); - if (level == 3 && !JavaCore.VERSION_1_5.equals(project.getOption(JavaCore.COMPILER_COMPLIANCE, true))) - level= 2; - collection= (Collection) secondPass.get(project); - if (collection != null) { - parser.setWorkingCopyOwner(fOwner); - parser.setResolveBindings(true); - parser.setCompilerOptions(RefactoringASTParser.getCompilerOptions(project)); - parser.setProject(project); - parser.createASTs((ICompilationUnit[]) collection.toArray(new ICompilationUnit[collection.size()]), new String[0], new ASTRequestor() { - - public final void acceptAST(final ICompilationUnit unit, final CompilationUnit node) { - monitor.subTask(unit.getElementName()); - if (!processed.contains(unit)) - performSecondPass(creator, unit, node); + subMonitor= new SubProgressMonitor(monitor, 1); + try { + final Set keySet= secondPass.keySet(); + subMonitor.beginTask("", keySet.size()); //$NON-NLS-1$ + subMonitor.setTaskName(RefactoringCoreMessages.getString("SuperTypeRefactoringProcessor.creating")); //$NON-NLS-1$ + for (final Iterator iterator= keySet.iterator(); iterator.hasNext();) { + project= (IJavaProject) iterator.next(); + if (level == 3 && !JavaCore.VERSION_1_5.equals(project.getOption(JavaCore.COMPILER_COMPLIANCE, true))) + level= 2; + collection= (Collection) secondPass.get(project); + if (collection != null) { + parser.setWorkingCopyOwner(fOwner); + parser.setResolveBindings(true); + parser.setCompilerOptions(RefactoringASTParser.getCompilerOptions(project)); + parser.setProject(project); + final IProgressMonitor subsubMonitor= new SubProgressMonitor(subMonitor, 1); + try { + subsubMonitor.beginTask("", collection.size()); //$NON-NLS-1$ + subsubMonitor.setTaskName(RefactoringCoreMessages.getString("SuperTypeRefactoringProcessor.creating")); //$NON-NLS-1$ + parser.createASTs((ICompilationUnit[]) collection.toArray(new ICompilationUnit[collection.size()]), new String[0], new ASTRequestor() { + + public final void acceptAST(final ICompilationUnit unit, final CompilationUnit node) { + try { + subsubMonitor.subTask(unit.getElementName()); + if (!processed.contains(unit)) + performSecondPass(creator, unit, node); + } finally { + subsubMonitor.worked(1); + } + } + + public final void acceptBinding(final String key, final IBinding binding) { + // Do nothing + } + }, subsubMonitor); + } finally { + subsubMonitor.done(); } - - public final void acceptBinding(final String key, final IBinding binding) { - // Do nothing - } - }, new SubProgressMonitor(monitor, 1)); + } } + } finally { + secondPass.clear(); + subMonitor.done(); } } finally { model.setCompliance(level); |