diff -ruw org.eclipse.team.cvs.ui-old/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java org.eclipse.team.cvs.ui/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java --- org.eclipse.team.cvs.ui-old/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java 2004-04-22 11:23:56.000000000 -0400 +++ org.eclipse.team.cvs.ui/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java 2004-04-22 11:29:05.000000000 -0400 @@ -31,7 +31,7 @@ public void execute(IAction action) { final String title = Policy.bind("GenerateCVSDiff.title"); //$NON-NLS-1$ final IResource[] resources = getSelectedResources(); - GenerateDiffFileWizard wizard = new GenerateDiffFileWizard(new StructuredSelection(resources), resources[0]); + GenerateDiffFileWizard wizard = new GenerateDiffFileWizard(new StructuredSelection(resources), resources); wizard.setWindowTitle(title); WizardDialog dialog = new WizardDialog(getShell(), wizard); dialog.setMinimumPageSize(350, 250); @@ -42,7 +42,7 @@ * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForMultipleResources() */ protected boolean isEnabledForMultipleResources() { - return false; + return true; } /** diff -ruw org.eclipse.team.cvs.ui-old/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.java org.eclipse.team.cvs.ui/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.java --- org.eclipse.team.cvs.ui-old/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.java 2004-04-22 11:23:56.000000000 -0400 +++ org.eclipse.team.cvs.ui/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileOperation.java 2004-04-22 11:16:27.000000000 -0400 @@ -44,13 +44,13 @@ public class GenerateDiffFileOperation implements IRunnableWithProgress { private File outputFile; - private IResource resource; + private IResource[] resources; private Shell shell; private LocalOption[] options; private boolean toClipboard; - GenerateDiffFileOperation(IResource resource, File file, boolean toClipboard, LocalOption[] options, Shell shell) { - this.resource = resource; + GenerateDiffFileOperation(IResource[] resources, File file, boolean toClipboard, LocalOption[] options, Shell shell) { + this.resources = resources; this.outputFile = file; this.shell = shell; this.options = options; @@ -73,8 +73,12 @@ os = new FileOutputStream(outputFile); } try { + for (int i = 0; i < resources.length; i++) + { + IResource resource = resources[i]; CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()); provider.diff(resource, options, new PrintStream(os), new SubProgressMonitor(monitor, 500)); + } } finally { os.close(); } diff -ruw org.eclipse.team.cvs.ui-old/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java org.eclipse.team.cvs.ui/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java --- org.eclipse.team.cvs.ui-old/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java 2004-04-22 11:23:56.000000000 -0400 +++ org.eclipse.team.cvs.ui/src-teamcvsui/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java 2004-04-22 11:16:27.000000000 -0400 @@ -49,7 +49,7 @@ private PatchFileCreationOptionsPage optionsPage; private IStructuredSelection selection; - private IResource resource; + private IResource[] resources; /** * Page to select a patch file. Overriding validatePage was necessary to allow @@ -442,10 +442,10 @@ } // end of PatchFileCreationOptionsPage - public GenerateDiffFileWizard(IStructuredSelection selection, IResource resource) { + public GenerateDiffFileWizard(IStructuredSelection selection, IResource[] resources) { super(); this.selection = selection; - this.resource = resource; + this.resources = resources; setWindowTitle(Policy.bind("GenerateCVSDiff.title")); //$NON-NLS-1$ initializeDefaultPageImageDescriptor(); } @@ -520,12 +520,12 @@ return false; } } - getContainer().run(true, true, new GenerateDiffFileOperation(resource, file, false, optionsPage.getOptions(), getShell())); + getContainer().run(true, true, new GenerateDiffFileOperation(resources, file, false, optionsPage.getOptions(), getShell())); if(type==mainPage.WORKSPACE) { ws.getParent().refreshLocal(IResource.DEPTH_ONE, null); } } else { - getContainer().run(true, true, new GenerateDiffFileOperation(resource, null, true, optionsPage.getOptions(), getShell())); + getContainer().run(true, true, new GenerateDiffFileOperation(resources, null, true, optionsPage.getOptions(), getShell())); } return true; } catch (InterruptedException e1) {