Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2003-09-02 18:17:49 +0000
committerMichael Valenta2003-09-02 18:17:49 +0000
commitfa5847cad61549a8ce33cf2cfc10b4e707a858ba (patch)
tree6e4f1d68e2a6fefb7aa4f3987e90029c541f48ea /bundles/org.eclipse.team.cvs.ui/src
parent72977eb4901bc807d75958e221fd05167904f623 (diff)
downloadeclipse.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')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java39
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SafeUpdateAction.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/SubscriberCommitAction.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/UpdateDialog.java2
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)

Back to the top