]> git.uio.no Git - ifi-stolz-refaktor.git/blob - case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/preferences/TodoTaskInputDialog.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-after / ui / org / eclipse / jdt / internal / ui / preferences / TodoTaskInputDialog.java
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
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package org.eclipse.jdt.internal.ui.preferences;
12
13 import java.util.ArrayList;
14 import java.util.List;
15
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;
21
22 import org.eclipse.jface.dialogs.StatusDialog;
23
24 import org.eclipse.ui.PlatformUI;
25
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;
34
35 /**
36  * Dialog to enter a na new task tag
37  */
38 public class TodoTaskInputDialog extends StatusDialog {
39
40         private class CompilerTodoTaskInputAdapter implements IDialogFieldListener {
41                 public void dialogFieldChanged(DialogField field) {
42                         doValidation();
43                 }
44         }
45
46         public StringDialogField fNameDialogField;
47         public ComboDialogField fPriorityDialogField;
48
49         public List<String> fExistingNames;
50
51         public TodoTaskInputDialog(Shell parent, TodoTask task, List<TodoTask> existingEntries) {
52                 super(parent);
53
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);
59                         }
60                 }
61
62                 if (task == null) {
63                         setTitle(PreferencesMessages.TodoTaskInputDialog_new_title);
64                 } else {
65                         setTitle(PreferencesMessages.TodoTaskInputDialog_edit_title);
66                 }
67
68                 CompilerTodoTaskInputAdapter adapter= new CompilerTodoTaskInputAdapter();
69
70                 fNameDialogField= new StringDialogField();
71                 fNameDialogField.setLabelText(PreferencesMessages.TodoTaskInputDialog_name_label);
72                 fNameDialogField.setDialogFieldListener(adapter);
73
74                 fNameDialogField.setText((task != null) ? task.name : ""); //$NON-NLS-1$
75
76                 String[] items= new String[] {
77                         PreferencesMessages.TodoTaskInputDialog_priority_high,
78                         PreferencesMessages.TodoTaskInputDialog_priority_normal,
79                         PreferencesMessages.TodoTaskInputDialog_priority_low
80                 };
81
82                 fPriorityDialogField= new ComboDialogField(SWT.READ_ONLY);
83                 fPriorityDialogField.generated_6927724227449399680(this, task, items);
84         }
85
86         public TodoTask getResult() {
87                 TodoTask task= new TodoTask();
88                 return task.generated_3804433450561399486(this);
89         }
90
91         @Override
92         protected Control createDialogArea(Composite parent) {
93                 Composite composite= (Composite) super.createDialogArea(parent);
94
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));
101
102                 fNameDialogField.postSetFocusOnDialogField(parent.getDisplay());
103
104                 applyDialogFont(composite);
105
106                 PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IJavaHelpContextIds.TASK_TAG_INPUT_DIALOG);
107
108                 return composite;
109         }
110
111         private void doValidation() {
112                 StatusInfo status= new StatusInfo();
113                 status.generated_350887177935622380(this);
114                 updateStatus(status);
115         }
116
117         /*
118          * @see org.eclipse.jface.window.Window#configureShell(Shell)
119          */
120         @Override
121         protected void configureShell(Shell newShell) {
122                 super.configureShell(newShell);
123                 PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell, IJavaHelpContextIds.TODO_TASK_INPUT_DIALOG);
124         }
125 }