View | Details | Raw Unified | Return to bug 171724
Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiPlugin.java (+4 lines)
Lines 269-274 Link Here
269
				queryOptionsToString(config.getTargetMilestones()));
269
				queryOptionsToString(config.getTargetMilestones()));
270
		monitor.worked(1);
270
		monitor.worked(1);
271
271
272
		prefs.setValue(IBugzillaConstants.VALUES_KEYWORDS + PREF_DELIM_REPOSITORY + repositoryUrl,
273
				queryOptionsToString(config.getKeywords()));
274
		monitor.worked(1);
275
		
272
		for (String product : config.getProducts()) {
276
		for (String product : config.getProducts()) {
273
			prefs.setValue(IBugzillaConstants.VALUES_COMPONENT + PREF_DELIM_REPOSITORY + repositoryUrl
277
			prefs.setValue(IBugzillaConstants.VALUES_COMPONENT + PREF_DELIM_REPOSITORY + repositoryUrl
274
					+ PREF_DELIM_REPOSITORY + product, queryOptionsToString(config.getComponents(product)));
278
					+ PREF_DELIM_REPOSITORY + product, queryOptionsToString(config.getComponents(product)));
(-)src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java (-377 / +438 lines)
Lines 20-29 Link Here
20
import org.eclipse.jface.dialogs.IDialogSettings;
20
import org.eclipse.jface.dialogs.IDialogSettings;
21
import org.eclipse.jface.dialogs.MessageDialog;
21
import org.eclipse.jface.dialogs.MessageDialog;
22
import org.eclipse.jface.operation.IRunnableWithProgress;
22
import org.eclipse.jface.operation.IRunnableWithProgress;
23
import org.eclipse.jface.window.Window;
23
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
24
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
24
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryQuery;
25
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryQuery;
25
import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
26
import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
26
import org.eclipse.mylyn.internal.bugzilla.ui.BugzillaUiPlugin;
27
import org.eclipse.mylyn.internal.bugzilla.ui.BugzillaUiPlugin;
28
import org.eclipse.mylyn.internal.bugzilla.ui.editor.KeywordsDialog;
27
import org.eclipse.mylyn.monitor.core.StatusHandler;
29
import org.eclipse.mylyn.monitor.core.StatusHandler;
28
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
30
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
29
import org.eclipse.mylyn.tasks.core.TaskRepository;
31
import org.eclipse.mylyn.tasks.core.TaskRepository;
Lines 31-36 Link Here
31
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
33
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
32
import org.eclipse.mylyn.tasks.ui.search.AbstractRepositoryQueryPage;
34
import org.eclipse.mylyn.tasks.ui.search.AbstractRepositoryQueryPage;
33
import org.eclipse.swt.SWT;
35
import org.eclipse.swt.SWT;
36
import org.eclipse.swt.custom.SashForm;
34
import org.eclipse.swt.events.ModifyEvent;
37
import org.eclipse.swt.events.ModifyEvent;
35
import org.eclipse.swt.events.ModifyListener;
38
import org.eclipse.swt.events.ModifyListener;
36
import org.eclipse.swt.events.SelectionAdapter;
39
import org.eclipse.swt.events.SelectionAdapter;
Lines 63-71 Link Here
63
66
64
	private static final String TITLE_BUGZILLA_QUERY = "Bugzilla Query";
67
	private static final String TITLE_BUGZILLA_QUERY = "Bugzilla Query";
65
68
66
	private static final int HEIGHT_ATTRIBUTE_COMBO = 60;
69
	private static final int HEIGHT_ATTRIBUTE_COMBO = 70;
67
68
	protected Combo summaryPattern = null;
69
70
70
	// protected Combo repositoryCombo = null;
71
	// protected Combo repositoryCombo = null;
71
72
Lines 75-80 Link Here
75
76
76
	private static ArrayList<BugzillaSearchData> previousCommentPatterns = new ArrayList<BugzillaSearchData>(20);
77
	private static ArrayList<BugzillaSearchData> previousCommentPatterns = new ArrayList<BugzillaSearchData>(20);
77
78
79
	private static ArrayList<BugzillaSearchData> previousKeywords = new ArrayList<BugzillaSearchData>(20);
80
78
	private boolean firstTime = true;
81
	private boolean firstTime = true;
79
82
80
	private IDialogSettings fDialogSettings;
83
	private IDialogSettings fDialogSettings;
Lines 87-97 Link Here
87
90
88
	private static final String[] emailOperationValues = { "substring", "exact", "regexp" };
91
	private static final String[] emailOperationValues = { "substring", "exact", "regexp" };
89
92
93
	private static final String[] keywordOperationText = { "all", "any", "none" };
94
95
	private static final String[] keywordOperationValues = { "allwords", "anywords", "nowords" };
96
90
	private static final String[] emailRoleValues = { "emailassigned_to1", "emailreporter1", "emailcc1",
97
	private static final String[] emailRoleValues = { "emailassigned_to1", "emailreporter1", "emailcc1",
91
			"emaillongdesc1" };
98
			"emaillongdesc1" };
92
99
93
	// protected IPreferenceStore prefs =
100
	// protected IPreferenceStore prefs = BugzillaUiPlugin.getDefault().getPreferenceStore();
94
	// BugzillaUiPlugin.getDefault().getPreferenceStore();
95
101
96
	private BugzillaRepositoryQuery originalQuery = null;
102
	private BugzillaRepositoryQuery originalQuery = null;
97
103
Lines 110-115 Link Here
110
116
111
	// private TaskRepository selectedRepository = null;
117
	// private TaskRepository selectedRepository = null;
112
118
119
	private final class ModifyListenerImplementation implements ModifyListener {
120
		public void modifyText(ModifyEvent e) {
121
			if (scontainer != null) {
122
				scontainer.setPerformActionEnabled(canQuery());
123
			}
124
		}
125
	}
126
113
	private static class BugzillaSearchData {
127
	private static class BugzillaSearchData {
114
		/** Pattern to match on */
128
		/** Pattern to match on */
115
		String pattern;
129
		String pattern;
Lines 154-357 Link Here
154
		readConfiguration();
168
		readConfiguration();
155
169
156
		Composite control = new Composite(parent, SWT.NONE);
170
		Composite control = new Composite(parent, SWT.NONE);
157
		GridLayout layout = new GridLayout(2, false);
171
		GridLayout layout = new GridLayout(1, false);
158
		layout.marginHeight = 0;
172
		layout.marginHeight = 0;
159
		layout.marginWidth = 0;
160
		control.setLayout(layout);
173
		control.setLayout(layout);
161
		GridData gd = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL);
174
		control.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL));
162
		control.setLayoutData(gd);
163
175
164
		if (scontainer == null) {
176
//		if (scontainer == null) {
165
			// Not presenting in search pane so want query title
177
			// Not presenting in search pane so want query title
166
			super.createControl(control);
178
//			super.createControl(control);
167
		}
179
//			Label lblName = new Label(control, SWT.NONE);
180
//			final GridData gridData = new GridData();
181
//			lblName.setLayoutData(gridData);
182
//			lblName.setText("Query Title:");
183
//
184
//			title = new Text(control, SWT.BORDER);
185
//			title.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
186
//			title.addModifyListener(new ModifyListener() {
187
//				public void modifyText(ModifyEvent e) {
188
//					setPageComplete(isPageComplete());
189
//				}
190
//			});
191
//		}
192
168
		// else {
193
		// else {
169
		// // if (repository == null) {
194
		// // if (repository == null) {
170
		// // search pane so add repository selection
195
		// // search pane so add repository selection
171
		// createRepositoryGroup(control);
196
		//      createRepositoryGroup(control);
172
		// }
197
		//    }
173
		createSearchGroup(control);
174
		createOptionsGroup(control);
198
		createOptionsGroup(control);
175
199
		createSearchGroup(control);
176
		createEmail(control);
177
		createLastDays(control);
178
200
179
		// createSaveQuery(control);
201
		// createSaveQuery(control);
180
		// createMaxHits(control);
202
		// createMaxHits(control);
181
		// input = new
203
		// input = new SavedQueryFile(BugzillaPlugin.getDefault().getStateLocation().toString(), "/queries");
182
		// SavedQueryFile(BugzillaPlugin.getDefault().getStateLocation().toString(),
183
		// "/queries");
184
		// createUpdate(control);
204
		// createUpdate(control);
185
		// if (originalQuery != null) {
205
		// if (originalQuery != null) {
186
		// try {
206
		// try {
187
		// updateDefaults(originalQuery.getQueryUrl(),
207
		//   updateDefaults(originalQuery.getQueryUrl(), String.valueOf(originalQuery.getMaxHits()));
188
		// String.valueOf(originalQuery.getMaxHits()));
189
		// } catch (UnsupportedEncodingException e) {
208
		// } catch (UnsupportedEncodingException e) {
190
		// // ignore
209
		//   // ignore
191
		// }
210
		// }
192
		// }
211
		// }
193
		setControl(control);
212
		setControl(control);
194
		WorkbenchHelpSystem.getInstance().setHelp(control, BugzillaUiPlugin.SEARCH_PAGE_CONTEXT);
213
		WorkbenchHelpSystem.getInstance().setHelp(control, BugzillaUiPlugin.SEARCH_PAGE_CONTEXT);
195
	}
