diff options
author | Michael Valenta | 2007-06-29 15:33:12 +0000 |
---|---|---|
committer | Michael Valenta | 2007-06-29 15:33:12 +0000 |
commit | 2760949e12599c29a95ef7920e85dd9a91c820a8 (patch) | |
tree | a5bd3cd77ff961a6e087d80347ff7b373f897080 /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java | |
parent | dfa6401f146d35d5b0c552bb1757d9710695b4da (diff) | |
download | eclipse.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.java | 38 |
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() { |