Finishing touches
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties index 7ec78b8..3e6b229 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
@@ -713,6 +713,7 @@ BranchCategory.Branches_1=Branches GroupedByVersionCategory.Versions_1=Versions VersionCategory.Versions_1=Versions +ModulesCategory.label=Modules HistoryView.[...]_4=[...] CVSProjectPropertiesPage.Select_a_Repository_1=Select a Repository @@ -814,4 +815,7 @@ WorkingSetSelectionDialog.message.multiSelect= &Select CVS working sets: WorkingSetSelectionDialog.detailsButton.label= &Edit... WorkingSetSelectionDialog.newButton.label= &New... -WorkingSetSelectionDialog.removeButton.label= &Remove \ No newline at end of file +WorkingSetSelectionDialog.removeButton.label= &Remove + +RefreshTagsAction.title=Refresh Branch and Version Tags? +RefreshTagsAction.message=Repository ''{0}'' has {1} projects to refresh. Continue? \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java index 589db2f..c4f4334 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java
@@ -39,7 +39,9 @@ } } else if(element instanceof VersionCategory) { return true; - } else if(element instanceof BranchCategory) { + } else if(element instanceof BranchCategory) { + return true; + } else if(element instanceof ModulesCategory) { return true; } else if(element instanceof CVSTagElement) { return true;
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 bb9a10e..3400cf0 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
@@ -6,6 +6,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.team.core.TeamException; @@ -41,15 +42,17 @@ ICVSRepositoryLocation location = locations[j]; // todo: This omits defined modules when there is no current working set ICVSRemoteResource[] resources = manager.getWorkingFoldersForTag(location, CVSTag.DEFAULT, Policy.subMonitorFor(monitor, 10)); - IProgressMonitor subMonitor = Policy.subMonitorFor(monitor, 90); - subMonitor.beginTask(null, 100 * resources.length); - for (int i = 0; i < resources.length; i++) { - ICVSRemoteResource resource = resources[i]; - if (resource instanceof ICVSFolder) { - manager.refreshDefinedTags((ICVSFolder)resource, true /* replace */, true, Policy.subMonitorFor(subMonitor, 100)); + if (promptToRefresh(location, resources)) { + IProgressMonitor subMonitor = Policy.subMonitorFor(monitor, 90); + subMonitor.beginTask(null, 100 * resources.length); + for (int i = 0; i < resources.length; i++) { + ICVSRemoteResource resource = resources[i]; + if (resource instanceof ICVSFolder) { + manager.refreshDefinedTags((ICVSFolder)resource, true /* replace */, true, Policy.subMonitorFor(subMonitor, 100)); + } } + subMonitor.done(); } - subMonitor.done(); } monitor.done(); } catch (TeamException e) { @@ -85,4 +88,17 @@ return (ICVSRepositoryLocation[])tags.toArray(new ICVSRepositoryLocation[tags.size()]); } + private boolean promptToRefresh(final ICVSRepositoryLocation location, final ICVSRemoteResource[] resources) { + if (resources.length == 0) return true; + final boolean[] result = new boolean[] {false}; + getShell().getDisplay().syncExec(new Runnable() { + public void run() { + result[0] = MessageDialog.openQuestion(getShell(), + Policy.bind("RefreshTagsAction.title"), + Policy.bind("RefreshTagsAction.message", location.getLocation(), new Integer(resources.length).toString())); + } + }); + return result[0]; + } + }