diff options
| author | Stefan Xenos | 2015-09-14 18:58:03 +0000 |
|---|---|---|
| committer | Stefan Xenos | 2015-09-15 16:19:37 +0000 |
| commit | 2daab974129378b92daacc860dbcee77dabf2123 (patch) | |
| tree | 4e0dbc79e6efd00ea206fe9f389d65f2eb9b7d14 | |
| parent | ab0a4e07b8b5102fa2756c32111cd2d6d7ce13e2 (diff) | |
| download | eclipse.platform.ui-2daab974129378b92daacc860dbcee77dabf2123.tar.gz eclipse.platform.ui-2daab974129378b92daacc860dbcee77dabf2123.tar.xz eclipse.platform.ui-2daab974129378b92daacc860dbcee77dabf2123.zip | |
Bug 475785 - Remove usage of SubProgressMonitor in org.eclipse.ui.internal.ide.undo
Change-Id: I5f7b65f706b0e12923c6aac2c65a0537f2e4a3f0
Signed-off-by: Stefan Xenos <sxenos@gmail.com>
4 files changed, 49 insertions, 72 deletions
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java index e23033b0fef..b4d55cbef61 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java @@ -24,7 +24,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; import org.eclipse.ui.ide.dialogs.UIResourceFilterDescription; import org.eclipse.ui.ide.undo.ResourceDescription; @@ -176,48 +176,42 @@ public abstract class ContainerDescription extends AbstractResourceDescription { * the handle of the created parent * @param monitor * the progress monitor to be used - * @param ticks - * the number of ticks allocated for creating children * @throws CoreException */ - protected void createChildResources(IContainer parentHandle, - IProgressMonitor monitor, int ticks) throws CoreException { - + protected final void createChildResources(IContainer parentHandle, + IProgressMonitor monitor) throws CoreException { // restore any children if (members != null && members.length > 0) { + SubMonitor subMonitor = SubMonitor.convert(monitor, members.length); for (int i = 0; i < members.length; i++) { members[i].parent = parentHandle; - members[i].createResource(new SubProgressMonitor(monitor, ticks - / members.length)); + members[i].createResource(subMonitor.newChild(1)); } } } @Override - public void recordStateFromHistory(IResource resource, - IProgressMonitor monitor) throws CoreException { - monitor.beginTask( - UndoMessages.FolderDescription_SavingUndoInfoProgress, 100); + public void recordStateFromHistory(IResource resource, IProgressMonitor mon) throws CoreException { if (members != null) { + SubMonitor subMonitor = SubMonitor.convert(mon, UndoMessages.FolderDescription_SavingUndoInfoProgress, + members.length); for (int i = 0; i < members.length; i++) { + SubMonitor iterationMonitor = subMonitor.newChild(1); if (members[i] instanceof FileDescription) { IPath path = resource.getFullPath().append( ((FileDescription) members[i]).name); IFile fileHandle = resource.getWorkspace().getRoot().getFile( path); - members[i].recordStateFromHistory(fileHandle, - new SubProgressMonitor(monitor, 100 / members.length)); + members[i].recordStateFromHistory(fileHandle, iterationMonitor); } else if (members[i] instanceof FolderDescription) { IPath path = resource.getFullPath().append( ((FolderDescription) members[i]).name); IFolder folderHandle = resource.getWorkspace().getRoot() .getFolder(path); - members[i].recordStateFromHistory(folderHandle, - new SubProgressMonitor(monitor, 100 / members.length)); + members[i].recordStateFromHistory(folderHandle, iterationMonitor); } } } - monitor.done(); } /** diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java index e7f4ec67024..8785d37bc8a 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FileDescription.java @@ -25,7 +25,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; /** * FileDescription is a lightweight description that describes a file to be @@ -132,23 +132,21 @@ public class FileDescription extends AbstractResourceDescription { } @Override - public void createExistentResourceFromHandle(IResource resource, - IProgressMonitor monitor) throws CoreException { + public void createExistentResourceFromHandle(IResource resource, IProgressMonitor mon) throws CoreException { Assert.isLegal(resource instanceof IFile); if (resource.exists()) { return; } IFile fileHandle = (IFile) resource; - monitor.beginTask("", 200); //$NON-NLS-1$ - monitor.setTaskName(UndoMessages.FileDescription_NewFileProgress); + SubMonitor subMonitor = SubMonitor.convert(mon, 200); + subMonitor.setTaskName(UndoMessages.FileDescription_NewFileProgress); try { - if (monitor.isCanceled()) { + if (subMonitor.isCanceled()) { throw new OperationCanceledException(); } if (location != null) { - fileHandle.createLink(location, IResource.ALLOW_MISSING_LOCAL, - new SubProgressMonitor(monitor, 200)); + fileHandle.createLink(location, IResource.ALLOW_MISSING_LOCAL, subMonitor.newChild(200)); } else { InputStream contents = new ByteArrayInputStream( UndoMessages.FileDescription_ContentsCouldNotBeRestored @@ -161,12 +159,10 @@ public class FileDescription extends AbstractResourceDescription { && fileContentDescription.exists()) { contents = fileContentDescription.getContents(); } - fileHandle.create(contents, false, new SubProgressMonitor( - monitor, 100)); - fileHandle.setCharset(charset, new SubProgressMonitor(monitor, - 100)); + fileHandle.create(contents, false, subMonitor.newChild(100)); + fileHandle.setCharset(charset, subMonitor.newChild(100)); } - if (monitor.isCanceled()) { + if (subMonitor.isCanceled()) { throw new OperationCanceledException(); } } catch (CoreException e) { @@ -175,8 +171,6 @@ public class FileDescription extends AbstractResourceDescription { } else { throw e; } - } finally { - monitor.done(); } } diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java index 305007b8812..e0a8e7de9e4 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/FolderDescription.java @@ -21,7 +21,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; /** * FolderDescription is a lightweight description that describes a folder to be @@ -75,41 +75,33 @@ public class FolderDescription extends ContainerDescription { } @Override - public void createExistentResourceFromHandle(IResource resource, - IProgressMonitor monitor) throws CoreException { - + public void createExistentResourceFromHandle(IResource resource, IProgressMonitor mon) throws CoreException { Assert.isLegal(resource instanceof IFolder); if (resource.exists()) { return; } IFolder folderHandle = (IFolder) resource; - try { - monitor.beginTask("", 200); //$NON-NLS-1$ - monitor.setTaskName(UndoMessages.FolderDescription_NewFolderProgress); - if (monitor.isCanceled()) { - throw new OperationCanceledException(); - } - if (filters != null) { - for (int i = 0; i < filters.length; i++) { - folderHandle.createFilter(filters[i].getType(), filters[i].getFileInfoMatcherDescription(), 0, new SubProgressMonitor( - monitor, 100)); - } - } - if (location != null) { - folderHandle.createLink(location, - IResource.ALLOW_MISSING_LOCAL, new SubProgressMonitor( - monitor, 100)); - } else { - folderHandle.create(virtual ? IResource.VIRTUAL:0, true, new SubProgressMonitor( - monitor, 100)); - } - if (monitor.isCanceled()) { - throw new OperationCanceledException(); + SubMonitor subMonitor = SubMonitor.convert(mon, 300); + subMonitor.setTaskName(UndoMessages.FolderDescription_NewFolderProgress); + if (subMonitor.isCanceled()) { + throw new OperationCanceledException(); + } + if (filters != null) { + SubMonitor loopMonitor = subMonitor.newChild(100).setWorkRemaining(filters.length); + for (int i = 0; i < filters.length; i++) { + folderHandle.createFilter(filters[i].getType(), filters[i].getFileInfoMatcherDescription(), 0, + loopMonitor.newChild(1)); } - createChildResources(folderHandle, monitor, 100); - - } finally { - monitor.done(); } + subMonitor.setWorkRemaining(200); + if (location != null) { + folderHandle.createLink(location, IResource.ALLOW_MISSING_LOCAL, subMonitor.newChild(100)); + } else { + folderHandle.create(virtual ? IResource.VIRTUAL : 0, true, subMonitor.newChild(100)); + } + if (subMonitor.isCanceled()) { + throw new OperationCanceledException(); + } + createChildResources(folderHandle, subMonitor.newChild(100)); } }
\ No newline at end of file diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java index 862dc9535bb..b36ccb1fad2 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ProjectDescription.java @@ -19,7 +19,7 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; /** * ProjectDescription is a lightweight description that describes a project to @@ -79,28 +79,25 @@ public class ProjectDescription extends ContainerDescription { @Override public void createExistentResourceFromHandle(IResource resource, IProgressMonitor monitor) throws CoreException { + SubMonitor subMonitor = SubMonitor.convert(monitor, 200); Assert.isLegal(resource instanceof IProject); if (resource.exists()) { return; } IProject projectHandle = (IProject) resource; - monitor.beginTask("", 200); //$NON-NLS-1$ - monitor.setTaskName(UndoMessages.FolderDescription_NewFolderProgress); + subMonitor.setTaskName(UndoMessages.FolderDescription_NewFolderProgress); if (projectDescription == null) { - projectHandle.create(new SubProgressMonitor(monitor, 100)); + projectHandle.create(subMonitor.newChild(100)); } else { - projectHandle.create(projectDescription, new SubProgressMonitor( - monitor, 100)); + projectHandle.create(projectDescription, subMonitor.newChild(100)); } - if (monitor.isCanceled()) { + if (subMonitor.isCanceled()) { throw new OperationCanceledException(); } if (openOnCreate) { - projectHandle.open(IResource.NONE, - new SubProgressMonitor(monitor, 100)); + projectHandle.open(IResource.NONE, subMonitor.newChild(100)); } - monitor.done(); } @Override |
