diff options
5 files changed, 33 insertions, 4 deletions
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java index 2028ff550..5f8f63491 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java @@ -12,6 +12,7 @@ package org.eclipse.mylyn.internal.tasks.bugs; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProvider; @@ -42,6 +43,9 @@ public class SupportCategory extends AbstractSupportElement { } public List<IProvider> getProviders() { + if (providers == null) { + return Collections.emptyList(); + } return new ArrayList<IProvider>(providers); } diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java index 874fdf446..b35e71cfd 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java @@ -33,6 +33,8 @@ public class Messages extends NLS { public static String ReportErrorPage_Report_to; + public static String ReportErrorPage_Report_to_Label; + public static String ReportErrorPage_Select_repository; public static String ReportErrorPage_AN_UNEXPETED_ERROR_HAS_OCCURED_IN_PLUGIN; diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java index 46f8fc2d2..04bb8e74a 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java @@ -21,7 +21,9 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.Wizard; import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct; +import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProvider; import org.eclipse.mylyn.internal.tasks.bugs.AbstractSupportElement; +import org.eclipse.mylyn.internal.tasks.bugs.SupportCategory; import org.eclipse.mylyn.internal.tasks.bugs.SupportProduct; import org.eclipse.mylyn.internal.tasks.bugs.SupportProvider; import org.eclipse.mylyn.internal.tasks.bugs.SupportProviderManager; @@ -47,8 +49,16 @@ public class ReportBugOrEnhancementWizard extends Wizard { return providerProducts.toArray(); } else if (input == inputElement) { List<AbstractSupportElement> elements = new ArrayList<AbstractSupportElement>(); - elements.addAll(providerManager.getProviders()); - elements.addAll(providerManager.getCategories()); + Collection<SupportCategory> categories = providerManager.getCategories(); + for (SupportCategory category : categories) { + List<IProvider> providers = category.getProviders(); + if (!providers.isEmpty()) { + elements.add(category); + for (IProvider provider : providers) { + elements.add((AbstractSupportElement) provider); + } + } + } return elements.toArray(); } else { return new Object[0]; diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java index 41bbd7632..85fa76d91 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java @@ -94,14 +94,25 @@ public class ReportErrorPage extends WizardPage { defaultRepositoryButton.setSelection(true); selectedContribution = contributions.get(0); if (contributions.size() == 1) { - defaultRepositoryButton.setText(NLS.bind(Messages.ReportErrorPage_Report_to, getLabel(selectedContribution))); + defaultRepositoryButton.setText(NLS.bind(Messages.ReportErrorPage_Report_to, + getLabel(selectedContribution))); GridDataFactory.fillDefaults().span(2, 1).applyTo(defaultRepositoryButton); } else { + defaultRepositoryButton.setText(Messages.ReportErrorPage_Report_to_Label); contributionCombo = new Combo(composite, SWT.READ_ONLY); for (AttributeTaskMapper contribution : contributions) { contributionCombo.add(getLabel(contribution)); } contributionCombo.select(0); + contributionCombo.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetDefaultSelected(SelectionEvent e) { + int selectionIndex = contributionCombo.getSelectionIndex(); + if (selectionIndex != -1) { + selectedContribution = contributions.get(selectionIndex); + } + } + }); } final Button selectRepositoryButton = new Button(composite, SWT.RADIO); @@ -145,7 +156,8 @@ public class ReportErrorPage extends WizardPage { private String getLabel(AttributeTaskMapper contribution) { IProduct product = contribution.getProduct(); if (product.getName() != null) { - return NLS.bind(Messages.ReportErrorPage_Xprovider_Xproduct, product.getProvider().getName(), product.getName()); + return NLS.bind(Messages.ReportErrorPage_Xprovider_Xproduct, product.getProvider().getName(), + product.getName()); } else { return product.getProvider().getName(); } diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties index a9310a4f3..17e4df45c 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties @@ -3,6 +3,7 @@ ReportBugOrEnhancementWizard_Report_Bug_or_Enhancement=Report Bug or Enhancement ReportErrorPage_Details=Details: ReportErrorPage_Report_as_Bug=Report as Bug ReportErrorPage_Report_to=Report to: {0} +ReportErrorPage_Report_to_Label=Report to: ReportErrorPage_Select_repository=Select repository ReportErrorPage_AN_UNEXPETED_ERROR_HAS_OCCURED_IN_PLUGIN=An unexpected error has occured in plug-in {0} ReportErrorPage_Xprovider_Xproduct={0} - {1} |