annotate jface/ShowPrefs.d @ 179:89de7ff0752c default tip

Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
author Frank Benoit <benoit@tionex.de>
date Wed, 29 Apr 2009 11:01:41 +0200
parents 5c1906bfc206
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 module jface.ShowPrefs;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 import dwtx.jface.preference.BooleanFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 import dwtx.jface.preference.ColorFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 import dwtx.jface.preference.DirectoryFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 import dwtx.jface.preference.FileFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 import dwtx.jface.preference.FontFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 import dwtx.jface.preference.FieldEditorPreferencePage;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 import dwtx.jface.preference.RadioGroupFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 import dwtx.jface.preference.PathEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 import dwtx.jface.preference.IntegerFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 import dwtx.jface.preference.ScaleFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 import dwtx.jface.preference.StringFieldEditor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 import dwtx.jface.preference.IPreferenceStore;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwtx.jface.preference.PreferenceManager;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.preference.PreferencePage;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.jface.preference.PreferenceNode;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwtx.jface.preference.PreferenceStore;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwtx.jface.preference.PreferenceDialog;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwtx.jface.resource.ImageDescriptor;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwt.widgets.Display;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwt.widgets.Composite;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.widgets.Label;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.widgets.Button;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.widgets.Text;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.widgets.Control;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.events.SelectionAdapter;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.events.SelectionEvent;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.layout.RowLayout;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.layout.GridLayout;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwt.layout.GridData;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwt.DWT;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwt.dwthelper.utils;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 import tango.io.File;
130
5c1906bfc206 Fix deprecated tango API
Frank Benoit <benoit@tionex.de>
parents: 62
diff changeset
37 import Path = tango.io.Path;
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 version(JIVE) import jive.stacktrace;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 const char[] FILENAME = "showprefs";
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * This class creates a preference page
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 public class PrefPageOne : PreferencePage {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 // Names for preferences
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 private static final String ONE = "one.one";
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 private static final String TWO = "one.two";
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 private static final String THREE = "one.three";
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 // Text fields for user to enter preferences
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 private Text fieldOne;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 private Text fieldTwo;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 private Text fieldThree;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * Creates the controls for this page
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 protected Control createContents(Composite parent) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 Composite composite = new Composite(parent, DWT.NONE);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 composite.setLayout(new GridLayout(2, false));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 // Get the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 IPreferenceStore preferenceStore = getPreferenceStore();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 // Create three text fields.
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 // Set the text in each from the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 (new Label(composite, DWT.LEFT)).setText("Field One:");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 fieldOne = new Text(composite, DWT.BORDER);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 fieldOne.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 fieldOne.setText(preferenceStore.getString(ONE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 (new Label(composite, DWT.LEFT)).setText("Field Two:");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 fieldTwo = new Text(composite, DWT.BORDER);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 fieldTwo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 fieldTwo.setText(preferenceStore.getString(TWO));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 (new Label(composite, DWT.LEFT)).setText("Field Three:");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 fieldThree = new Text(composite, DWT.BORDER);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 fieldThree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 fieldThree.setText(preferenceStore.getString(THREE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 return composite;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 * Called when user clicks Restore Defaults
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 protected void performDefaults() {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 // Get the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 IPreferenceStore preferenceStore = getPreferenceStore();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 // Reset the fields to the defaults
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 fieldOne.setText(preferenceStore.getDefaultString(ONE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 fieldTwo.setText(preferenceStore.getDefaultString(TWO));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 fieldThree.setText(preferenceStore.getDefaultString(THREE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * Called when user clicks Apply or OK
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 *
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * @return bool
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 public bool performOk() {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 // Get the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 IPreferenceStore preferenceStore = getPreferenceStore();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 // Set the values from the fields
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 if (fieldOne !is null) preferenceStore.setValue(ONE, fieldOne.getText());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 if (fieldTwo !is null) preferenceStore.setValue(TWO, fieldTwo.getText());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 if (fieldThree !is null)
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 preferenceStore.setValue(THREE, fieldThree.getText());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 // Return true to allow dialog to close
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 return true;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 * This class creates a preference page
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 public class PrefPageTwo : PreferencePage {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 // Names for preferences
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 private static final String ONE = "two.one";
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 private static final String TWO = "two.two";
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 private static final String THREE = "two.three";
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 // The checkboxes
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 private Button checkOne;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 private Button checkTwo;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 private Button checkThree;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * PrefPageTwo constructor
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 public this() {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 super("Two");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 setDescription("Check the checks");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 * Creates the controls for this page
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 protected Control createContents(Composite parent) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 Composite composite = new Composite(parent, DWT.NONE);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 composite.setLayout(new RowLayout(DWT.VERTICAL));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 // Get the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 IPreferenceStore preferenceStore = getPreferenceStore();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 // Create three checkboxes
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 checkOne = new Button(composite, DWT.CHECK);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 checkOne.setText("Check One");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 checkOne.setSelection(preferenceStore.getBoolean(ONE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 checkTwo = new Button(composite, DWT.CHECK);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 checkTwo.setText("Check Two");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 checkTwo.setSelection(preferenceStore.getBoolean(TWO));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 checkThree = new Button(composite, DWT.CHECK);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 checkThree.setText("Check Three");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 checkThree.setSelection(preferenceStore.getBoolean(THREE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 return composite;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 * Add buttons
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 *
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 * @param parent the parent composite
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 protected void contributeButtons(Composite parent) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 // Add a select all button
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 Button selectAll = new Button(parent, DWT.PUSH);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 selectAll.setText("Select All");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 selectAll.addSelectionListener(new class SelectionAdapter {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 public void widgetSelected(SelectionEvent event) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 checkOne.setSelection(true);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 checkTwo.setSelection(true);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 checkThree.setSelection(true);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 });
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 // Add a select all button
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 Button clearAll = new Button(parent, DWT.PUSH);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 clearAll.setText("Clear All");
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 clearAll.addSelectionListener(new class SelectionAdapter {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 public void widgetSelected(SelectionEvent event) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 checkOne.setSelection(false);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 checkTwo.setSelection(false);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 checkThree.setSelection(false);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 });
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 // Add two columns to the parent's layout
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 (cast(GridLayout) parent.getLayout()).numColumns += 2;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 * Change the description label
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 protected Label createDescriptionLabel(Composite parent) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 Label label = null;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 String description = getDescription();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 if (description != null) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 // Upper case the description
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 description = description.toUpperCase();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 // Right-align the label
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 label = new Label(parent, DWT.RIGHT);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 label.setText(description);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 return label;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 * Called when user clicks Restore Defaults
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 protected void performDefaults() {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 // Get the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 IPreferenceStore preferenceStore = getPreferenceStore();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 // Reset the fields to the defaults
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 checkOne.setSelection(preferenceStore.getDefaultBoolean(ONE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 checkTwo.setSelection(preferenceStore.getDefaultBoolean(TWO));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 checkThree.setSelection(preferenceStore.getDefaultBoolean(THREE));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 * Called when user clicks Apply or OK
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 *
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 * @return bool
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 public bool performOk() {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 // Get the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 IPreferenceStore preferenceStore = getPreferenceStore();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 // Set the values from the fields
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 if (checkOne !is null) preferenceStore.setValue(ONE, checkOne.getSelection());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 if (checkTwo !is null) preferenceStore.setValue(TWO, checkTwo.getSelection());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 if (checkThree !is null)
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 preferenceStore.setValue(THREE, checkThree.getSelection());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 // Return true to allow dialog to close
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 return true;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 * This class demonstrates JFace preferences
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 public class ShowPrefs {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 * Runs the application
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 public void run() {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 // Display display = new Display();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 // Create the preference manager
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 PreferenceManager mgr = new PreferenceManager();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 // Create the nodes
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 PreferenceNode one = new PreferenceNode("one", "One", ImageDescriptor
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 .createFromFile(getImportData!("cancel.gif")), PrefPageOne.classinfo.name );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 PreferenceNode two = new PreferenceNode("two", new PrefPageTwo());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 // Add the nodes
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 mgr.addToRoot(one);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 mgr.addTo(one.getId(), two);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 // Create the preferences dialog
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 PreferenceDialog dlg = new PreferenceDialog(null, mgr);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 // Set the preference store
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 PreferenceStore ps = new PreferenceStore( FILENAME );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 try {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 ps.load();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 } catch (IOException e) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 // Ignore
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 dlg.setPreferenceStore(ps);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 // Open the dialog
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 dlg.open();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 try {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 // Save the preferences
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 ps.save();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 } catch (IOException e) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 ExceptionPrintStackTrace(e);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 // display.dispose();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 /**
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 * The application entry point
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 *
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 * @param args the command line arguments
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 */
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 public static void main(String[] args) {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 (new ShowPrefs()).run();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 void main(){
130
5c1906bfc206 Fix deprecated tango API
Frank Benoit <benoit@tionex.de>
parents: 62
diff changeset
310 if( !Path.exists(FILENAME) ){
5c1906bfc206 Fix deprecated tango API
Frank Benoit <benoit@tionex.de>
parents: 62
diff changeset
311 scope prefs = new File( FILENAME );
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 prefs.write( import("jface.showprefs.properties" ));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 ShowPrefs.main( null );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320