diff options
author | spingel | 2009-08-10 23:42:07 +0000 |
---|---|---|
committer | spingel | 2009-08-10 23:42:07 +0000 |
commit | 52f1bd6d79fd6821984647a72e748943a882c89b (patch) | |
tree | 9eaf406726d767d5c8ac6953f4e5154fb6320661 /org.eclipse.mylyn.tasks.bugs | |
parent | 9de1c251be2fd67b911bf96c06439f09a7a5088e (diff) | |
download | org.eclipse.mylyn.tasks-52f1bd6d79fd6821984647a72e748943a882c89b.tar.gz org.eclipse.mylyn.tasks-52f1bd6d79fd6821984647a72e748943a882c89b.tar.xz org.eclipse.mylyn.tasks-52f1bd6d79fd6821984647a72e748943a882c89b.zip |
NEW - bug 278913: support double click on "support provider" and "supported product"
https://bugs.eclipse.org/bugs/show_bug.cgi?id=278913
Diffstat (limited to 'org.eclipse.mylyn.tasks.bugs')
2 files changed, 31 insertions, 7 deletions
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 d484f1275..df216b7d3 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 @@ -88,6 +88,8 @@ public class ReportBugOrEnhancementWizard extends Wizard { } + private SupportContentProvider contentProvider; + public ReportBugOrEnhancementWizard() { setForcePreviousAndNextButtons(true); setNeedsProgressMonitor(true); @@ -97,7 +99,8 @@ public class ReportBugOrEnhancementWizard extends Wizard { @Override public void addPages() { - SelectSupportElementPage page = new SelectSupportElementPage("selectProvider", new SupportContentProvider()); //$NON-NLS-1$ + contentProvider = new SupportContentProvider(); + SelectSupportElementPage page = new SelectSupportElementPage("selectProvider", contentProvider); //$NON-NLS-1$ page.setInput(new Object()); addPage(page); } @@ -110,7 +113,14 @@ public class ReportBugOrEnhancementWizard extends Wizard { public AbstractSupportElement getSelectedElement() { IWizardPage page = getContainer().getCurrentPage(); if (page != null) { - return ((SelectSupportElementPage) page).getSelectedElement(); + AbstractSupportElement element = ((SelectSupportElementPage) page).getSelectedElement(); + if (!(element instanceof SupportProduct)) { + Object[] elements = contentProvider.getElements(element); + if (elements.length == 1) { + return (AbstractSupportElement) elements[0]; + } + } + return element; } return null; } diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java index 3836760a7..3a160fb82 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java @@ -23,6 +23,7 @@ import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.OpenEvent; import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.jface.wizard.IWizardPage; @@ -195,7 +196,7 @@ public class SelectSupportElementPage extends WizardPage { } iconLabel.setImage(image); titleLabel.setText(data.getName()); - descriptionLabel.setText(data.getDescription()); + descriptionLabel.setText((data.getDescription() != null) ? data.getDescription(): ""); toolBarManager.removeAll(); final String url = data.getUrl(); @@ -321,8 +322,15 @@ public class SelectSupportElementPage extends WizardPage { }); viewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { - if (getWizard().performFinish()) { - ((WizardDialog) getContainer()).close(); + if (getWizard().canFinish()) { + if (getWizard().performFinish()) { + ((WizardDialog) getContainer()).close(); + } + } else { + IWizardPage nextPage = getNextPage(); + if (nextPage != null) { + ((WizardDialog) getContainer()).showPage(nextPage); + } } } }); @@ -356,7 +364,13 @@ public class SelectSupportElementPage extends WizardPage { }); viewer.setInput(input); - setPageComplete(false); + Object[] elements = contentProvider.getElements(input); + if (elements.length == 1) { + viewer.setSelection(new StructuredSelection(elements[0])); + } else { + setPageComplete(false); + } + setControl(container); Dialog.applyDialogFont(container); } @@ -399,6 +413,6 @@ public class SelectSupportElementPage extends WizardPage { page.setWizard(getWizard()); return page; } - return null; + return super.getNextPage(); } }
\ No newline at end of file |