214
	}
196
215
197
	private void createSearchGroup(Composite control) {
216
	protected void createOptionsGroup(Composite control) {
198
		Group group = new Group(control, SWT.NONE);
217
		GridLayout sashFormLayout = new GridLayout();
199
		GridLayout layout = new GridLayout();
218
		sashFormLayout.numColumns = 4;
200
		layout.numColumns = 1;
219
		sashFormLayout.marginHeight = 5;
201
		group.setLayout(layout);
220
		sashFormLayout.marginWidth = 5;
202
		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
221
		sashFormLayout.horizontalSpacing = 5;
203
		gd.horizontalSpan = 5;
222
204
		group.setLayoutData(gd);
223
		final Composite composite = new Composite(control, SWT.NONE);
205
224
		composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
206
		createTextSearchComposite(group);
225
		final GridLayout gridLayout = new GridLayout();
207
		createComment(group);
226
		gridLayout.marginBottom = 8;
208
	}
227
		gridLayout.marginHeight = 0;
209
228
		gridLayout.marginWidth = 0;
210
	protected Control createTextSearchComposite(Composite control) {
229
		gridLayout.numColumns = 3;
211
		GridData gd;
230
		composite.setLayout(gridLayout);
212
		Label label;
231
213
232
		if (!inSearchContainer()) {
214
		Composite group = new Composite(control, SWT.NONE);
233
			final Label queryTitleLabel = new Label(composite, SWT.NONE);
215
		GridLayout layout = new GridLayout(3, false);
234
			queryTitleLabel.setText("Query Title:");
216
		group.setLayout(layout);
235
217
		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
236
			Text queryTitle = new Text(composite, SWT.BORDER);
218
237
			queryTitle.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
219
		gd = new GridData(GridData.BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
238
			queryTitle.addModifyListener(new ModifyListener() {
220
		gd.horizontalSpan = 2;
239
				public void modifyText(ModifyEvent e) {
221
		group.setLayoutData(gd);
240
					setPageComplete(isPageComplete());
222
241
				}
242
			});
243
			if (originalQuery != null) {
244
				queryTitle.setText(originalQuery.getSummary());
245
			}
246
			title = queryTitle;
247
			title.setFocus();
248
		}
249
250
		final Label label = new Label(composite, SWT.NONE);
251
		final GridData gd_label = new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1);
252
		gd_label.heightHint = 3;
253
		label.setLayoutData(gd_label);
254
		
223
		// Info text
255
		// Info text
224
		label = new Label(group, SWT.LEFT);
256
		Label labelSummary = new Label(composite, SWT.LEFT);
225
		label.setText("Summary: ");
257
		labelSummary.setText("Summary: ");
226
		gd = new GridData(GridData.BEGINNING);
227
		gd.horizontalSpan = 1;
228
		label.setLayoutData(gd);
229
258
230
		// Pattern combo
259
		// Pattern combo
231
		summaryPattern = new Combo(group, SWT.SINGLE | SWT.BORDER);
260
		summaryPattern = new Combo(composite, SWT.SINGLE | SWT.BORDER);
232
		summaryPattern.addModifyListener(new ModifyListener() {
261
		summaryPattern.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
233
			public void modifyText(ModifyEvent e) {
262
		summaryPattern.addModifyListener(new ModifyListenerImplementation());
234
				if (scontainer != null) {
235
					scontainer.setPerformActionEnabled(canQuery());
236
				}
237
			}
238
		});
239
		summaryPattern.addSelectionListener(new SelectionAdapter() {
263
		summaryPattern.addSelectionListener(new SelectionAdapter() {
240
241
			@Override
264
			@Override
242
			public void widgetSelected(SelectionEvent e) {
265
			public void widgetSelected(SelectionEvent e) {
243
				handleWidgetSelected(summaryPattern, summaryOperation, previousSummaryPatterns);
266
				handleWidgetSelected(summaryPattern, summaryOperation, previousSummaryPatterns);
244
			}
267
			}
245
		});
268
		});
246
		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
247
		summaryPattern.setLayoutData(gd);
248
269
249
		summaryOperation = new Combo(group, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
270
		summaryOperation = new Combo(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
250
		summaryOperation.setItems(patternOperationText);
271
		summaryOperation.setItems(patternOperationText);
251
		summaryOperation.setText(patternOperationText[0]);
272
		summaryOperation.setText(patternOperationText[0]);
252
		summaryOperation.select(0);
273
		summaryOperation.select(0);
253
274
254
		return group;
255
	}
256
257
	private Control createComment(Composite control) {
258
		GridData gd;
259
		Label label;
260
261
		Composite group = new Composite(control, SWT.NONE);
262
		GridLayout layout = new GridLayout(3, false);
263
		group.setLayout(layout);
264
		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
265
266
		gd = new GridData(GridData.BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
267
		gd.horizontalSpan = 2;
268
		group.setLayoutData(gd);
269
270
		// Info text
275
		// Info text
271
		label = new Label(group, SWT.LEFT);
276
		Label labelComment = new Label(composite, SWT.LEFT);
272
		label.setText("Comment: ");
277
		labelComment.setText("Comment: ");
273
		gd = new GridData(GridData.BEGINNING);
274
		label.setLayoutData(gd);
275
278
276
		// Comment pattern combo
279
		// Comment pattern combo
277
		commentPattern = new Combo(group, SWT.SINGLE | SWT.BORDER);
280
		commentPattern = new Combo(composite, SWT.SINGLE | SWT.BORDER);
278
		commentPattern.addModifyListener(new ModifyListener() {
281
		commentPattern.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
279
			public void modifyText(ModifyEvent e) {
282
		commentPattern.addModifyListener(new ModifyListenerImplementation());
280
				if (scontainer != null) {
281
					scontainer.setPerformActionEnabled(canQuery());
282
				}
283
			}
284
		});
285
		commentPattern.addSelectionListener(new SelectionAdapter() {
283
		commentPattern.addSelectionListener(new SelectionAdapter() {
286
287
			@Override
284
			@Override
288
			public void widgetSelected(SelectionEvent e) {
285
			public void widgetSelected(SelectionEvent e) {
289
				handleWidgetSelected(commentPattern, commentOperation, previousCommentPatterns);
286
				handleWidgetSelected(commentPattern, commentOperation, previousCommentPatterns);
290
			}
287
			}
291
		});
288
		});
292
		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
293
		commentPattern.setLayoutData(gd);
294
289
295
		commentOperation = new Combo(group, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
290
		commentOperation = new Combo(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
296
		commentOperation.setItems(patternOperationText);
291
		commentOperation.setItems(patternOperationText);
297
		commentOperation.setText(patternOperationText[0]);
292
		commentOperation.setText(patternOperationText[0]);
298
		commentOperation.select(0);
293
		commentOperation.select(0);
299
294
300
		return group;
295
		Label labelEmail = new Label(composite, SWT.LEFT);
301
	}
296
		labelEmail.setText("Email: ");
302
297
303
	protected Control createOptionsGroup(Composite control) {
298
		// pattern combo
304
		Group group = new Group(control, SWT.NONE);
299
		emailPattern = new Combo(composite, SWT.SINGLE | SWT.BORDER);
305
		// group.setText("Bug Attributes");
300
		emailPattern.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
306
		GridLayout layout = new GridLayout();
301
		emailPattern.addModifyListener(new ModifyListenerImplementation());
307
		layout.numColumns = 1;
302
		emailPattern.addSelectionListener(new SelectionAdapter() {
308
		group.setLayout(layout);
303
			@Override
309
		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
304
			public void widgetSelected(SelectionEvent e) {
310
		gd.horizontalSpan = 5;
305
				handleWidgetSelected(emailPattern, emailOperation, previousEmailPatterns);
311
		group.setLayoutData(gd);
306
			}
307
		});
312
308
313
		createProductAttributes(group);
309
		// operation combo
314
		createLists(group);
310
		emailOperation = new Combo(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
315
		createUpdate(group);
311
		emailOperation.setItems(emailOperationText);
312
		emailOperation.setText(emailOperationText[0]);
313
		emailOperation.select(0);
314
		new Label(composite, SWT.NONE);
316
315
317
		return group;
316
		Composite emailComposite = new Composite(composite, SWT.NONE);
318
	}
317
		emailComposite.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
318
		GridLayout emailLayout = new GridLayout();
319
		emailLayout.marginWidth = 0;
320
		emailLayout.marginHeight = 0;
321
		emailLayout.numColumns = 4;
322
		emailComposite.setLayout(emailLayout);
319
323
320
	/**
324
		// Composite buttons = new Composite(group, SWT.NONE);
321
	 * Creates the area for selection on product/component/version.
325
		// layout = new GridLayout(4, false);
322
	 */
326
		// buttons.setLayout(layout);
323
	protected Control createProductAttributes(Composite control) {
327
		// buttons.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
328
		// gd = new GridData(GridData.BEGINNING);
329
		// gd.horizontalSpan = 3;
330
		// buttons.setLayoutData(gd);
324
331
325
		GridData gd;
332
		Button button0 = new Button(emailComposite, SWT.CHECK);
326
		GridLayout layout;
333
		button0.setText("bug owner");
327
334
328
		// Search expression
335
		Button button1 = new Button(emailComposite, SWT.CHECK);
329
		Composite group = new Composite(control, SWT.NONE);
336
		button1.setText("reporter");
330
		layout = new GridLayout();
337
331
		layout.numColumns = 4;
338
		Button button2 = new Button(emailComposite, SWT.CHECK);
332
		group.setLayout(layout);
339
		button2.setText("CC list");
333
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
340
334
		gd.horizontalSpan = 5;
341
		Button button3 = new Button(emailComposite, SWT.CHECK);
335
		group.setLayoutData(gd);
342
		button3.setText("commenter");
343
344
		emailButtons = new Button[] { button0, button1, button2, button3 };
345
346
		Label labelKeywords = new Label(composite, SWT.NONE);
347
		labelKeywords.setText("Keywords:");
348
349
		Composite keywordsComposite = new Composite(composite, SWT.NONE);
350
		keywordsComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
351
		GridLayout keywordsLayout = new GridLayout();
352
		keywordsLayout.marginWidth = 0;
353
		keywordsLayout.marginHeight = 0;
354
		keywordsLayout.numColumns = 3;
355
		keywordsComposite.setLayout(keywordsLayout);
356
357
		keywordsOperation = new Combo(keywordsComposite, SWT.READ_ONLY);
358
		keywordsOperation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
359
		keywordsOperation.setItems(keywordOperationText);
360
		keywordsOperation.setText(keywordOperationText[0]);
361
		keywordsOperation.select(0);
362
363
		keywords = new Combo(keywordsComposite, SWT.NONE);
364
		keywords.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
365
		keywords.addModifyListener(new ModifyListenerImplementation());
366
		keywords.addSelectionListener(new SelectionAdapter() {
367
			@Override
368
			public void widgetSelected(SelectionEvent e) {
369
				handleWidgetSelected(keywords, keywordsOperation, previousKeywords);
370
			}
371
		});
336
372
337
		// Labels
373
		Button keywordsSelectButton = new Button(keywordsComposite, SWT.NONE);
338
		Label label = new Label(group, SWT.LEFT);
374
		keywordsSelectButton.addSelectionListener(new SelectionAdapter() {
339
		label.setText("Product");
375
			public void widgetSelected(SelectionEvent e) {
340
376
				KeywordsDialog dialog = new KeywordsDialog(getShell(), keywords.getText(), //
341
		label = new Label(group, SWT.LEFT);
377
						Arrays.asList(BugzillaUiPlugin.getQueryOptions(IBugzillaConstants.VALUES_KEYWORDS, //
342
		label.setText("Component");
378
								null, repository.getUrl())));
343
379
				if (dialog.open() == Window.OK) {
344
		label = new Label(group, SWT.LEFT);
380
					keywords.setText(dialog.getSelectedKeywordsString());
345
		label.setText("Version");
381
				}
346
382
			}
347
		label = new Label(group, SWT.LEFT);
383
		});
348
		label.setText("Milestone");
384
		keywordsSelectButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
349
385
		keywordsSelectButton.setText("Select...");
350
		// Lists
386
		SashForm sashForm = new SashForm(control, SWT.VERTICAL);
351
		product = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
387
		sashForm.setLayout(sashFormLayout);
352
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
388
		final GridData gd_sashForm = new GridData(SWT.FILL, SWT.FILL, true, true);
353
		gd.heightHint = HEIGHT_ATTRIBUTE_COMBO;
389
		gd_sashForm.widthHint = 500;
354
		product.setLayoutData(gd);
390
		sashForm.setLayoutData(gd_sashForm);
391
392
		GridLayout topLayout = new GridLayout();
393
		topLayout.numColumns = 4;
394
		SashForm topForm = new SashForm(sashForm, SWT.NONE);
395
		GridData topLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
396
		topLayoutData.widthHint = 500;
397
		topForm.setLayoutData(topLayoutData);
398
		topForm.setLayout(topLayout);
399
400
		GridLayout productLayout = new GridLayout();
401
		productLayout.marginWidth = 0;
402
		productLayout.marginHeight = 0;
403
		productLayout.horizontalSpacing = 0;
404
		Composite productComposite = new Composite(topForm, SWT.NONE);
405
		productComposite.setLayout(productLayout);
406
407
		Label productLabel = new Label(productComposite, SWT.LEFT);
408
		productLabel.setText("Product");
409
410
		GridData productLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
411
		productLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
412
		product = new List(productComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
413
		product.setLayoutData(productLayoutData);
355
		product.addSelectionListener(new SelectionAdapter() {
414
		product.addSelectionListener(new SelectionAdapter() {
356
			@Override
415
			@Override
357
			public void widgetSelected(SelectionEvent e) {
416
			public void widgetSelected(SelectionEvent e) {
Lines 371-560 Link Here
371
			}
430
			}
372
		});
431
		});
373
432
374
		component = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
433
		GridLayout componentLayout = new GridLayout();
375
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
434
		componentLayout.marginWidth = 0;
376
		gd.heightHint = HEIGHT_ATTRIBUTE_COMBO;
435
		componentLayout.marginHeight = 0;
377
		component.setLayoutData(gd);
436
		componentLayout.horizontalSpacing = 0;
437
		Composite componentComposite = new Composite(topForm, SWT.NONE);
438
		componentComposite.setLayout(componentLayout);
439
440
		Label componentLabel = new Label(componentComposite, SWT.LEFT);
441
		componentLabel.setText("Component");
442
443
		component = new List(componentComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
444
		GridData componentLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
445
		componentLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
446
		component.setLayoutData(componentLayoutData);
378
		component.addSelectionListener(updateActionSelectionAdapter);
447
		component.addSelectionListener(updateActionSelectionAdapter);
379
448
380
		version = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
449
		Composite versionComposite = new Composite(topForm, SWT.NONE);
381
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
450
		GridLayout versionLayout = new GridLayout();
382
		gd.heightHint = HEIGHT_ATTRIBUTE_COMBO;
451
		versionLayout.marginWidth = 0;
383
		version.setLayoutData(gd);
452
		versionLayout.marginHeight = 0;
453
		versionLayout.horizontalSpacing = 0;
454
		versionComposite.setLayout(versionLayout);
455
456
		Label versionLabel = new Label(versionComposite, SWT.LEFT);
457
		versionLabel.setText("Version");
458
459
		version = new List(versionComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
460
		GridData versionLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
461
		versionLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
462
		version.setLayoutData(versionLayoutData);
384
		version.addSelectionListener(updateActionSelectionAdapter);
463
		version.addSelectionListener(updateActionSelectionAdapter);
385
464
386
		target = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
465
		Composite milestoneComposite = new Composite(topForm, SWT.NONE);
387
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
466
		GridLayout milestoneLayout = new GridLayout();
388
		gd.heightHint = HEIGHT_ATTRIBUTE_COMBO;
467
		milestoneLayout.marginWidth = 0;
389
		target.setLayoutData(gd);
468
		milestoneLayout.marginHeight = 0;
469
		milestoneLayout.horizontalSpacing = 0;
470
		milestoneComposite.setLayout(milestoneLayout);
471
472
		Label milestoneLabel = new Label(milestoneComposite, SWT.LEFT);
473
		milestoneLabel.setText("Milestone");
474
475
		target = new List(milestoneComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
476
		GridData targetLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
477
		targetLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
478
		target.setLayoutData(targetLayoutData);
390
		target.addSelectionListener(updateActionSelectionAdapter);
479
		target.addSelectionListener(updateActionSelectionAdapter);
391
480
392
		return group;
481
		SashForm bottomForm = new SashForm(sashForm, SWT.NONE);
393
	}
482
		GridLayout bottomLayout = new GridLayout();
394
483
		bottomLayout.numColumns = 6;
395
	/**
484
		bottomForm.setLayout(bottomLayout);
396
	 * Creates the area for selection of bug attributes (status, etc.)
485
		GridData bottomLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1);
397
	 */
486
		bottomLayoutData.heightHint = 119;
398
	protected Control createLists(Composite control) {
487
		bottomLayoutData.widthHint = 400;
399
		GridData gd;
488
		bottomForm.setLayoutData(bottomLayoutData);
400
		GridLayout layout;
489
401
490
		Composite statusComposite = new Composite(bottomForm, SWT.NONE);
402
		// Search expression
491
		GridLayout statusLayout = new GridLayout();
403
		Composite group = new Composite(control, SWT.NONE);
492
		statusLayout.marginTop = 7;
404
		layout = new GridLayout();
493
		statusLayout.marginWidth = 0;
405
		layout.numColumns = 6;
494
		statusLayout.horizontalSpacing = 0;
406
		group.setLayout(layout);
495
		statusLayout.marginHeight = 0;
407
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
496
		statusComposite.setLayout(statusLayout);
408
		gd.horizontalSpan = 5;
497
409
		group.setLayoutData(gd);
498
		Label statusLabel = new Label(statusComposite, SWT.LEFT);
410
499
		statusLabel.setText("Status");
411
		// Labels
500
412
		Label label = new Label(group, SWT.LEFT);
501
		status = new List(statusComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
413
		label.setText("Status");
502
		final GridData gd_status = new GridData(SWT.FILL, SWT.FILL, true, true);
414
503
		gd_status.heightHint = 60;
415
		label = new Label(group, SWT.LEFT);
504
		status.setLayoutData(gd_status);
416
		label.setText("Resolution");
417
418
		label = new Label(group, SWT.LEFT);
419
		label.setText("Severity");
420
421
		label = new Label(group, SWT.LEFT);
422
		label.setText("Priority");
423
424
		label = new Label(group, SWT.LEFT);
425
		label.setText("Hardware");
426
427
		label = new Label(group, SWT.LEFT);
428
		label.setText("OS");
429
430
		// Lists
431
		status = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
432
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
433
		gd.heightHint = 40;
434
		status.setLayoutData(gd);
435
		status.addSelectionListener(updateActionSelectionAdapter);
505
		status.addSelectionListener(updateActionSelectionAdapter);
436
506
437
		resolution = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
507
		Composite resolutionComposite = new Composite(bottomForm, SWT.NONE);
438
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
508
		GridLayout resolutionLayout = new GridLayout();
439
		gd.heightHint = 40;
509
		resolutionLayout.marginTop = 7;
440
		resolution.setLayoutData(gd);
510
		resolutionLayout.marginWidth = 0;
511
		resolutionLayout.marginHeight = 0;
512
		resolutionLayout.horizontalSpacing = 0;
513
		resolutionComposite.setLayout(resolutionLayout);
514
515
		Label resolutionLabel = new Label(resolutionComposite, SWT.LEFT);
516
		resolutionLabel.setText("Resolution");
517
518
		resolution = new List(resolutionComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
519
		final GridData gd_resolution = new GridData(SWT.FILL, SWT.FILL, true, true);
520
		gd_resolution.heightHint = 60;
521
		resolution.setLayoutData(gd_resolution);
441
		resolution.addSelectionListener(updateActionSelectionAdapter);
522
		resolution.addSelectionListener(updateActionSelectionAdapter);
442
523
443
		severity = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
524
		Composite priorityComposite = new Composite(bottomForm, SWT.NONE);
444
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
525
		GridLayout priorityLayout = new GridLayout();
445
		gd.heightHint = 40;
526
		priorityLayout.marginTop = 7;
446
		severity.setLayoutData(gd);
527
		priorityLayout.marginWidth = 0;
447
		severity.addSelectionListener(updateActionSelectionAdapter);
528
		priorityLayout.marginHeight = 0;
448
529
		priorityLayout.horizontalSpacing = 0;
449
		priority = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
530
		priorityComposite.setLayout(priorityLayout);
450
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
531
451
		gd.heightHint = 40;
532
		Label priorityLabel = new Label(priorityComposite, SWT.LEFT);
452
		priority.setLayoutData(gd);
533
		priorityLabel.setText("Priority");
534
535
		priority = new List(priorityComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
536
		final GridData gd_priority = new GridData(SWT.FILL, SWT.FILL, true, true);
537
		gd_priority.heightHint = 60;
538
		priority.setLayoutData(gd_priority);
453
		priority.addSelectionListener(updateActionSelectionAdapter);
539
		priority.addSelectionListener(updateActionSelectionAdapter);
454
540
455
		hardware = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
541
		Composite severityComposite = new Composite(bottomForm, SWT.NONE);
456
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
542
		GridLayout severityLayout = new GridLayout();
457
		gd.heightHint = 40;
543
		severityLayout.marginTop = 7;
458
		hardware.setLayoutData(gd);
544
		severityLayout.marginWidth = 0;
545
		severityLayout.marginHeight = 0;
546
		severityLayout.horizontalSpacing = 0;
547
		severityComposite.setLayout(severityLayout);
548
549
		Label severityLabel = new Label(severityComposite, SWT.LEFT);
550
		severityLabel.setText("Severity");
551
552
		severity = new List(severityComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
553
		final GridData gd_severity = new GridData(SWT.FILL, SWT.FILL, true, true);
554
		gd_severity.heightHint = 60;
555
		severity.setLayoutData(gd_severity);
556
		severity.addSelectionListener(updateActionSelectionAdapter);
557
558
		Composite hardwareComposite = new Composite(bottomForm, SWT.NONE);
559
		GridLayout hardwareLayout = new GridLayout();
560
		hardwareLayout.marginTop = 7;
561
		hardwareLayout.marginWidth = 0;
562
		hardwareLayout.marginHeight = 0;
563
		hardwareLayout.horizontalSpacing = 0;
564
		hardwareComposite.setLayout(hardwareLayout);
565
566
		Label hardwareLabel = new Label(hardwareComposite, SWT.LEFT);
567
		hardwareLabel.setText("Hardware");
568
569
		hardware = new List(hardwareComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
570
		final GridData gd_hardware = new GridData(SWT.FILL, SWT.FILL, true, true);
571
		gd_hardware.heightHint = 60;
572
		hardware.setLayoutData(gd_hardware);
459
		hardware.addSelectionListener(updateActionSelectionAdapter);
573
		hardware.addSelectionListener(updateActionSelectionAdapter);
460
574
461
		os = new List(group, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
575
		Composite osComposite = new Composite(bottomForm, SWT.NONE);
462
		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
576
		GridLayout osLayout = new GridLayout();
463
		gd.heightHint = 40;
577
		osLayout.marginTop = 7;
464
		os.setLayoutData(gd);
578
		osLayout.marginWidth = 0;
579
		osLayout.marginHeight = 0;
580
		osLayout.horizontalSpacing = 0;
581
		osComposite.setLayout(osLayout);
582
583
		Label osLabel = new Label(osComposite, SWT.LEFT);
584
		osLabel.setText("OS");
585
586
		os = new List(osComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
587
		final GridData gd_os = new GridData(SWT.FILL, SWT.FILL, true, true);
588
		gd_os.heightHint = 60;
589
		os.setLayoutData(gd_os);
465
		os.addSelectionListener(updateActionSelectionAdapter);
590
		os.addSelectionListener(updateActionSelectionAdapter);
466
591
		bottomForm.setWeights(new int[] { 88, 90, 50, 77, 88, 85 });
467
		return group;
468
	}
592
	}
469
593
470
	protected Text daysText;
594
	private void createSearchGroup(Composite control) {
471
595
		Composite composite = new Composite(control, SWT.NONE);
472
	protected Control createLastDays(Composite control) {
596
		composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
473
		GridLayout layout;
597
		GridLayout gridLayout = new GridLayout();
474
		GridData gd;
598
		gridLayout.marginTop = 7;
475
599
		gridLayout.marginHeight = 0;
476
		Group group = new Group(control, SWT.NONE);
600
		gridLayout.marginWidth = 0;
477
		layout = new GridLayout(6, false);
601
		gridLayout.numColumns = 2;
478
		group.setLayout(layout);
602
		composite.setLayout(gridLayout);
479
		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
603
480
		gd = new GridData(GridData.BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
604
		Label changedInTheLabel = new Label(composite, SWT.LEFT);
481
		gd.horizontalSpan = 2;
605
		changedInTheLabel.setLayoutData(new GridData());
482
		group.setLayoutData(gd);
606
		changedInTheLabel.setText("Changed in:");
483
607
484
		Label label = new Label(group, SWT.LEFT);
608
		Composite updateComposite = new Composite(composite, SWT.NONE);
485
		label.setText("Only bugs changed in the last ");
609
		updateComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
610
		GridLayout updateLayout = new GridLayout(3, false);
611
		updateLayout.marginWidth = 0;
612
		updateLayout.horizontalSpacing = 0;
613
		updateLayout.marginHeight = 0;
614
		updateComposite.setLayout(updateLayout);
486
615
487
		// operation combo
616
		daysText = new Text(updateComposite, SWT.BORDER);
488
		daysText = new Text(group, SWT.BORDER);
617
		daysText.setLayoutData(new GridData(40, SWT.DEFAULT));
489
		daysText.setTextLimit(5);
618
		daysText.setTextLimit(5);
490
		GridData daysLayoutData = new GridData();
491
		daysLayoutData.widthHint = 30;
492
		daysText.setLayoutData(daysLayoutData);
493
		daysText.addListener(SWT.Modify, this);
619
		daysText.addListener(SWT.Modify, this);
494
		label = new Label(group, SWT.LEFT);
495
		label.setText(" days.");
496
		return group;
497
	}
498
499
	private static final String[] emailText = { "bug owner", "reporter", "CC list", "commenter" };
500
501
	protected Control createEmail(Composite control) {
502
		GridLayout layout;
503
		GridData gd;
504
505
		Group group = new Group(control, SWT.NONE);
506
		layout = new GridLayout(7, false);
507
		group.setLayout(layout);
508
		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
509
		gd = new GridData(GridData.BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
510
		gd.horizontalSpan = 2;
511
		group.setLayoutData(gd);
512
620
513
		Label label = new Label(group, SWT.LEFT);
621
		Label label = new Label(updateComposite, SWT.LEFT);
514
		label.setText("Email: ");
622
		label.setText(" days.");
515
516
		// pattern combo
517
		emailPattern = new Combo(group, SWT.SINGLE | SWT.BORDER);
518
		emailPattern.addModifyListener(new ModifyListener() {
519
			public void modifyText(ModifyEvent e) {
520
				if (scontainer != null) {
521
					scontainer.setPerformActionEnabled(canQuery());
522
				}
523
			}
524
		});
525
		emailPattern.addSelectionListener(new SelectionAdapter() {
526
623
624
		Button updateButton = new Button(updateComposite, SWT.PUSH);
625
		updateButton.setText("Update Attributes from Repository");
626
		updateButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
627
		updateButton.addSelectionListener(new SelectionAdapter() {
527
			@Override
628
			@Override
528
			public void widgetSelected(SelectionEvent e) {
629
			public void widgetSelected(SelectionEvent e) {
529
				handleWidgetSelected(emailPattern, emailOperation, previousEmailPatterns);
630
				if (repository != null) {
631
					updateAttributesFromRepository(repository.getUrl(), null, true);
632
				} else {
633
					MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
634
							IBugzillaConstants.TITLE_MESSAGE_DIALOG, TaskRepositoryManager.MESSAGE_NO_REPOSITORY);
635
				}
530
			}
636
			}
531
		});
637
		});
532
		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
533
		gd.widthHint = 110;
534
		emailPattern.setLayoutData(gd);
535
536
		// operation combo
537
		emailOperation = new Combo(group, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
538
		emailOperation.setItems(emailOperationText);
539
		emailOperation.setText(emailOperationText[0]);
540
		emailOperation.select(0);
541
542
		// Composite buttons = new Composite(group, SWT.NONE);
543
		// layout = new GridLayout(4, false);
544
		// buttons.setLayout(layout);
545
		// buttons.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
546
		// gd = new GridData(GridData.BEGINNING);
547
		// gd.horizontalSpan = 3;
548
		// buttons.setLayoutData(gd);
549
550
		emailButtons = new Button[emailText.length];
551
		for (int i = 0; i < emailButtons.length; i++) {
552
			Button button = new Button(group, SWT.CHECK);
553
			button.setText(emailText[i]);
554
			emailButtons[i] = button;
555
		}
556
557
		return group;
558
	}
638
	}
559
639
560
	/**
640
	/**
Lines 592-599 Link Here
592
		// }
672
		// }
593
		// });
673
		// });
594
		// loadButton.setEnabled(true);
674
		// loadButton.setEnabled(true);
595
		// loadButton.setLayoutData(new
675
		// loadButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
596
		// GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
597
		//
676
		//
598
		// saveButton = new Button(group, SWT.PUSH | SWT.LEFT);
677
		// saveButton = new Button(group, SWT.PUSH | SWT.LEFT);
599
		// saveButton.setText("Remember...");
678
		// saveButton.setText("Remember...");
Lines 601-614 Link Here
601
		//
680
		//
602
		// @Override
681
		// @Override
603
		// public void widgetSelected(SelectionEvent event) {
682
		// public void widgetSelected(SelectionEvent event) {
604
		// SaveQueryDialog qd = new SaveQueryDialog(getShell(), "Remember
683
		// SaveQueryDialog qd = new SaveQueryDialog(getShell(), "Remember Query");
605
		// Query");
606
		// if (qd.open() == InputDialog.OK) {
684
		// if (qd.open() == InputDialog.OK) {
607
		// String qName = qd.getText();
685
		// String qName = qd.getText();
608
		// if (qName != null && qName.compareTo("") != 0) {
686
		// if (qName != null && qName.compareTo("") != 0) {
609
		// try {
687
		// try {
610
		// input.add(getQueryParameters().toString(), qName,
688
		// input.add(getQueryParameters().toString(), qName, summaryPattern.getText());
611
		// summaryPattern.getText());
612
		// } catch (UnsupportedEncodingException e) {
689
		// } catch (UnsupportedEncodingException e) {
613
		// /*
690
		// /*
614
		// * Do nothing. Every implementation of the Java
691
		// * Do nothing. Every implementation of the Java
Lines 621-628 Link Here
621
		// }
698
		// }
622
		// });
699
		// });
623
		// saveButton.setEnabled(true);
700
		// saveButton.setEnabled(true);
624
		// saveButton.setLayoutData(new
701
		// saveButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
625
		// GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
626
702
627
		return group;
703
		return group;
628
	}
704
	}
Lines 631-676 Link Here
631
	// return input;
707
	// return input;
632
	// }
708
	// }
633
709
634
	protected Control createUpdate(final Composite control) {
635
		GridData gd;
636
		// Label label;
637
638
		Composite group = new Composite(control, SWT.NONE);
639
		GridLayout layout = new GridLayout(2, false);
640
		group.setLayout(layout);
641
		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
642
643
		gd = new GridData(GridData.BEGINNING);
644
		gd.horizontalSpan = 2;
645
		group.setLayoutData(gd);
646
647
		// Info text
648
		// label = new Label(group, SWT.LEFT);
649
		// label.setText("Update search options from server:");
650
		// gd = new GridData(GridData.BEGINNING);
651
		// label.setLayoutData(gd);
652
653
		updateButton = new Button(group, SWT.PUSH);
654
		updateButton.setText("Update Attributes from Repository");
655
656
		updateButton.setLayoutData(new GridData());
657
658
		updateButton.addSelectionListener(new SelectionAdapter() {
659
660
			@Override
661
			public void widgetSelected(SelectionEvent e) {
662
				if (repository != null) {
663
					updateAttributesFromRepository(repository.getUrl(), null, true);
664
				} else {
665
					MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
666
							IBugzillaConstants.TITLE_MESSAGE_DIALOG, TaskRepositoryManager.MESSAGE_NO_REPOSITORY);
667
				}
668
			}
669
		});
670
671
		return group;
672
	}
673
674
	private void handleWidgetSelected(Combo widget, Combo operation, ArrayList<BugzillaSearchData> history) {
710
	private void handleWidgetSelected(Combo widget, Combo operation, ArrayList<BugzillaSearchData> history) {
675
		if (widget.getSelectionIndex() < 0)
711
		if (widget.getSelectionIndex() < 0)
676
			return;
712
			return;
Lines 690-696 Link Here
690
726
691
		getPatternData(summaryPattern, summaryOperation, previousSummaryPatterns);
727
		getPatternData(summaryPattern, summaryOperation, previousSummaryPatterns);
692
		getPatternData(commentPattern, commentOperation, previousCommentPatterns);
728
		getPatternData(commentPattern, commentOperation, previousCommentPatterns);
693
		getPatternData(this.emailPattern, emailOperation, previousEmailPatterns);
729
		getPatternData(emailPattern, emailOperation, previousEmailPatterns);
730
		getPatternData(keywords, keywordsOperation, previousKeywords);
694
731
695
		String summaryText = summaryPattern.getText();
732
		String summaryText = summaryPattern.getText();
696
		BugzillaUiPlugin.getDefault().getPreferenceStore().setValue(IBugzillaConstants.MOST_RECENT_QUERY, summaryText);
733
		BugzillaUiPlugin.getDefault().getPreferenceStore().setValue(IBugzillaConstants.MOST_RECENT_QUERY, summaryText);
Lines 706-719 Link Here
706
					repository = TasksUiPlugin.getRepositoryManager().getDefaultRepository(
743
					repository = TasksUiPlugin.getRepositoryManager().getDefaultRepository(
707
							BugzillaCorePlugin.REPOSITORY_KIND);
744
							BugzillaCorePlugin.REPOSITORY_KIND);
708
				}
745
				}
709
				// Set<TaskRepository> repositories =
746
				// Set<TaskRepository> repositories = TasksUiPlugin.getRepositoryManager().getRepositories(BugzillaCorePlugin.REPOSITORY_KIND);
710
				// TasksUiPlugin.getRepositoryManager().getRepositories(
711
				// BugzillaCorePlugin.REPOSITORY_KIND);
712
				// String[] repositoryUrls = new String[repositories.size()];
747
				// String[] repositoryUrls = new String[repositories.size()];
713
				// int i = 0;
748
				// int i = 0;
714
				// int indexToSelect = 0;
749
				// int indexToSelect = 0;
715
				// for (Iterator<TaskRepository> iter = repositories.iterator();
750
				// for (Iterator<TaskRepository> iter = repositories.iterator(); iter.hasNext();) {
716
				// iter.hasNext();) {
717
				// TaskRepository currRepsitory = iter.next();
751
				// TaskRepository currRepsitory = iter.next();
718
				// // if (i == 0 && repository == null) {
752
				// // if (i == 0 && repository == null) {
719
				// // repository = currRepsitory;
753
				// // repository = currRepsitory;
Lines 730-757 Link Here
730
				// if (repositoryCombo != null) {
764
				// if (repositoryCombo != null) {
731
				// repositoryCombo.setItems(repositoryUrls);
765
				// repositoryCombo.setItems(repositoryUrls);
732
				// if (repositoryUrls.length == 0) {
766
				// if (repositoryUrls.length == 0) {
733
				// MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
767
				// MessageDialog.openInformation(Display.getCurrent().getActiveShell(), IBugzillaConstants.TITLE_MESSAGE_DIALOG,
734
				// IBugzillaConstants.TITLE_MESSAGE_DIALOG,
735
				// TaskRepositoryManager.MESSAGE_NO_REPOSITORY);
768
				// TaskRepositoryManager.MESSAGE_NO_REPOSITORY);
736
				// } else {
769
				// } else {
737
				// String selectRepo = settings.get(STORE_REPO_ID);
770
				// String selectRepo = settings.get(STORE_REPO_ID);
738
				// if (selectRepo != null && repositoryCombo.indexOf(selectRepo)
771
				// if (selectRepo != null && repositoryCombo.indexOf(selectRepo) > -1) {
739
				// > -1) {
740
				// repositoryCombo.setText(selectRepo);
772
				// repositoryCombo.setText(selectRepo);
741
				// repository =
773
				// repository = TasksUiPlugin.getRepositoryManager().getRepository(
742
				// TasksUiPlugin.getRepositoryManager().getRepository(
774
				// BugzillaCorePlugin.REPOSITORY_KIND, repositoryCombo.getText());
743
				// BugzillaCorePlugin.REPOSITORY_KIND,
744
				// repositoryCombo.getText());
745
				// if (repository == null) {
775
				// if (repository == null) {
746
				// repository =
776
				// repository = TasksUiPlugin.getRepositoryManager().getDefaultRepository( BugzillaCorePlugin.REPOSITORY_KIND);
747
				// TasksUiPlugin.getRepositoryManager().getDefaultRepository(
748
				// BugzillaCorePlugin.REPOSITORY_KIND);
749
				// }
777
				// }
750
				// } else {
778
				// } else {
751
				// repositoryCombo.select(indexToSelect);
779
				// repositoryCombo.select(indexToSelect);
752
				// }
780
				// }
753
				// updateAttributesFromRepository(repositoryCombo.getText(),
781
				// updateAttributesFromRepository(repositoryCombo.getText(), null, false);
754
				// null, false);
755
				// }
782
				// }
756
				// }
783
				// }
757
784
Lines 769-774 Link Here
769
					emailPattern.add(email);
796
					emailPattern.add(email);
770
				}
797
				}
771
				// emailPattern.setItems(getPreviousPatterns(previousEmailPatterns));
798
				// emailPattern.setItems(getPreviousPatterns(previousEmailPatterns));
799
				for (String keyword : getPreviousPatterns(previousKeywords)) {
800
					keywords.add(keyword);
801
				}
772
802
773
				// TODO: update status, resolution, severity etc if possible...
803
				// TODO: update status, resolution, severity etc if possible...
774
				if (repository != null) {
804
				if (repository != null) {
Lines 824-830 Link Here
824
				|| resolution.getSelectionCount() > 0 || severity.getSelectionCount() > 0
854
				|| resolution.getSelectionCount() > 0 || severity.getSelectionCount() > 0
825
				|| priority.getSelectionCount() > 0 || hardware.getSelectionCount() > 0 || os.getSelectionCount() > 0
855
				|| priority.getSelectionCount() > 0 || hardware.getSelectionCount() > 0 || os.getSelectionCount() > 0
826
				|| summaryPattern.getText().length() > 0 || commentPattern.getText().length() > 0
856
				|| summaryPattern.getText().length() > 0 || commentPattern.getText().length() > 0
827
				|| emailPattern.getText().length() > 0;
857
				|| emailPattern.getText().length() > 0 || keywords.getText().length() > 0;
828
	}
858
	}
829
859
830
	/**
860
	/**
Lines 871-878 Link Here
871
	public String getSearchURL(TaskRepository repository) {
901
	public String getSearchURL(TaskRepository repository) {
872
		try {
902
		try {
873
			// if (rememberedQuery) {
903
			// if (rememberedQuery) {
874
			// return getQueryURL(repository, new
904
			// return getQueryURL(repository, new StringBuffer(input.getQueryParameters(selIndex)));
875
			// StringBuffer(input.getQueryParameters(selIndex)));
876
			// } else {
905
			// } else {
877
			return getQueryURL(repository, getQueryParameters());
906
			return getQueryURL(repository, getQueryParameters());
878
			// }
907
			// }
Lines 1023-1028 Link Here
1023
			}
1052
			}
1024
		}
1053
		}
1025
1054
1055
		if (keywords.getText() != null && !keywords.getText().trim().equals("")) {
1056
			sb.append("&keywords_type=");
1057
			sb.append(keywordOperationValues[keywordsOperation.getSelectionIndex()]);
1058
			sb.append("&keywords=");
1059
			sb.append(URLEncoder.encode(keywords.getText().replace(',', ' '), repository.getCharacterEncoding()));
1060
		}
1061
1026
		return sb;
1062
		return sb;
1027
	}
1063
	}
1028
1064
Lines 1065-1072 Link Here
1065
1101
1066
	private static final String STORE_EMAILADDRESS_ID = PAGE_NAME + ".EMAILADDRESS";
1102
	private static final String STORE_EMAILADDRESS_ID = PAGE_NAME + ".EMAILADDRESS";
1067
1103
1104
	private static final String STORE_KEYWORDS_ID = PAGE_NAME + ".KEYWORDS";
1105
1106
	private static final String STORE_KEYWORDSMATCH_ID = PAGE_NAME + ".KEYWORDSMATCH";
1107
1068
	// private static final String STORE_REPO_ID = PAGE_NAME + ".REPO";
1108
	// private static final String STORE_REPO_ID = PAGE_NAME + ".REPO";
1069
1109
1110
	protected Combo summaryPattern;
1111
1070
	protected Combo summaryOperation;
1112
	protected Combo summaryOperation;
1071
1113
1072
	protected List product;
1114
	protected List product;
Lines 1099-1104 Link Here
1099
1141
1100
	protected Button[] emailButtons;
1142
	protected Button[] emailButtons;
1101
1143
1144
	private Combo keywords;
1145
1146
	private Combo keywordsOperation;
1147
1148
	protected Text daysText;
1149
1102
	// /** File containing saved queries */
1150
	// /** File containing saved queries */
1103
	// protected static SavedQueryFile input;
1151
	// protected static SavedQueryFile input;
1104
1152
Lines 1114-1121 Link Here
1114
	/** Index of the saved query to run */
1162
	/** Index of the saved query to run */
1115
	protected int selIndex;
1163
	protected int selIndex;
1116
1164
1117
	protected Button updateButton;
1118
1119
	public IDialogSettings getDialogSettings() {
1165
	public IDialogSettings getDialogSettings() {
1120
		IDialogSettings settings = BugzillaUiPlugin.getDefault().getDialogSettings();
1166
		IDialogSettings settings = BugzillaUiPlugin.getDefault().getDialogSettings();
1121
		fDialogSettings = settings.getSection(PAGE_NAME);
1167
		fDialogSettings = settings.getSection(PAGE_NAME);
Lines 1422-1427 Link Here
1422
				emailPattern.setText(value);
1468
				emailPattern.setText(value);
1423
			} else if (key.equals("changedin")) {
1469
			} else if (key.equals("changedin")) {
1424
				daysText.setText(value);
1470
				daysText.setText(value);
1471
			} else if (key.equals("keywords")) {
1472
				keywords.setText(value.replace(' ', ','));
1473
			} else if (key.equals("keywords_type")) {
1474
				int index = 0;
1475
				for (String item : keywordOperationValues) {
1476
					if (item.equals(value)) {
1477
						keywordsOperation.select(index);
1478
						break;
1479
					}
1480
					index++;
1481
				}
1425
			}
1482
			}
1426
		}
1483
		}
1427
	}
1484
	}
Lines 1483-1488 Link Here
1483
		summaryPattern.setText(settings.get(STORE_SUMMARYTEXT_ID + repoId));
1540
		summaryPattern.setText(settings.get(STORE_SUMMARYTEXT_ID + repoId));
1484
		commentPattern.setText(settings.get(STORE_COMMENTTEXT_ID + repoId));
1541
		commentPattern.setText(settings.get(STORE_COMMENTTEXT_ID + repoId));
1485
		emailPattern.setText(settings.get(STORE_EMAILADDRESS_ID + repoId));
1542
		emailPattern.setText(settings.get(STORE_EMAILADDRESS_ID + repoId));
1543
		keywords.setText(settings.get(STORE_KEYWORDS_ID + repoId));
1544
		keywordsOperation.select(settings.getInt(STORE_KEYWORDSMATCH_ID + repoId));
1486
	}
1545
	}
1487
1546
1488
	public void saveState() {
1547
	public void saveState() {
Lines 1507-1512 Link Here
1507
		settings.put(STORE_SUMMARYTEXT_ID + repoId, summaryPattern.getText());
1566
		settings.put(STORE_SUMMARYTEXT_ID + repoId, summaryPattern.getText());
1508
		settings.put(STORE_COMMENTTEXT_ID + repoId, commentPattern.getText());
1567
		settings.put(STORE_COMMENTTEXT_ID + repoId, commentPattern.getText());
1509
		settings.put(STORE_EMAILADDRESS_ID + repoId, emailPattern.getText());
1568
		settings.put(STORE_EMAILADDRESS_ID + repoId, emailPattern.getText());
1569
		settings.put(STORE_KEYWORDS_ID + repoId, keywords.getText());
1570
		settings.put(STORE_KEYWORDSMATCH_ID + repoId, keywordsOperation.getSelectionIndex());
1510
		// settings.put(STORE_REPO_ID, repositoryCombo.getText());
1571
		// settings.put(STORE_REPO_ID, repositoryCombo.getText());
1511
	}
1572
	}
1512
1573
(-)src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java (+2 lines)
Lines 155-160 Link Here
155
155
156
	static final String VALUES_TARGET = "org.eclipse.mylyn.bugzilla.values.target";
156
	static final String VALUES_TARGET = "org.eclipse.mylyn.bugzilla.values.target";
157
157
158
	static final String VALUES_KEYWORDS = "org.eclipse.mylyn.bugzilla.values.keywords";
159
	
158
	static final String ECLIPSE_BUGZILLA_URL = "https://bugs.eclipse.org/bugs";
160
	static final String ECLIPSE_BUGZILLA_URL = "https://bugs.eclipse.org/bugs";
159
161
160
	static final String TEST_BUGZILLA_216_URL = "http://mylyn.eclipse.org/bugs216";
162
	static final String TEST_BUGZILLA_216_URL = "http://mylyn.eclipse.org/bugs216";

Return to bug 171724