Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2005-03-31 16:44:11 +0000
committerMichael Valenta2005-03-31 16:44:11 +0000
commit20402d95055964df356f4d2d55357ef57ebbfe1d (patch)
treea491e43e1ef90a745401b38eec04a09cffe3f65b
parent06bfd282e76873dc19c58412f40263509ff8efd3 (diff)
downloadeclipse.platform.team-20402d95055964df356f4d2d55357ef57ebbfe1d.tar.gz
eclipse.platform.team-20402d95055964df356f4d2d55357ef57ebbfe1d.tar.xz
eclipse.platform.team-20402d95055964df356f4d2d55357ef57ebbfe1d.zip
Bug 89609 Synchronizing on a Working Set should use proper sync scope
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java29
1 files changed, 26 insertions, 3 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java
index 231ea490b..b710b09d4 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java
@@ -11,11 +11,11 @@
package org.eclipse.team.internal.ccvs.ui.actions;
import java.lang.reflect.InvocationTargetException;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.*;
import org.eclipse.compare.CompareUI;
import org.eclipse.core.resources.*;
+import org.eclipse.core.resources.mapping.ResourceMapping;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -32,6 +32,7 @@ import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticip
import org.eclipse.team.internal.ui.Utils;
import org.eclipse.team.ui.TeamUI;
import org.eclipse.team.ui.synchronize.*;
+import org.eclipse.ui.IWorkingSet;
import org.eclipse.ui.PlatformUI;
/**
@@ -54,7 +55,12 @@ public class SyncAction extends WorkspaceTraversalAction {
if (includesAllCVSProjects(resources)) {
scope = new WorkspaceScope();
} else {
- scope = new ResourceScope(resources);
+ IWorkingSet[] sets = getSelectedWorkingSets();
+ if (sets != null) {
+ scope = new WorkingSetScope(sets);
+ } else {
+ scope = new ResourceScope(resources);
+ }
}
participant = new WorkspaceSynchronizeParticipant(scope);
TeamUI.getSynchronizeManager().addSynchronizeParticipants(new ISynchronizeParticipant[] {participant});
@@ -62,6 +68,23 @@ public class SyncAction extends WorkspaceTraversalAction {
participant.refresh(resources, getTargetPart().getSite());
}
}
+
+ private IWorkingSet[] getSelectedWorkingSets() {
+ ResourceMapping[] mappings = getCVSResourceMappings();
+ List sets = new ArrayList();
+ for (int i = 0; i < mappings.length; i++) {
+ ResourceMapping mapping = mappings[i];
+ if (mapping.getModelObject() instanceof IWorkingSet) {
+ IWorkingSet set = (IWorkingSet) mapping.getModelObject();
+ sets.add(set);
+ } else {
+ return null;
+ }
+ }
+ if (sets.isEmpty())
+ return null;
+ return (IWorkingSet[]) sets.toArray(new IWorkingSet[sets.size()]);
+ }
private boolean includesAllCVSProjects(IResource[] resources) {
// First, make sure all the selected thinsg are projects

Back to the top