diff options
4 files changed, 40 insertions, 75 deletions
diff --git a/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/ContainerCreator.java b/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/ContainerCreator.java index 4dfbaaf1d00..8045b48be93 100644 --- a/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/ContainerCreator.java +++ b/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/ContainerCreator.java @@ -20,7 +20,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFolder; @@ -68,7 +68,7 @@ public class ContainerCreator { IWorkspaceRunnable runnable= new IWorkspaceRunnable() { @Override public void run(IProgressMonitor monitor) throws CoreException { - monitor.beginTask(FileBuffersMessages.ContainerCreator_task_creatingContainer, fContainerFullPath.segmentCount()); + SubMonitor subMonitor = SubMonitor.convert(monitor, FileBuffersMessages.ContainerCreator_task_creatingContainer, fContainerFullPath.segmentCount()); if (fContainer != null) return; @@ -91,7 +91,7 @@ public class ContainerCreator { if (resource != null) { if (resource instanceof IContainer) { fContainer= (IContainer) resource; - monitor.worked(1); + subMonitor.step(1); } else { // fContainerFullPath specifies a file as directory throw new CoreException(new Status(IStatus.ERROR, FileBuffersPlugin.PLUGIN_ID, IStatus.OK, NLSUtility.format(FileBuffersMessages.ContainerCreator_destinationMustBeAContainer, resource.getFullPath()), null)); @@ -100,15 +100,11 @@ public class ContainerCreator { else { if (i == 0) { IProject projectHandle= createProjectHandle(root, currentSegment); - IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1); - fContainer= createProject(projectHandle, subMonitor); - subMonitor.done(); + fContainer= createProject(projectHandle, subMonitor.split(1)); } else { IFolder folderHandle= createFolderHandle(fContainer, currentSegment); - IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1); - fContainer= createFolder(folderHandle, subMonitor); - subMonitor.done(); + fContainer= createFolder(folderHandle, subMonitor.split(1)); } } } @@ -138,27 +134,9 @@ public class ContainerCreator { } private IProject createProject(IProject projectHandle, IProgressMonitor monitor) throws CoreException { - monitor.beginTask("", 100);//$NON-NLS-1$ - try { - - IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 50); - projectHandle.create(subMonitor); - subMonitor.done(); - - if (monitor.isCanceled()) - throw new OperationCanceledException(); - - subMonitor= new SubProgressMonitor(monitor, 50); - projectHandle.open(subMonitor); - subMonitor.done(); - - if (monitor.isCanceled()) - throw new OperationCanceledException(); - - } finally { - monitor.done(); - } - + SubMonitor subMonitor= SubMonitor.convert(monitor, 2); + projectHandle.create(subMonitor.split(1)); + projectHandle.open(subMonitor.split(1)); return projectHandle; } diff --git a/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationAction.java b/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationAction.java index 0efd803137f..a7a01103b7e 100644 --- a/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationAction.java +++ b/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationAction.java @@ -24,7 +24,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.resources.IFile; @@ -172,23 +172,19 @@ public class FileBufferOperationAction extends Action implements IWorkbenchWindo try { int ticks= 100; - monitor.beginTask(fFileBufferOperation.getOperationName(), ticks); - try { - IPath[] locations; - if (files != null) { - ticks -= 30; - locations= generateLocations(files, new SubProgressMonitor(monitor, 30)); - } else - locations= new IPath[] { location }; - - if (locations != null && locations.length > 0) { - FileBufferOperationRunner runner= new FileBufferOperationRunner(FileBuffers.getTextFileBufferManager(), getShell()); - runner.execute(locations, fileBufferOperation, new SubProgressMonitor(monitor, ticks)); - } - status= Status.OK_STATUS; - } finally { - monitor.done(); + SubMonitor subMonitor= SubMonitor.convert(monitor, fFileBufferOperation.getOperationName(), ticks); + IPath[] locations; + if (files != null) { + ticks-= 30; + locations= generateLocations(files, subMonitor.split(30)); + } else + locations= new IPath[] { location }; + + if (locations != null && locations.length > 0) { + FileBufferOperationRunner runner= new FileBufferOperationRunner(FileBuffers.getTextFileBufferManager(), getShell()); + runner.execute(locations, fileBufferOperation, subMonitor.split(ticks)); } + status= Status.OK_STATUS; } catch (OperationCanceledException e) { status= new Status(IStatus.CANCEL, EditorsUI.PLUGIN_ID, IStatus.OK, "", null); //$NON-NLS-1$ diff --git a/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationHandler.java b/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationHandler.java index 63ee227c408..7821fa76970 100644 --- a/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationHandler.java +++ b/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationHandler.java @@ -28,7 +28,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.resources.IFile; @@ -57,7 +57,7 @@ import org.eclipse.ui.PlatformUI; * @since 3.1 */ public class FileBufferOperationHandler extends AbstractHandler { - + private IFileBufferOperation fFileBufferOperation; private IWorkbenchWindow fWindow; private IResource[] fResources; @@ -195,23 +195,19 @@ public class FileBufferOperationHandler extends AbstractHandler { try { int ticks= 100; - monitor.beginTask(fFileBufferOperation.getOperationName(), ticks); - try { - IPath[] locations; - if (files != null) { - ticks -= 30; - locations= generateLocations(files, new SubProgressMonitor(monitor, 30)); - } else - locations= new IPath[] { location }; - - if (locations != null && locations.length > 0) { - FileBufferOperationRunner runner= new FileBufferOperationRunner(FileBuffers.getTextFileBufferManager(), getShell()); - runner.execute(locations, fileBufferOperation, new SubProgressMonitor(monitor, ticks)); - } - status= Status.OK_STATUS; - } finally { - monitor.done(); + SubMonitor subMonitor= SubMonitor.convert(monitor, fFileBufferOperation.getOperationName(), ticks); + IPath[] locations; + if (files != null) { + ticks-= 30; + locations= generateLocations(files, subMonitor.split(30)); + } else + locations= new IPath[] { location }; + + if (locations != null && locations.length > 0) { + FileBufferOperationRunner runner= new FileBufferOperationRunner(FileBuffers.getTextFileBufferManager(), getShell()); + runner.execute(locations, fileBufferOperation, subMonitor.split(ticks)); } + status= Status.OK_STATUS; } catch (OperationCanceledException e) { status= new Status(IStatus.CANCEL, EditorsUI.PLUGIN_ID, IStatus.OK, "", null); //$NON-NLS-1$ diff --git a/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileDocumentProvider.java b/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileDocumentProvider.java index 61e86952eab..7307e6080ae 100644 --- a/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileDocumentProvider.java +++ b/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileDocumentProvider.java @@ -37,7 +37,7 @@ import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.QualifiedName; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.runtime.content.IContentDescription; import org.eclipse.core.runtime.content.IContentType; import org.eclipse.core.runtime.jobs.ISchedulingRule; @@ -639,15 +639,10 @@ public class FileDocumentProvider extends StorageDocumentProvider { } } else { - try { - monitor.beginTask(TextEditorMessages.FileDocumentProvider_task_saving, 2000); - ContainerCreator creator = new ContainerCreator(file.getWorkspace(), file.getParent().getFullPath()); - creator.createContainer(new SubProgressMonitor(monitor, 1000)); - file.create(stream, false, new SubProgressMonitor(monitor, 1000)); - } - finally { - monitor.done(); - } + SubMonitor subMonitor= SubMonitor.convert(monitor, TextEditorMessages.FileDocumentProvider_task_saving, 2); + ContainerCreator creator= new ContainerCreator(file.getWorkspace(), file.getParent().getFullPath()); + creator.createContainer(subMonitor.split(1)); + file.create(stream, false, subMonitor.split(1)); } } else { |