diff options
author | Lars Vogel | 2016-09-20 20:10:10 +0000 |
---|---|---|
committer | Sergey Prigogin | 2016-09-21 18:17:14 +0000 |
commit | ee6056e8c0070f8568ce14d1714ef6d465472d93 (patch) | |
tree | a6720aa9f473499211c4ece897f442807a6a1a9f | |
parent | a20d8ab3c79e1936315b2f15b9b9f5d4ee6a70d5 (diff) | |
download | eclipse.platform.text-ee6056e8c0070f8568ce14d1714ef6d465472d93.tar.gz eclipse.platform.text-ee6056e8c0070f8568ce14d1714ef6d465472d93.tar.xz eclipse.platform.text-ee6056e8c0070f8568ce14d1714ef6d465472d93.zip |
Bug 479523 - Replace usage of SubProgressMonitor with SubMonitor in
eclipse.platform.text
Final change to remove Progress.java
Change-Id: I8e50441151151937e9c4b34004ba14aef61e0577
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
2 files changed, 32 insertions, 108 deletions
diff --git a/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/GenericFileBufferOperationRunner.java b/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/GenericFileBufferOperationRunner.java index d49c1346c59..617f8f06927 100644 --- a/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/GenericFileBufferOperationRunner.java +++ b/org.eclipse.core.filebuffers/src/org/eclipse/core/filebuffers/manipulation/GenericFileBufferOperationRunner.java @@ -13,8 +13,6 @@ package org.eclipse.core.filebuffers.manipulation; import java.util.ArrayList; import org.eclipse.core.internal.filebuffers.FileBuffersPlugin; -import org.eclipse.core.internal.filebuffers.Progress; - import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; @@ -24,6 +22,7 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.SafeRunner; import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.runtime.jobs.IJobManager; import org.eclipse.core.runtime.jobs.ISchedulingRule; import org.eclipse.core.runtime.jobs.Job; @@ -87,24 +86,19 @@ public class GenericFileBufferOperationRunner { */ public void execute(IPath[] locations, final IFileBufferOperation operation, IProgressMonitor monitor) throws CoreException, OperationCanceledException { final int size= locations.length; - final IProgressMonitor progressMonitor= Progress.getMonitor(monitor); - progressMonitor.beginTask(operation.getOperationName(), size * 200); + SubMonitor subMonitor= SubMonitor.convert(monitor, operation.getOperationName(), size * 200); try { - - - IProgressMonitor subMonitor= Progress.getSubMonitor(progressMonitor, size * 10); - IFileBuffer[] fileBuffers= createFileBuffers(locations, subMonitor); - subMonitor.done(); + IFileBuffer[] fileBuffers= createFileBuffers(locations, subMonitor.split(size * 10)); IFileBuffer[] fileBuffers2Save= findFileBuffersToSave(fileBuffers); - subMonitor= Progress.getSubMonitor(progressMonitor, size * 10); - fFileBufferManager.validateState(fileBuffers2Save, subMonitor, fValidationContext); - subMonitor.done(); + fFileBufferManager.validateState(fileBuffers2Save, subMonitor.split(size * 10), fValidationContext); if (!isCommitable(fileBuffers2Save)) + { throw new OperationCanceledException(); + } IFileBuffer[] unsynchronizedFileBuffers= findUnsynchronizedFileBuffers(fileBuffers); - performOperation(unsynchronizedFileBuffers, operation, progressMonitor) ; + performOperation(unsynchronizedFileBuffers, operation, subMonitor.split(size * 40)); final IFileBuffer[] synchronizedFileBuffers= findSynchronizedFileBuffers(fileBuffers); fIsCompleted= false; @@ -123,7 +117,7 @@ public class GenericFileBufferOperationRunner { } @Override public void run() throws Exception { - performOperation(synchronizedFileBuffers, operation, progressMonitor); + performOperation(synchronizedFileBuffers, operation, subMonitor.split(50)); } }); } finally { @@ -148,50 +142,28 @@ public class GenericFileBufferOperationRunner { throw new CoreException(new Status(IStatus.ERROR, FileBuffersPlugin.PLUGIN_ID, IFileBufferStatusCodes.CONTENT_CHANGE_FAILED, fThrowable.getLocalizedMessage(), fThrowable)); } - subMonitor= Progress.getSubMonitor(progressMonitor, size * 80); - commit(fileBuffers2Save, subMonitor); - subMonitor.done(); + commit(fileBuffers2Save, subMonitor.split(size * 80)); } finally { - try { - IProgressMonitor subMonitor= Progress.getSubMonitor(progressMonitor, size * 10); - releaseFileBuffers(locations, subMonitor); - subMonitor.done(); - } finally { - progressMonitor.done(); - } + releaseFileBuffers(locations, subMonitor.split(size * 10)); } } private void performOperation(IFileBuffer fileBuffer, IFileBufferOperation operation, IProgressMonitor progressMonitor) throws CoreException, OperationCanceledException { - + SubMonitor subMonitor= SubMonitor.convert(progressMonitor, 100); ISchedulingRule rule= fileBuffer.computeCommitRule(); IJobManager manager= Job.getJobManager(); - try { - manager.beginRule(rule, progressMonitor); - - String name= fileBuffer.getLocation().lastSegment(); - progressMonitor.beginTask(name, 100); - try { - IProgressMonitor subMonitor= Progress.getSubMonitor(progressMonitor, 100); - operation.run(fileBuffer, subMonitor); - subMonitor.done(); - } finally { - progressMonitor.done(); - } - - } finally { - manager.endRule(rule); - } + manager.beginRule(rule, subMonitor.split(1)); + String name= fileBuffer.getLocation().lastSegment(); + subMonitor.setTaskName(name); + operation.run(fileBuffer, subMonitor.split(99)); + manager.endRule(rule); } private void performOperation(IFileBuffer[] fileBuffers, IFileBufferOperation operation, IProgressMonitor progressMonitor) throws CoreException, OperationCanceledException { - for (int i= 0; i < fileBuffers.length; i++) { - if (progressMonitor.isCanceled()) - throw new OperationCanceledException(); - IProgressMonitor subMonitor= Progress.getSubMonitor(progressMonitor, 100); - performOperation(fileBuffers[i], operation, subMonitor); - subMonitor.done(); + SubMonitor subMonitor= SubMonitor.convert(progressMonitor, fileBuffers.length); + for (IFileBuffer fileBuffer : fileBuffers) { + performOperation(fileBuffer, operation, subMonitor.split(1)); } } @@ -219,13 +191,12 @@ public class GenericFileBufferOperationRunner { } private IFileBuffer[] createFileBuffers(IPath[] locations, IProgressMonitor progressMonitor) throws CoreException { - progressMonitor.beginTask(FileBuffersMessages.FileBufferOperationRunner_task_connecting, locations.length); + + SubMonitor subMonitor= SubMonitor.convert(progressMonitor, FileBuffersMessages.FileBufferOperationRunner_task_connecting, locations.length); try { IFileBuffer[] fileBuffers= new ITextFileBuffer[locations.length]; for (int i= 0; i < locations.length; i++) { - IProgressMonitor subMonitor= Progress.getSubMonitor(progressMonitor, 1); - fFileBufferManager.connect(locations[i], LocationKind.NORMALIZE, subMonitor); - subMonitor.done(); + fFileBufferManager.connect(locations[i], LocationKind.NORMALIZE, subMonitor.split(1)); fileBuffers[i]= fFileBufferManager.getFileBuffer(locations[i], LocationKind.NORMALIZE); } return fileBuffers; @@ -236,22 +207,14 @@ public class GenericFileBufferOperationRunner { } catch (CoreException e) { } throw x; - } finally { - progressMonitor.done(); } } private void releaseFileBuffers(IPath[] locations, IProgressMonitor progressMonitor) throws CoreException { - progressMonitor.beginTask(FileBuffersMessages.FileBufferOperationRunner_task_disconnecting, locations.length); - try { - final ITextFileBufferManager fileBufferManager= FileBuffers.getTextFileBufferManager(); - for (int i= 0; i < locations.length; i++) { - IProgressMonitor subMonitor= Progress.getSubMonitor(progressMonitor, 1); - fileBufferManager.disconnect(locations[i], LocationKind.NORMALIZE, subMonitor); - subMonitor.done(); - } - } finally { - progressMonitor.done(); + SubMonitor subMonitor= SubMonitor.convert(progressMonitor, FileBuffersMessages.FileBufferOperationRunner_task_disconnecting, locations.length); + final ITextFileBufferManager fileBufferManager= FileBuffers.getTextFileBufferManager(); + for (IPath location : locations) { + fileBufferManager.disconnect(location, LocationKind.NORMALIZE, subMonitor.split(1)); } } @@ -286,28 +249,20 @@ public class GenericFileBufferOperationRunner { } protected void commit(final IFileBuffer[] fileBuffers, final IProgressMonitor progressMonitor) throws CoreException { - IProgressMonitor monitor= Progress.getMonitor(progressMonitor); + SubMonitor subMonitor= SubMonitor.convert(progressMonitor, 2); ISchedulingRule rule= computeCommitRule(fileBuffers); - Job.getJobManager().beginRule(rule, progressMonitor); + Job.getJobManager().beginRule(rule, subMonitor.split(1)); try { - doCommit(fileBuffers, progressMonitor); + doCommit(fileBuffers, subMonitor.split(1)); } finally { Job.getJobManager().endRule(rule); - monitor.done(); } } protected void doCommit(final IFileBuffer[] fileBuffers, IProgressMonitor progressMonitor) throws CoreException { - IProgressMonitor monitor= Progress.getMonitor(progressMonitor); - monitor.beginTask(FileBuffersMessages.FileBufferOperationRunner_task_committing, fileBuffers.length); - try { - for (int i= 0; i < fileBuffers.length; i++) { - IProgressMonitor subMonitor= Progress.getSubMonitor(monitor, 1); - fileBuffers[i].commit(subMonitor, true); - subMonitor.done(); - } - } finally { - monitor.done(); + SubMonitor subMonitor= SubMonitor.convert(progressMonitor, FileBuffersMessages.FileBufferOperationRunner_task_committing, fileBuffers.length); + for (IFileBuffer fileBuffer : fileBuffers) { + fileBuffer.commit(subMonitor.split(1), true); } } diff --git a/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/Progress.java b/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/Progress.java deleted file mode 100644 index a56ed1e2331..00000000000 --- a/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/Progress.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.filebuffers; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.SubProgressMonitor; - -/** - * Helper for progress management. - * @since 3.1 - */ -public class Progress { - - public static IProgressMonitor getMonitor(IProgressMonitor monitor) { - return monitor == null ? new NullProgressMonitor() : monitor; - } - - public static IProgressMonitor getSubMonitor(IProgressMonitor parent, int ticks) { - return new SubProgressMonitor(getMonitor(parent), ticks, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK); - } - -} |