Bug 32703 [CVS UI] Add "refresh branches" to branches category
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.xml b/bundles/org.eclipse.team.cvs.ui/plugin.xml
index ee25728..ebd8a81 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.xml
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.xml
@@ -510,6 +510,19 @@
          </action>      
       </objectContribution>
       <objectContribution
+            objectClass="org.eclipse.team.internal.ccvs.ui.model.BranchCategory"
+            id="org.eclipse.team.ccvs.ui.model.BranchCategoryContributions">
+         <action
+               label="%RefreshTagsAction.label"
+               icon="icons/full/clcl16/newstream_wiz.gif"
+               tooltip="%RefreshTagsAction.tooltip"
+               menubarPath="tagGroup"
+               class="org.eclipse.team.internal.ccvs.ui.repo.RefreshTagsAction"
+               helpContextId="org.eclipse.team.cvs.ui.refresh_tags_action_context"
+               id="org.eclipse.team.ccvs.ui.refreshTags">
+         </action>      
+      </objectContribution>
+      <objectContribution
             objectClass="org.eclipse.team.internal.ccvs.core.ICVSRemoteResource"
             id="org.eclipse.team.ccvs.ui.RemoteResourceContributions">
          <action
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java
index 9d7ec75..d0bb6c8 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshTagsAction.java
@@ -9,6 +9,7 @@
 import org.eclipse.team.core.TeamException;
 import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
 import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
+import org.eclipse.team.internal.ccvs.ui.model.BranchCategory;
 
 /**
  * @author Administrator
@@ -45,13 +46,18 @@
 		if (!selection.isEmpty()) {
 			Iterator elements = ((IStructuredSelection) selection).iterator();
 			while (elements.hasNext()) {
-				Object adapter = getAdapter(elements.next(), ICVSRepositoryLocation.class);
-				if (adapter instanceof ICVSRepositoryLocation) {
+				Object element = elements.next();
+				Object adapter = getAdapter(element, ICVSRepositoryLocation.class);
+				if (adapter != null) {
 					tags.add(adapter);
+				} else {
+					adapter = getAdapter(element, BranchCategory.class);
+					if(adapter != null) {
+						tags.add(((BranchCategory)adapter).getRepository(adapter));
+					}
 				}
 			}
 		}
 		return (ICVSRepositoryLocation[])tags.toArray(new ICVSRepositoryLocation[tags.size()]);
 	}
-
 }