ASSIGNED - bug 310059: [patch][api][framework] provide 'update
configuration' button on query pages 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=310059
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 af93ef9..f8914ca 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
@@ -2477,6 +2477,7 @@
 		super(Messages.BugzillaSearchPage_Bugzilla_Query, repository, null);
 
 		toolkit = new FormToolkit(Display.getCurrent());
+		setNeedsClearButton(true);
 		setMessage(Messages.BugzillaSearchPage_Enter_search_option);
 		BugzillaRepositoryConnector connector = (BugzillaRepositoryConnector) TasksUi.getRepositoryConnector(getTaskRepository().getConnectorKind());
 		repositoryConfiguration = connector.getRepositoryConfiguration(getTaskRepository().getUrl());
@@ -2485,7 +2486,7 @@
 	public BugzillaSearchPage(TaskRepository repository, IRepositoryQuery origQuery) {
 		super(Messages.BugzillaSearchPage_Bugzilla_Query, repository, origQuery);
 		originalQuery = origQuery;
-
+		setNeedsClearButton(true);
 		setDescription(Messages.BugzillaSearchPage_Select_the_Bugzilla_query_parameters);
 		setMessage(Messages.BugzillaSearchPage_Enter_search_option);
 		toolkit = new FormToolkit(Display.getCurrent());
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java
index ca37a4d..cb1e440 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java
@@ -57,6 +57,8 @@
 
 	private boolean needsRepositoryConfiguration = true;
 
+	private boolean needsClearButton = false;
+
 	public AbstractRepositoryQueryPage2(String pageName, TaskRepository repository, IRepositoryQuery query) {
 		super(pageName, repository, query);
 		this.connector = TasksUi.getRepositoryConnector(getTaskRepository().getConnectorKind());
@@ -67,6 +69,10 @@
 		this.needsRepositoryConfiguration = needsRepositoryConfiguration;
 	}
 
+	public void setNeedsClearButton(boolean needsClearButton) {
+		this.needsClearButton = needsClearButton;
+	}
+
 	public void createControl(Composite parent) {
 		Composite composite = new Composite(parent, SWT.NONE);
 		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(composite);
@@ -129,16 +135,21 @@
 	}
 
 	protected void createButtons(final Composite control) {
-		Button clearButton = new Button(control, SWT.PUSH);
-		clearButton.setText(Messages.AbstractRepositoryQueryPage2_Clear_Fields);
-		clearButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
-		clearButton.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				clearFields();
-			}
+		if (getSearchContainer() == null) {
+			return;
+		}
+		if (needsClearButton) {
+			Button clearButton = new Button(control, SWT.PUSH);
+			clearButton.setText(Messages.AbstractRepositoryQueryPage2_Clear_Fields);
+			clearButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+			clearButton.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					clearFields();
+				}
 
-		});
+			});
+		}
 		if (needsRepositoryConfiguration) {
 			updateButton = new Button(control, SWT.PUSH);
 			updateButton.setText(Messages.AbstractRepositoryQueryPage2__Refresh_From_Repository);
@@ -319,5 +330,7 @@
 		return false;
 	}
 
-	abstract public void clearFields();
+	public void clearFields() {
+
+	}
 }