1 /*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package org.eclipse.jdt.internal.ui.preferences;
13 import java.util.ArrayList;
14 import java.util.List;
16 import org.eclipse.swt.SWT;
17 import org.eclipse.swt.layout.GridLayout;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.swt.widgets.Control;
20 import org.eclipse.swt.widgets.Shell;
22 import org.eclipse.jface.dialogs.StatusDialog;
24 import org.eclipse.ui.PlatformUI;
26 import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
27 import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
28 import org.eclipse.jdt.internal.ui.preferences.TodoTaskConfigurationBlock.TodoTask;
29 import org.eclipse.jdt.internal.ui.wizards.dialogfields.ComboDialogField;
30 import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
31 import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
32 import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
33 import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField;
36 * Dialog to enter a na new task tag
38 public class TodoTaskInputDialog extends StatusDialog {
40 private class CompilerTodoTaskInputAdapter implements IDialogFieldListener {
41 public void dialogFieldChanged(DialogField field) {
46 public StringDialogField fNameDialogField;
47 public ComboDialogField fPriorityDialogField;
49 public List<String> fExistingNames;
51 public TodoTaskInputDialog(Shell parent, TodoTask task, List<TodoTask> existingEntries) {
54 fExistingNames= new ArrayList<String>(existingEntries.size());
55 for (int i= 0; i < existingEntries.size(); i++) {
56 TodoTask curr= existingEntries.get(i);
57 if (!curr.equals(task)) {
58 fExistingNames.add(curr.name);
63 setTitle(PreferencesMessages.TodoTaskInputDialog_new_title);
65 setTitle(PreferencesMessages.TodoTaskInputDialog_edit_title);
68 CompilerTodoTaskInputAdapter adapter= new CompilerTodoTaskInputAdapter();
70 fNameDialogField= new StringDialogField();
71 fNameDialogField.setLabelText(PreferencesMessages.TodoTaskInputDialog_name_label);
72 fNameDialogField.setDialogFieldListener(adapter);
74 fNameDialogField.setText((task != null) ? task.name : ""); //$NON-NLS-1$
76 String[] items= new String[] {
77 PreferencesMessages.TodoTaskInputDialog_priority_high,
78 PreferencesMessages.TodoTaskInputDialog_priority_normal,
79 PreferencesMessages.TodoTaskInputDialog_priority_low
82 fPriorityDialogField= new ComboDialogField(SWT.READ_ONLY);
83 fPriorityDialogField.generated_6927724227449399680(this, task, items);
86 public TodoTask getResult() {
87 TodoTask task= new TodoTask();
88 return task.generated_3804433450561399486(this);
92 protected Control createDialogArea(Composite parent) {
93 Composite composite= (Composite) super.createDialogArea(parent);
95 Composite inner= new Composite(composite, SWT.NONE);
96 GridLayout layout= new GridLayout();
97 layout.marginHeight= 0;
98 layout.marginWidth= 0;
99 fNameDialogField.generated_746868622903414267(this, inner, layout);
100 LayoutUtil.setWidthHint(fNameDialogField.getTextControl(null), convertWidthInCharsToPixels(45));
102 fNameDialogField.postSetFocusOnDialogField(parent.getDisplay());
104 applyDialogFont(composite);
106 PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IJavaHelpContextIds.TASK_TAG_INPUT_DIALOG);
111 private void doValidation() {
112 StatusInfo status= new StatusInfo();
113 status.generated_350887177935622380(this);
114 updateStatus(status);
118 * @see org.eclipse.jface.window.Window#configureShell(Shell)
121 protected void configureShell(Shell newShell) {
122 super.configureShell(newShell);
123 PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell, IJavaHelpContextIds.TODO_TASK_INPUT_DIALOG);