Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/ContainerCreator.java38
-rw-r--r--org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationAction.java30
-rw-r--r--org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileBufferOperationHandler.java30
-rw-r--r--org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/FileDocumentProvider.java15
4 files changed, 70 insertions, 43 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 b57a918bf00..4dfbaaf1d00 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.SubMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
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 {
- SubMonitor subMonitor = SubMonitor.convert(monitor, FileBuffersMessages.ContainerCreator_task_creatingContainer, fContainerFullPath.segmentCount());
+ monitor.beginTask(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;
- subMonitor.worked(1);
+ monitor.worked(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,11 +100,15 @@ public class ContainerCreator {
else {
if (i == 0) {
IProject projectHandle= createProjectHandle(root, currentSegment);
- fContainer= createProject(projectHandle, subMonitor.newChild(1));
+ IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1);
+ fContainer= createProject(projectHandle, subMonitor);
+ subMonitor.done();
}
else {
IFolder folderHandle= createFolderHandle(fContainer, currentSegment);
- fContainer= createFolder(folderHandle, subMonitor.newChild(1));
+ IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1);
+ fContainer= createFolder(folderHandle, subMonitor);
+ subMonitor.done();
}
}
}
@@ -134,16 +138,26 @@ public class ContainerCreator {
}
private IProject createProject(IProject projectHandle, IProgressMonitor monitor) throws CoreException {
- SubMonitor subMonitor= SubMonitor.convert(monitor, 2);
- projectHandle.create(subMonitor.newChild(1));
+ monitor.beginTask("", 100);//$NON-NLS-1$
+ try {
- if (monitor.isCanceled())
- throw new OperationCanceledException();
+ IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 50);
+ projectHandle.create(subMonitor);
+ subMonitor.done();
- projectHandle.open(subMonitor.newChild(1));
+ if (monitor.isCanceled())
+ throw new OperationCanceledException();
- 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();
+ }
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 47d1a874403..0efd803137f 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.SubMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.resources.IFile;
@@ -172,19 +172,23 @@ public class FileBufferOperationAction extends Action implements IWorkbenchWindo
try {
int ticks= 100;
- SubMonitor subMonitor= SubMonitor.convert(monitor, fFileBufferOperation.getOperationName(), ticks);
- IPath[] locations;
- if (files != null) {
- ticks-= 30;
- locations= generateLocations(files, subMonitor.newChild(30));
- } else
- locations= new IPath[] { location };
-
- if (locations != null && locations.length > 0) {
- FileBufferOperationRunner runner= new FileBufferOperationRunner(FileBuffers.getTextFileBufferManager(), getShell());
- runner.execute(locations, fileBufferOperation, subMonitor.newChild(ticks));
+ 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();
}
- 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 f9da142aa4b..63ee227c408 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.SubMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.resources.IFile;
@@ -195,19 +195,23 @@ public class FileBufferOperationHandler extends AbstractHandler {
try {
int ticks= 100;
- SubMonitor subMonitor= SubMonitor.convert(monitor, fFileBufferOperation.getOperationName(), ticks);
- IPath[] locations;
- if (files != null) {
- ticks-= 30;
- locations= generateLocations(files, subMonitor.newChild(30));
- } else
- locations= new IPath[] { location };
-
- if (locations != null && locations.length > 0) {
- FileBufferOperationRunner runner= new FileBufferOperationRunner(FileBuffers.getTextFileBufferManager(), getShell());
- runner.execute(locations, fileBufferOperation, subMonitor.newChild(ticks));
+ 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();
}
- 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 cbf28075663..61e86952eab 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.SubMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.core.runtime.content.IContentDescription;
import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
@@ -639,10 +639,15 @@ public class FileDocumentProvider extends StorageDocumentProvider {
}
} else {
- SubMonitor subMonitor= SubMonitor.convert(monitor, TextEditorMessages.FileDocumentProvider_task_saving, 2);
- ContainerCreator creator= new ContainerCreator(file.getWorkspace(), file.getParent().getFullPath());
- creator.createContainer(subMonitor.newChild(1));
- file.create(stream, false, subMonitor.newChild(1));
+ 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();
+ }
}
} else {

Back to the top