diff options
author | Michael Valenta | 2003-09-02 18:17:49 +0000 |
---|---|---|
committer | Michael Valenta | 2003-09-02 18:17:49 +0000 |
commit | fa5847cad61549a8ce33cf2cfc10b4e707a858ba (patch) | |
tree | 6e4f1d68e2a6fefb7aa4f3987e90029c541f48ea /bundles/org.eclipse.team.cvs.ui/src | |
parent | 72977eb4901bc807d75958e221fd05167904f623 (diff) | |
download | eclipse.platform.team-fa5847cad61549a8ce33cf2cfc10b4e707a858ba.tar.gz eclipse.platform.team-fa5847cad61549a8ce33cf2cfc10b4e707a858ba.tar.xz eclipse.platform.team-fa5847cad61549a8ce33cf2cfc10b4e707a858ba.zip |
41943: [CVS Concurrency] Checkout feedback problems
- refactored CVSSubscriberAction to use an ICVSRunnableContext
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src')
5 files changed, 15 insertions, 32 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java index 0a334894c..ccdba39d3 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java @@ -20,14 +20,10 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.runtime.jobs.MultiRule; import org.eclipse.jface.action.IAction; -import org.eclipse.jface.operation.IRunnableContext; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.team.core.TeamException; import org.eclipse.team.core.subscribers.SyncInfo; @@ -41,9 +37,11 @@ import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin; import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants; import org.eclipse.team.internal.ccvs.ui.Policy; +import org.eclipse.team.internal.ccvs.ui.operations.CVSBlockingRunnableContext; +import org.eclipse.team.internal.ccvs.ui.operations.CVSNonblockingRunnableContext; +import org.eclipse.team.internal.ccvs.ui.operations.ICVSRunnableContext; import org.eclipse.team.ui.sync.SubscriberAction; import org.eclipse.team.ui.sync.SyncInfoSet; -import org.eclipse.ui.PlatformUI; public abstract class CVSSubscriberAction extends SubscriberAction { @@ -126,7 +124,7 @@ public abstract class CVSSubscriberAction extends SubscriberAction { SyncInfoSet syncSet = getFilteredSyncInfoSet(getFilteredSyncInfos()); if (syncSet == null || syncSet.isEmpty()) return; try { - getRunnableContext(syncSet).run(true /* fork */, true /* cancelable */, getRunnable(syncSet)); + getCVSRunnableContext().run(getJobName(syncSet), getSchedulingRule(syncSet), getRunnable(syncSet)); } catch (InvocationTargetException e) { handle(e); } catch (InterruptedException e) { @@ -165,29 +163,14 @@ public abstract class CVSSubscriberAction extends SubscriberAction { protected abstract void run(SyncInfoSet syncSet, IProgressMonitor monitor) throws TeamException; - protected IRunnableContext getRunnableContext(final SyncInfoSet syncSet) { + /* + * Return the ICVSRunnableContext which will be used to run the operation. + */ + private ICVSRunnableContext getCVSRunnableContext() { if (canRunAsJob() && areJobsEnabled()) { - return new IRunnableContext() { - public void run(boolean fork, boolean cancelable, final IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException { - Job job = new Job(getJobName(syncSet)) { - public IStatus run(IProgressMonitor monitor) { - try { - runnable.run(monitor); - } catch (InvocationTargetException e) { - return CVSException.wrapException(e).getStatus(); - } catch (InterruptedException e) { - return Status.OK_STATUS; - } - return Status.OK_STATUS; - } - }; - job.setRule(getSchedulingRule(syncSet)); - job.schedule(); - - } - }; + return new CVSNonblockingRunnableContext(); } else { - return PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + return new CVSBlockingRunnableContext(shell); } } @@ -202,7 +185,7 @@ public abstract class CVSSubscriberAction extends SubscriberAction { * @return */ protected String getJobName(SyncInfoSet syncSet) { - return Policy.bind("CVSSubscriberAction.jobName", new Integer(syncSet.size()).toString()); + return Policy.bind("CVSSubscriberAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$ } /** diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java index 716f429ed..7cc011337 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java @@ -210,6 +210,6 @@ public class MergeUpdateAction extends SafeUpdateAction { * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet) */ protected String getJobName(SyncInfoSet syncSet) { - return Policy.bind("MergeUpdateAction.jobName", new Integer(syncSet.size()).toString()); + return Policy.bind("MergeUpdateAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$ } } diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java index d42e038b5..eea80dc1a 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java @@ -338,7 +338,7 @@ public abstract class SafeUpdateAction extends CVSSubscriberAction { * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet) */ protected String getJobName(SyncInfoSet syncSet) { - return Policy.bind("UpdateAction.jobName", new Integer(syncSet.size()).toString()); + return Policy.bind("UpdateAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$ } } diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java index 408539744..ac6484938 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java @@ -283,6 +283,6 @@ public class SubscriberCommitAction extends CVSSubscriberAction { * @see org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction#getJobName(org.eclipse.team.ui.sync.SyncInfoSet) */ protected String getJobName(SyncInfoSet syncSet) { - return Policy.bind("CommitAction.jobName", new Integer(syncSet.size()).toString()); + return Policy.bind("CommitAction.jobName", new Integer(syncSet.size()).toString()); //$NON-NLS-1$ } } diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java index 9513ff072..6b1445c85 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java @@ -28,7 +28,7 @@ public class UpdateDialog extends SyncInfoSetDetailsDialog { public static final int YES = IDialogConstants.YES_ID; public UpdateDialog(Shell parentShell, SyncInfoSet syncSet) { - super(parentShell, Policy.bind("UpdateDialog.overwriteTitle"), Policy.bind("UpdateDialog.overwriteDetailsTitle"), syncSet); //$NON-NLS-1$ + super(parentShell, Policy.bind("UpdateDialog.overwriteTitle"), Policy.bind("UpdateDialog.overwriteDetailsTitle"), syncSet); //$NON-NLS-1$ //$NON-NLS-2$ } /* (non-Javadoc) |