diff options
author | Frank Becker | 2011-08-20 20:02:33 +0000 |
---|---|---|
committer | Frank Becker | 2011-08-20 20:02:33 +0000 |
commit | 8238a17e893542cdce3a6c42b569f0e907547012 (patch) | |
tree | e789224dee2c5071e8109c02ec8254b5fbc48c92 /org.eclipse.mylyn.bugzilla.ui | |
parent | 02f7880167a52d79a1ba29cc75a948591c53bb9a (diff) | |
download | org.eclipse.mylyn.tasks-8238a17e893542cdce3a6c42b569f0e907547012.tar.gz org.eclipse.mylyn.tasks-8238a17e893542cdce3a6c42b569f0e907547012.tar.xz org.eclipse.mylyn.tasks-8238a17e893542cdce3a6c42b569f0e907547012.zip |
ASSIGNED - bug 310059: [patch][api][framework] provide 'update
configuration' button on query pages
https://bugs.eclipse.org/bugs/show_bug.cgi?id=310059
Diffstat (limited to 'org.eclipse.mylyn.bugzilla.ui')
-rw-r--r-- | org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java | 250 |
1 files changed, 131 insertions, 119 deletions
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java index bbab64973..9943e3b84 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java @@ -61,12 +61,13 @@ import org.eclipse.mylyn.internal.provisional.commons.ui.dialogs.AbstractInPlace import org.eclipse.mylyn.internal.provisional.commons.ui.dialogs.IInPlaceDialogListener; import org.eclipse.mylyn.internal.provisional.commons.ui.dialogs.InPlaceCheckBoxTreeDialog; import org.eclipse.mylyn.internal.provisional.commons.ui.dialogs.InPlaceDialogEvent; +import org.eclipse.mylyn.internal.provisional.tasks.ui.wizards.AbstractRepositoryQueryPage2; import org.eclipse.mylyn.internal.tasks.ui.util.WebBrowserDialog; +import org.eclipse.mylyn.internal.tasks.ui.wizards.QueryWizardDialog; import org.eclipse.mylyn.tasks.core.IRepositoryQuery; import org.eclipse.mylyn.tasks.core.RepositoryStatus; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.ui.TasksUi; -import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; @@ -103,7 +104,7 @@ import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds; * @author Frank Becker */ @SuppressWarnings("restriction") -public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements Listener { +public class BugzillaSearchPage extends AbstractRepositoryQueryPage2 implements Listener { private static final int HEIGHT_ATTRIBUTE_COMBO = 30; @@ -478,8 +479,6 @@ public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements L } }; - private Text queryTitle; - private final class ModifyListenerImplementation implements ModifyListener { public void modifyText(ModifyEvent e) { if (isControlCreated()) { @@ -509,107 +508,59 @@ public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements L } } - public BugzillaSearchPage(TaskRepository repository) { - super(Messages.BugzillaSearchPage_Bugzilla_Query, repository); - - toolkit = new FormToolkit(Display.getCurrent()); - setMessage(Messages.BugzillaSearchPage_Enter_search_option); - } - - public BugzillaSearchPage(TaskRepository repository, IRepositoryQuery origQuery) { - super(Messages.BugzillaSearchPage_Bugzilla_Query, repository, origQuery); - originalQuery = origQuery; - setDescription(Messages.BugzillaSearchPage_Select_the_Bugzilla_query_parameters); - setMessage(Messages.BugzillaSearchPage_Enter_search_option); - toolkit = new FormToolkit(Display.getCurrent()); - } - - public void createControl(Composite parent) { - initializeDialogUnits(parent); - readConfiguration(); - - Composite control = new Composite(parent, SWT.NONE); - GridLayout layout = new GridLayout(1, false); - layout.marginHeight = 0; - control.setLayout(layout); - control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - - createOptionsGroup(control); - createButtons(control); - - Dialog.applyDialogFont(control); - setControl(control); - - PlatformUI.getWorkbench().getHelpSystem().setHelp(control, BugzillaUiPlugin.SEARCH_PAGE_CONTEXT); - } - - private void createButtons(Composite control) { - Composite buttonComposite = new Composite(control, SWT.NONE); - GridLayout layout = new GridLayout(2, false); - layout.marginWidth = 0; - buttonComposite.setLayout(layout); - GridData g = new GridData(GridData.FILL_HORIZONTAL); - Button clearButton = new Button(buttonComposite, SWT.PUSH); + @Override + protected void createButtons(Composite control) { + if (originalQuery != null) { + return; + } + Button clearButton = new Button(control, SWT.PUSH); clearButton.setText(Messages.BugzillaSearchPage_ClearFields); clearButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); clearButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - product.deselectAll(); - component.deselectAll(); - version.deselectAll(); - target.deselectAll(); - status.deselectAll(); - resolution.deselectAll(); - severity.deselectAll(); - priority.deselectAll(); - hardware.deselectAll(); - os.deselectAll(); - summaryOperation.select(0); - commentOperation.select(0); - emailOperation.select(0); - - for (Button emailButton : emailButtons) { - emailButton.setSelection(false); - } - summaryPattern.setText(""); //$NON-NLS-1$ - commentPattern.setText(""); //$NON-NLS-1$ - emailPattern.setText(""); //$NON-NLS-1$ - emailOperation2.select(0); - for (Button element : emailButtons2) { - element.setSelection(false); - } - emailPattern2.setText(""); //$NON-NLS-1$ - keywords.setText(""); //$NON-NLS-1$ - keywordsOperation.select(0); - whiteboardPattern.setText(""); //$NON-NLS-1$ - whiteboardOperation.select(0); - daysText.setText(""); //$NON-NLS-1$ - - charts.clear(); - charts.add(0, new Chart()); - recreateChartControls(); - + clearFields(); } - }); - Button updateButton = new Button(buttonComposite, SWT.PUSH); - updateButton.setText(Messages.BugzillaSearchPage_Update_Attributes_from_Repository); - updateButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false)); - updateButton.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - if (getTaskRepository() != null) { - updateConfiguration(true); - } else { - MessageDialog.openInformation(Display.getCurrent().getActiveShell(), - IBugzillaConstants.TITLE_MESSAGE_DIALOG, - Messages.BugzillaSearchPage_No_repository_available); - } - } }); + super.createButtons(control); + } + + private void clearFields() { + product.deselectAll(); + component.deselectAll(); + version.deselectAll(); + target.deselectAll(); + status.deselectAll(); + resolution.deselectAll(); + severity.deselectAll(); + priority.deselectAll(); + hardware.deselectAll(); + os.deselectAll(); + summaryOperation.select(0); + commentOperation.select(0); + emailOperation.select(0); + + for (Button emailButton : emailButtons) { + emailButton.setSelection(false); + } + summaryPattern.setText(""); //$NON-NLS-1$ + commentPattern.setText(""); //$NON-NLS-1$ + emailPattern.setText(""); //$NON-NLS-1$ + emailOperation2.select(0); + for (Button element : emailButtons2) { + element.setSelection(false); + } + emailPattern2.setText(""); //$NON-NLS-1$ + keywords.setText(""); //$NON-NLS-1$ + keywordsOperation.select(0); + whiteboardPattern.setText(""); //$NON-NLS-1$ + whiteboardOperation.select(0); + daysText.setText(""); //$NON-NLS-1$ - buttonComposite.setLayoutData(g); + charts.clear(); + charts.add(0, new Chart()); + recreateChartControls(); } private void createOptionsGroup(Composite control) { @@ -645,18 +596,6 @@ public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements L basicComposite.setLayoutData(g); Dialog.applyDialogFont(basicComposite); - if (!inSearchContainer()) { - final Label queryTitleLabel = new Label(basicComposite, SWT.NONE); - queryTitleLabel.setText(Messages.BugzillaSearchPage_Query_Title); - - queryTitle = new Text(basicComposite, SWT.BORDER); - queryTitle.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1)); - if (originalQuery != null) { - queryTitle.setText(originalQuery.getSummary()); - } - queryTitle.addModifyListener(new ModifyListenerImplementation()); - queryTitle.setFocus(); - } // Info text Label labelSummary = new Label(basicComposite, SWT.LEFT); labelSummary.setText(Messages.BugzillaSearchPage_Summary); @@ -2312,11 +2251,6 @@ public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements L return shell; } - @Override - public String getQueryTitle() { - return (queryTitle != null) ? queryTitle.getText() : ""; //$NON-NLS-1$ - } - private void setSelection(List listControl, String[] selection) { for (String item : selection) { int index = listControl.indexOf(item); @@ -2335,12 +2269,6 @@ public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements L } @Override - public void applyTo(IRepositoryQuery query) { - query.setUrl(getQueryURL(getTaskRepository(), getQueryParameters())); - query.setSummary(getQueryTitle()); - } - - @Override public void dispose() { if (toolkit != null) { if (toolkit.getColors() != null) { @@ -2554,4 +2482,88 @@ public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements L refreshChartControls(); Dialog.applyDialogFont(chartSection); } + + public BugzillaSearchPage(TaskRepository repository) { + super(Messages.BugzillaSearchPage_Bugzilla_Query, repository, null); + + toolkit = new FormToolkit(Display.getCurrent()); + setMessage(Messages.BugzillaSearchPage_Enter_search_option); + BugzillaRepositoryConnector connector = (BugzillaRepositoryConnector) TasksUi.getRepositoryConnector(getTaskRepository().getConnectorKind()); + repositoryConfiguration = connector.getRepositoryConfiguration(getTaskRepository().getUrl()); + } + + public BugzillaSearchPage(TaskRepository repository, IRepositoryQuery origQuery) { + super(Messages.BugzillaSearchPage_Bugzilla_Query, repository, origQuery); + originalQuery = origQuery; + + setDescription(Messages.BugzillaSearchPage_Select_the_Bugzilla_query_parameters); + setMessage(Messages.BugzillaSearchPage_Enter_search_option); + toolkit = new FormToolkit(Display.getCurrent()); + BugzillaRepositoryConnector connector = (BugzillaRepositoryConnector) TasksUi.getRepositoryConnector(getTaskRepository().getConnectorKind()); + repositoryConfiguration = connector.getRepositoryConfiguration(getTaskRepository().getUrl()); + } + + @Override + protected void createPageContent(Composite parent) { + Composite composite = new Composite(parent, SWT.BORDER); + composite.setLayout(new GridLayout(2, false)); + createOptionsGroup(composite); +// createButtons(composite); + } + + @Override + protected boolean hasRepositoryConfiguration() { + return repositoryConfiguration != null; + } + + @Override + protected void doRefresh() { + // ignore + + } + + @Override + protected boolean restoreState(IRepositoryQuery query) { + if (originalQuery != null) { + try { + updateDefaults(originalQuery.getUrl()); + refreshChartControls(); + } catch (UnsupportedEncodingException e) { + // ignore + } + } + + return false; + } + + @Override + public void applyTo(IRepositoryQuery query) { + query.setUrl(getQueryURL(getTaskRepository(), getQueryParameters())); + query.setSummary(getQueryTitle()); + saveState(); + } + + @Override + public void setExtraButtonState(Button button) { + Integer obj = (Integer) button.getData(); + if (obj == QueryWizardDialog.CLEAR_BUTTON_ID) { + if (!button.isVisible()) { + button.setVisible(true); + } + button.setEnabled(true); + } else { + super.setExtraButtonState(button); + } + } + + @Override + public boolean handleExtraButtonPressed(int buttonId) { + if (buttonId == QueryWizardDialog.CLEAR_BUTTON_ID) { + clearFields(); + return true; + } else { + return super.handleExtraButtonPressed(buttonId); + } + } + } |