Changes in preparation for heterogeneous selection
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.xml b/bundles/org.eclipse.team.cvs.ui/plugin.xml
index 69fb605..82fa02f 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.xml
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.xml
@@ -253,7 +253,7 @@
id="org.eclipse.team.ccvs.ui.ResourceMapperContributions">
<enablement>
<adapt type="org.eclipse.core.resources.mapping.ResourceMapping">
- <test property="org.eclipse.ui.ide.projectPersistentProperty" args="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature" />
+ <test property="org.eclipse.ui.ide.projectPersistentProperty" args="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature,allowUnsetProjects" />
</adapt>
</enablement>
<action
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java
index 36e156b..08735d0 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java
@@ -18,6 +18,7 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.core.TeamException;
import org.eclipse.team.core.subscribers.Subscriber;
import org.eclipse.team.core.subscribers.SubscriberResourceMappingContext;
@@ -50,7 +51,14 @@
Set resources = new HashSet();
for (int i = 0; i < traversals.length; i++) {
ResourceTraversal traversal = traversals[i];
- resources.addAll(Arrays.asList(traversal.getResources()));
+ IResource[] resourceArray = traversal.getResources();
+ for (int j = 0; j < resourceArray.length; j++) {
+ IResource resource = resourceArray[j];
+ // Only include resources in projects that are shared with CVS
+ if (RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()) != null) {
+ resources.add(resource);
+ }
+ }
}
return (IResource[]) resources.toArray(new IResource[resources.size()]);
} catch (TeamException e) {
@@ -77,7 +85,13 @@
ResourceTraversal[] traversals = mapping.getTraversals(context, monitor);
for (int j = 0; j < traversals.length; j++) {
ResourceTraversal traversal = traversals[j];
- result.addAll(Arrays.asList(traversal.getResources()));
+ IResource[] resources = traversal.getResources();
+ for (int k = 0; k < resources.length; k++) {
+ IResource resource = resources[k];
+ if (RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()) != null) {
+ result.add(resource);
+ }
+ }
}
}
return (IResource[]) result.toArray(new IResource[result.size()]);