Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2007-06-29 15:33:12 +0000
committerMichael Valenta2007-06-29 15:33:12 +0000
commit2760949e12599c29a95ef7920e85dd9a91c820a8 (patch)
treea5bd3cd77ff961a6e087d80347ff7b373f897080 /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java
parentdfa6401f146d35d5b0c552bb1757d9710695b4da (diff)
downloadeclipse.platform.team-2760949e12599c29a95ef7920e85dd9a91c820a8.tar.gz
eclipse.platform.team-2760949e12599c29a95ef7920e85dd9a91c820a8.tar.xz
eclipse.platform.team-2760949e12599c29a95ef7920e85dd9a91c820a8.zip
Bug 106460 [RelEng] Better support to replace existing projects with a given branch
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java38
1 files changed, 36 insertions, 2 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java
index be5a0cc04..67f016b55 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java
@@ -10,10 +10,14 @@
*******************************************************************************/
package org.eclipse.team.internal.ccvs.ui.tags;
+import java.util.*;
+
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.osgi.util.NLS;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
+import org.eclipse.team.core.TeamException;
+import org.eclipse.team.internal.ccvs.core.*;
import org.eclipse.team.internal.ccvs.ui.CVSUIMessages;
+import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
/**
* A tag source for multiple folders.
@@ -38,6 +42,36 @@ public class MultiFolderTagSource extends SingleFolderTagSource {
}
/* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.merge.TagSource#getTags(int)
+ */
+ public CVSTag[] getTags(int type) {
+ if (type == CVSTag.HEAD || type == BASE) {
+ return super.getTags(type);
+ }
+ Set tags= new HashSet();
+ for (int i= 0; i < folders.length; i++) {
+ tags.addAll(Arrays.asList(getTags(folders[i], type)));
+ }
+ return (CVSTag[]) tags.toArray(new CVSTag[tags.size()]);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.ui.tags.SingleFolderTagSource#refresh(boolean, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public CVSTag[] refresh(boolean bestEffort, IProgressMonitor monitor) throws TeamException {
+ monitor.beginTask("", folders.length); //$NON-NLS-1$
+ Set result= new HashSet();
+ for (int i= 0; i < folders.length; i++) {
+ ICVSFolder folder= folders[i];
+ CVSTag[] tags = CVSUIPlugin.getPlugin().getRepositoryManager().refreshDefinedTags(folder, bestEffort /* recurse */, true /* notify */, Policy.subMonitorFor(monitor, 1));
+ result.addAll(Arrays.asList(tags));
+ }
+ monitor.done();
+ fireChange();
+ return (CVSTag[]) result.toArray(new CVSTag[result.size()]);
+ }
+
+ /* (non-Javadoc)
* @see org.eclipse.team.internal.ccvs.ui.tags.SingleFolderTagSource#getCVSResources()
*/
public ICVSResource[] getCVSResources() {

Back to the top