Commit b6b4fb3e346b2f3d2ecf27bd6f9ff70a57dc6f7a
1 parent
a227a22d
Exists in
master
Add Javadoc for ParamField.
Showing
1 changed file
with
231 additions
and
36 deletions
Show diff stats
src/main/java/eu/omp/irap/vespa/epntapclient/view/ParamField.java
@@ -46,12 +46,15 @@ import eu.omp.irap.vespa.epntapclient.votable.controller.VOTableConnection; | @@ -46,12 +46,15 @@ import eu.omp.irap.vespa.epntapclient.votable.controller.VOTableConnection; | ||
46 | import eu.omp.irap.vespa.epntapclient.votable.controller.VOTableException.SendQueryException; | 46 | import eu.omp.irap.vespa.epntapclient.votable.controller.VOTableException.SendQueryException; |
47 | 47 | ||
48 | /** | 48 | /** |
49 | - * A field used to set a service parameter to build the query (in the parameter panel). | 49 | + * A field used to set a service parameter to build the query (in the parameter panel). ParamField |
50 | + * is an abstract method and all type of parameter field should extend it. See | ||
51 | + * https://voparis-confluence.obspm.fr/display/VES/4+-+EPN-TAP+queries to get all parameters | ||
52 | + * details. | ||
50 | * | 53 | * |
51 | * @author N. Jourdane | 54 | * @author N. Jourdane |
52 | */ | 55 | */ |
53 | public abstract class ParamField extends JPanel { | 56 | public abstract class ParamField extends JPanel { |
54 | - /** */ | 57 | + /** The serial version UID (affected with a random number). */ |
55 | private static final long serialVersionUID = 6025994164004985362L; | 58 | private static final long serialVersionUID = 6025994164004985362L; |
56 | 59 | ||
57 | /** The logger for the class ParamField. */ | 60 | /** The logger for the class ParamField. */ |
@@ -82,6 +85,13 @@ public abstract class ParamField extends JPanel { | @@ -82,6 +85,13 @@ public abstract class ParamField extends JPanel { | ||
82 | /** The parameter name of the field */ | 85 | /** The parameter name of the field */ |
83 | protected String paramName; | 86 | protected String paramName; |
84 | 87 | ||
88 | + /** | ||
89 | + * Method constructor for the parameter field abstract class, which do all common action for all | ||
90 | + * type of field, such as displaying the name of the parameter. | ||
91 | + * | ||
92 | + * @param mainView The main view of the application. | ||
93 | + * @param paramName The name of the parameter. | ||
94 | + */ | ||
85 | public ParamField(EpnTapMainView mainView, String paramName) { | 95 | public ParamField(EpnTapMainView mainView, String paramName) { |
86 | super(); | 96 | super(); |
87 | 97 | ||
@@ -97,11 +107,24 @@ public abstract class ParamField extends JPanel { | @@ -97,11 +107,24 @@ public abstract class ParamField extends JPanel { | ||
97 | // TODO: Add tooltip text based on rr.table_column.column_description | 107 | // TODO: Add tooltip text based on rr.table_column.column_description |
98 | } | 108 | } |
99 | 109 | ||
110 | + /** | ||
111 | + * The string field is used for parameter with a `String` class. It is a simple JTextField with | ||
112 | + * no verification. The parameter is sent to the controller each time it is modified. | ||
113 | + * | ||
114 | + * @author N. Jourdane | ||
115 | + */ | ||
100 | public static class StringField extends ParamField implements TextFieldListener { | 116 | public static class StringField extends ParamField implements TextFieldListener { |
101 | - /** */ | 117 | + /** The serial version UID (affected with a random number). */ |
102 | private static final long serialVersionUID = 24219488975302068L; | 118 | private static final long serialVersionUID = 24219488975302068L; |
119 | + /** The JTextField used to put the parameter value. */ | ||
103 | JTextField field; | 120 | JTextField field; |
104 | 121 | ||
122 | + /** | ||
123 | + * Method constructor for the string field. | ||
124 | + * | ||
125 | + * @param mainView The main view of the application. | ||
126 | + * @param paramName The name of the parameter. | ||
127 | + */ | ||
105 | public StringField(EpnTapMainView mainView, String paramName) { | 128 | public StringField(EpnTapMainView mainView, String paramName) { |
106 | super(mainView, paramName); | 129 | super(mainView, paramName); |
107 | field = new JTextField(); | 130 | field = new JTextField(); |
@@ -109,6 +132,9 @@ public abstract class ParamField extends JPanel { | @@ -109,6 +132,9 @@ public abstract class ParamField extends JPanel { | ||
109 | this.add(field); | 132 | this.add(field); |
110 | } | 133 | } |
111 | 134 | ||
135 | + /** | ||
136 | + * This method is called each time the field is modified. | ||
137 | + */ | ||
112 | @Override | 138 | @Override |
113 | public void update(JTextField textField) { | 139 | public void update(JTextField textField) { |
114 | if ("".equals(textField.getText())) { | 140 | if ("".equals(textField.getText())) { |
@@ -119,11 +145,25 @@ public abstract class ParamField extends JPanel { | @@ -119,11 +145,25 @@ public abstract class ParamField extends JPanel { | ||
119 | } | 145 | } |
120 | } | 146 | } |
121 | 147 | ||
148 | + /** | ||
149 | + * The float field is used for parameter with a `Float` class. It is a JTextField which checks | ||
150 | + * if the content is a valid float. If the parameter is valid or if it is empty, then the float | ||
151 | + * value is sent to the controller. | ||
152 | + * | ||
153 | + * @author N. Jourdane | ||
154 | + */ | ||
122 | public static class FloatField extends ParamField implements TextFieldListener { | 155 | public static class FloatField extends ParamField implements TextFieldListener { |
123 | - /** */ | 156 | + /** The serial version UID (affected with a random number). */ |
124 | private static final long serialVersionUID = -1880193152285564590L; | 157 | private static final long serialVersionUID = -1880193152285564590L; |
158 | + /** The JTextField used to put the parameter value. */ | ||
125 | JTextField field; | 159 | JTextField field; |
126 | 160 | ||
161 | + /** | ||
162 | + * Method constructor | ||
163 | + * | ||
164 | + * @param mainView The main view of the application. | ||
165 | + * @param paramName The name of the parameter. | ||
166 | + */ | ||
127 | public FloatField(EpnTapMainView mainView, String paramName) { | 167 | public FloatField(EpnTapMainView mainView, String paramName) { |
128 | super(mainView, paramName); | 168 | super(mainView, paramName); |
129 | field = new JTextField(); | 169 | field = new JTextField(); |
@@ -131,6 +171,9 @@ public abstract class ParamField extends JPanel { | @@ -131,6 +171,9 @@ public abstract class ParamField extends JPanel { | ||
131 | this.add(field); | 171 | this.add(field); |
132 | } | 172 | } |
133 | 173 | ||
174 | + /** | ||
175 | + * This method is called each time the field is modified. | ||
176 | + */ | ||
134 | @Override | 177 | @Override |
135 | public void update(JTextField textField) { | 178 | public void update(JTextField textField) { |
136 | if ("".equals(textField.getText())) { | 179 | if ("".equals(textField.getText())) { |
@@ -148,12 +191,28 @@ public abstract class ParamField extends JPanel { | @@ -148,12 +191,28 @@ public abstract class ParamField extends JPanel { | ||
148 | } | 191 | } |
149 | } | 192 | } |
150 | 193 | ||
194 | + /** | ||
195 | + * The date range field is used for couples of parameter with both a `Date` type (actually only | ||
196 | + * `time_min` and `time_max` parameters is concerned for now). These are JTextFields which check | ||
197 | + * if the content is a valid date, according to DATE_FORMAT. If the parameter is valid or if it | ||
198 | + * is empty, then the dates value are sent to the controller, in Julian Day format. | ||
199 | + * | ||
200 | + * @author N. Jourdane | ||
201 | + */ | ||
151 | public static class DateRangeField extends ParamField implements TextFieldListener { | 202 | public static class DateRangeField extends ParamField implements TextFieldListener { |
152 | - /** */ | 203 | + /** The serial version UID (affected with a random number). */ |
153 | private static final long serialVersionUID = -7781309003911514777L; | 204 | private static final long serialVersionUID = -7781309003911514777L; |
205 | + /** The JTextField used to put the parameter minimum value of the range. */ | ||
154 | JTextField fieldMin; | 206 | JTextField fieldMin; |
207 | + /** The JTextField used to put the parameter maximum value of the range. */ | ||
155 | JTextField fieldMax; | 208 | JTextField fieldMax; |
156 | 209 | ||
210 | + /** | ||
211 | + * Method constructor | ||
212 | + * | ||
213 | + * @param mainView The main view of the application. | ||
214 | + * @param paramName The name of the parameter. | ||
215 | + */ | ||
157 | public DateRangeField(EpnTapMainView mainView, String paramName) { | 216 | public DateRangeField(EpnTapMainView mainView, String paramName) { |
158 | super(mainView, paramName); | 217 | super(mainView, paramName); |
159 | this.add(new JLabel("min ")); | 218 | this.add(new JLabel("min ")); |
@@ -171,6 +230,9 @@ public abstract class ParamField extends JPanel { | @@ -171,6 +230,9 @@ public abstract class ParamField extends JPanel { | ||
171 | this.add(fieldMax); | 230 | this.add(fieldMax); |
172 | } | 231 | } |
173 | 232 | ||
233 | + /** | ||
234 | + * This method is called each time the field is modified. | ||
235 | + */ | ||
174 | @Override | 236 | @Override |
175 | public void update(JTextField field) { | 237 | public void update(JTextField field) { |
176 | DateFormat df = new SimpleDateFormat(DATE_FORMAT, Locale.ENGLISH); | 238 | DateFormat df = new SimpleDateFormat(DATE_FORMAT, Locale.ENGLISH); |
@@ -193,12 +255,27 @@ public abstract class ParamField extends JPanel { | @@ -193,12 +255,27 @@ public abstract class ParamField extends JPanel { | ||
193 | } | 255 | } |
194 | } | 256 | } |
195 | 257 | ||
258 | + /** | ||
259 | + * The float range field is used for couples of parameter with both a `Float` class. These are | ||
260 | + * JTextFields which check if the content is a valid float. If the parameter is valid or if it | ||
261 | + * is empty, then the float value are sent to the controller. | ||
262 | + * | ||
263 | + * @author N. Jourdane | ||
264 | + */ | ||
196 | public static class FloatRangeField extends ParamField implements TextFieldListener { | 265 | public static class FloatRangeField extends ParamField implements TextFieldListener { |
197 | - /** */ | 266 | + /** The serial version UID (affected with a random number). */ |
198 | private static final long serialVersionUID = 7923358142882329015L; | 267 | private static final long serialVersionUID = 7923358142882329015L; |
268 | + /** The JTextField used to put the parameter minimum value of the range. */ | ||
199 | JTextField fieldMin; | 269 | JTextField fieldMin; |
270 | + /** The JTextField used to put the parameter maximum value of the range. */ | ||
200 | JTextField fieldMax; | 271 | JTextField fieldMax; |
201 | 272 | ||
273 | + /** | ||
274 | + * Method constructor | ||
275 | + * | ||
276 | + * @param mainView The main view of the application. | ||
277 | + * @param paramName The name of the parameter. | ||
278 | + */ | ||
202 | public FloatRangeField(EpnTapMainView mainView, String paramName) { | 279 | public FloatRangeField(EpnTapMainView mainView, String paramName) { |
203 | super(mainView, paramName); | 280 | super(mainView, paramName); |
204 | fieldMin = new JTextField(); | 281 | fieldMin = new JTextField(); |
@@ -212,6 +289,9 @@ public abstract class ParamField extends JPanel { | @@ -212,6 +289,9 @@ public abstract class ParamField extends JPanel { | ||
212 | this.add(fieldMax); | 289 | this.add(fieldMax); |
213 | } | 290 | } |
214 | 291 | ||
292 | + /** | ||
293 | + * This method is called each time the field is modified. | ||
294 | + */ | ||
215 | @Override | 295 | @Override |
216 | public void update(JTextField field) { | 296 | public void update(JTextField field) { |
217 | if ("".equals(field.getText())) { | 297 | if ("".equals(field.getText())) { |
@@ -229,13 +309,34 @@ public abstract class ParamField extends JPanel { | @@ -229,13 +309,34 @@ public abstract class ParamField extends JPanel { | ||
229 | } | 309 | } |
230 | } | 310 | } |
231 | 311 | ||
312 | + /** | ||
313 | + * The target name field is used only for the `target_name` parameter. It is a ComboBox which is | ||
314 | + * automatically filled with actual target names which begins by the entered characters, by | ||
315 | + * asking to an online resolver (RESOLVER_URL). The parameter is sent to the controller each | ||
316 | + * time it is updated, so it is possible to enter a parameter that the resolver do not know. | ||
317 | + * | ||
318 | + * @author N. Jourdane | ||
319 | + */ | ||
232 | public static class TargetNameField extends ParamField implements TextFieldListener { | 320 | public static class TargetNameField extends ParamField implements TextFieldListener { |
233 | - /** */ | 321 | + /** The serial version UID (affected with a random number). */ |
234 | private static final long serialVersionUID = 5136431108894677113L; | 322 | private static final long serialVersionUID = 5136431108894677113L; |
323 | + /** The comboBox to enter the target_name and display target name propositions. */ | ||
235 | JComboBox<String> comboBox; | 324 | JComboBox<String> comboBox; |
325 | + /** The JTextField related to the ComboBox, allowing to listen for text content update. */ | ||
236 | JTextField field; | 326 | JTextField field; |
327 | + /** | ||
328 | + * The content of the last entered value. It is used to avoid recursions, because each time | ||
329 | + * an update event is detected, the resolver is called and the ComboBox is filled with new | ||
330 | + * values, which trigger a new event. | ||
331 | + */ | ||
237 | String lastContent; | 332 | String lastContent; |
238 | 333 | ||
334 | + /** | ||
335 | + * Method constructor | ||
336 | + * | ||
337 | + * @param mainView The main view of the application. | ||
338 | + * @param paramName The name of the parameter. | ||
339 | + */ | ||
239 | public TargetNameField(EpnTapMainView mainView, String paramName) { | 340 | public TargetNameField(EpnTapMainView mainView, String paramName) { |
240 | super(mainView, paramName); | 341 | super(mainView, paramName); |
241 | comboBox = new JComboBox<>(); | 342 | comboBox = new JComboBox<>(); |
@@ -247,6 +348,13 @@ public abstract class ParamField extends JPanel { | @@ -247,6 +348,13 @@ public abstract class ParamField extends JPanel { | ||
247 | this.add(comboBox); | 348 | this.add(comboBox); |
248 | } | 349 | } |
249 | 350 | ||
351 | + /** | ||
352 | + * The method used to get target names propositions by asking to the resolver. | ||
353 | + * | ||
354 | + * @param begining The beginning of the target_name. | ||
355 | + * @return An array of Strings corresponding to the target names got. | ||
356 | + * @throws SendQueryException If the resolver do not work. | ||
357 | + */ | ||
250 | static String[] getItems(String begining) throws SendQueryException { | 358 | static String[] getItems(String begining) throws SendQueryException { |
251 | StringBuilder resolverResult = null; | 359 | StringBuilder resolverResult = null; |
252 | resolverResult = VOTableConnection.sendGet(RESOLVER_URL, "q=\"" + begining + "\""); | 360 | resolverResult = VOTableConnection.sendGet(RESOLVER_URL, "q=\"" + begining + "\""); |
@@ -262,6 +370,10 @@ public abstract class ParamField extends JPanel { | @@ -262,6 +370,10 @@ public abstract class ParamField extends JPanel { | ||
262 | return targetNames; | 370 | return targetNames; |
263 | } | 371 | } |
264 | 372 | ||
373 | + /** | ||
374 | + * This method is called each time the field is modified. A Runnable is used it is | ||
375 | + * impossible to modify the comboBox from a DocumentEvent. | ||
376 | + */ | ||
265 | Runnable updateComboBox = new Runnable() { | 377 | Runnable updateComboBox = new Runnable() { |
266 | @Override | 378 | @Override |
267 | public void run() { | 379 | public void run() { |
@@ -288,41 +400,67 @@ public abstract class ParamField extends JPanel { | @@ -288,41 +400,67 @@ public abstract class ParamField extends JPanel { | ||
288 | } | 400 | } |
289 | }; | 401 | }; |
290 | 402 | ||
403 | + /** | ||
404 | + * This method is called each time the field is modified. | ||
405 | + */ | ||
291 | @Override | 406 | @Override |
292 | public void update(JTextField textField) { | 407 | public void update(JTextField textField) { |
293 | SwingUtilities.invokeLater(updateComboBox); | 408 | SwingUtilities.invokeLater(updateComboBox); |
294 | } | 409 | } |
295 | } | 410 | } |
296 | 411 | ||
412 | + /** | ||
413 | + * The data product type field is used only for the `dataproduct_type` parameter. It is a | ||
414 | + * ComboBox filled with a list of static data product types (see | ||
415 | + * https://voparis-confluence.obspm.fr/display/VES/4+-+EPN-TAP+queries#id-4-EPN-TAPqueries- | ||
416 | + * __RefHeading__35_312326667_Toc3037660444.2.4DataProductType). The parameter is sent to the | ||
417 | + * controller each time it is updated. | ||
418 | + * | ||
419 | + * @author N. Jourdane | ||
420 | + */ | ||
297 | public static class DataProductTypeField extends ParamField { | 421 | public static class DataProductTypeField extends ParamField { |
298 | - /** */ | 422 | + /** The serial version UID (affected with a random number). */ |
299 | private static final long serialVersionUID = -6362359909898369750L; | 423 | private static final long serialVersionUID = -6362359909898369750L; |
424 | + /** The comboBox used to select the data product type. */ | ||
300 | JComboBox<DataProductType> comboBox; | 425 | JComboBox<DataProductType> comboBox; |
301 | 426 | ||
427 | + /** | ||
428 | + * An enumeration of all available data product types. Each values comes with an id because | ||
429 | + * EPN-TAP table can possibly be filled with the id instead of the name, so the query have | ||
430 | + * to ask for both of them. | ||
431 | + * | ||
432 | + * @author N. Jourdane | ||
433 | + */ | ||
434 | + @SuppressWarnings("javadoc") | ||
302 | enum DataProductType { | 435 | enum DataProductType { |
303 | // @noformat | 436 | // @noformat |
304 | - ALL("All", "all"), | ||
305 | - IM("Image", "im"), | ||
306 | - SP("Spectrum", "sp"), | ||
307 | - DS("Dynamic spectrum", "ds"), | ||
308 | - SC("Spectral cube", "sc"), | ||
309 | - PR("Profile", "pr"), | ||
310 | - VO("Volume", "vo"), | ||
311 | - MO("Movie", "mo"), | ||
312 | - CU("Cube", "cu"), | ||
313 | - TS("Time series", "ts"), | ||
314 | - CA("Catalog", "ca"), | ||
315 | - SV("Spatial vector", "sv"); | 437 | + ALL("All", "all"), IM("Image", "im"), SP("Spectrum", "sp"), |
438 | + DS("Dynamic spectrum", "ds"), SC("Spectral cube", "sc"), PR("Profile", "pr"), | ||
439 | + VO("Volume", "vo"), MO("Movie", "mo"), CU("Cube", "cu"), | ||
440 | + TS("Time series", "ts"), CA("Catalog", "ca"), SV("Spatial vector", "sv"); | ||
316 | // @format | 441 | // @format |
317 | 442 | ||
443 | + /** The full name of the data product type, such as `Dynamic spectrum`. */ | ||
318 | private String name = ""; | 444 | private String name = ""; |
445 | + /** The id of the data product type, such as `ds`. */ | ||
319 | private String id = ""; | 446 | private String id = ""; |
320 | 447 | ||
321 | - DataProductType(String name, String editor) { | 448 | + /** |
449 | + * Method constructor for the enumeration. | ||
450 | + * | ||
451 | + * @param name The full name of the data product type, such as `Dynamic spectrum`. | ||
452 | + * @param id The id of the data product type, such as `ds`. | ||
453 | + */ | ||
454 | + DataProductType(String name, String id) { | ||
322 | this.name = name; | 455 | this.name = name; |
323 | - this.id = editor; | 456 | + this.id = id; |
324 | } | 457 | } |
325 | 458 | ||
459 | + /** | ||
460 | + * @return A list of two strings, containing the name (formated for the query) and the | ||
461 | + * id, used in the query. A list is used instead of a array because the getQuery | ||
462 | + * function ( @see Queries) needs to know the parameter type. | ||
463 | + */ | ||
326 | public List<String> query() { | 464 | public List<String> query() { |
327 | List<String> item = new ArrayList<>(); | 465 | List<String> item = new ArrayList<>(); |
328 | item.add(name.replace(" ", "-").toLowerCase()); | 466 | item.add(name.replace(" ", "-").toLowerCase()); |
@@ -336,6 +474,12 @@ public abstract class ParamField extends JPanel { | @@ -336,6 +474,12 @@ public abstract class ParamField extends JPanel { | ||
336 | } | 474 | } |
337 | } | 475 | } |
338 | 476 | ||
477 | + /** | ||
478 | + * Method constructor | ||
479 | + * | ||
480 | + * @param mainView The main view of the application. | ||
481 | + * @param paramName The name of the parameter. | ||
482 | + */ | ||
339 | public DataProductTypeField(EpnTapMainView mainView, String paramName) { | 483 | public DataProductTypeField(EpnTapMainView mainView, String paramName) { |
340 | super(mainView, paramName); | 484 | super(mainView, paramName); |
341 | comboBox = new JComboBox<>(DataProductType.values()); | 485 | comboBox = new JComboBox<>(DataProductType.values()); |
@@ -344,13 +488,16 @@ public abstract class ParamField extends JPanel { | @@ -344,13 +488,16 @@ public abstract class ParamField extends JPanel { | ||
344 | comboBox.addActionListener(new ActionListener() { | 488 | comboBox.addActionListener(new ActionListener() { |
345 | @Override | 489 | @Override |
346 | public void actionPerformed(ActionEvent e) { | 490 | public void actionPerformed(ActionEvent e) { |
347 | - onUpdate(); | 491 | + update(); |
348 | } | 492 | } |
349 | }); | 493 | }); |
350 | this.add(comboBox); | 494 | this.add(comboBox); |
351 | } | 495 | } |
352 | 496 | ||
353 | - void onUpdate() { | 497 | + /** |
498 | + * This method is called each time the field is modified. | ||
499 | + */ | ||
500 | + void update() { | ||
354 | DataProductType item = (DataProductType) comboBox.getSelectedItem(); | 501 | DataProductType item = (DataProductType) comboBox.getSelectedItem(); |
355 | if (DataProductType.ALL.equals(item)) { | 502 | if (DataProductType.ALL.equals(item)) { |
356 | mainView.event(Event.paramRemoved, paramName); | 503 | mainView.event(Event.paramRemoved, paramName); |
@@ -360,35 +507,61 @@ public abstract class ParamField extends JPanel { | @@ -360,35 +507,61 @@ public abstract class ParamField extends JPanel { | ||
360 | } | 507 | } |
361 | } | 508 | } |
362 | 509 | ||
510 | + /** | ||
511 | + * The target class field is used only for the `target_class` parameter. It is a ComboBox filled | ||
512 | + * with a list of static target classes (see | ||
513 | + * https://voparis-confluence.obspm.fr/display/VES/4+-+EPN-TAP+queries#id-4-EPN-TAPqueries- | ||
514 | + * __RefHeading__39_312326667_Toc3037660464.2.6TargetClass). The parameter is sent to the | ||
515 | + * controller each time it is updated. | ||
516 | + * | ||
517 | + * @author N. Jourdane | ||
518 | + */ | ||
363 | public static class TargetClassField extends ParamField { | 519 | public static class TargetClassField extends ParamField { |
364 | - /** */ | 520 | + /** The serial version UID (affected with a random number). */ |
365 | private static final long serialVersionUID = 6439475087727685080L; | 521 | private static final long serialVersionUID = 6439475087727685080L; |
522 | + | ||
523 | + /** The comboBox used to select the target class. */ | ||
366 | JComboBox<TargetClass> comboBox; | 524 | JComboBox<TargetClass> comboBox; |
367 | 525 | ||
526 | + /** | ||
527 | + * An enumeration of all available target classes. | ||
528 | + * | ||
529 | + * @author N. Jourdane | ||
530 | + */ | ||
531 | + @SuppressWarnings("javadoc") | ||
368 | enum TargetClass { | 532 | enum TargetClass { |
369 | // @noformat | 533 | // @noformat |
370 | - ALL("All"), | ||
371 | - COMET("Comet"), | ||
372 | - EXOPLANET("Exoplanet"), | ||
373 | - INTERPLANETARY_MEDIUM("Interplanetary medium"), | ||
374 | - RING("Ring"), SAMPLE("Sample"), | ||
375 | - SKY("Sky"), | ||
376 | - SPACECRAFT("Spacecraft"), | ||
377 | - SPACEJUNK("Spacejunk"), | ||
378 | - STAR("Star"); | 534 | + ALL("All"), COMET("Comet"), EXOPLANET("Exoplanet"), RING("Ring"), |
535 | + SAMPLE("Sample"), SKY("Sky"), SPACECRAFT("Spacecraft"), SPACEJUNK("Spacejunk"), | ||
536 | + STAR("Star"), INTERPLANETARY_MEDIUM("Interplanetary medium"); | ||
379 | // @format | 537 | // @format |
380 | 538 | ||
539 | + /** The name of the target class. */ | ||
381 | String name; | 540 | String name; |
382 | 541 | ||
542 | + /** | ||
543 | + * Method constructor for the enumeration. | ||
544 | + * | ||
545 | + * @param name The name of the target class. | ||
546 | + */ | ||
383 | TargetClass(String name) { | 547 | TargetClass(String name) { |
384 | this.name = name; | 548 | this.name = name; |
385 | } | 549 | } |
386 | 550 | ||
551 | + /** | ||
552 | + * @return The name formated for the query. | ||
553 | + */ | ||
387 | String query() { | 554 | String query() { |
388 | return name.replace(" ", "_").toLowerCase(); | 555 | return name.replace(" ", "_").toLowerCase(); |
389 | } | 556 | } |
390 | } | 557 | } |
391 | 558 | ||
559 | + /** | ||
560 | + * Method constructor | ||
561 | + * | ||
562 | + * @param mainView The main view of the application. | ||
563 | + * @param paramName The name of the parameter. | ||
564 | + */ | ||
392 | public TargetClassField(EpnTapMainView mainView, String paramName) { | 565 | public TargetClassField(EpnTapMainView mainView, String paramName) { |
393 | super(mainView, paramName); | 566 | super(mainView, paramName); |
394 | comboBox = new JComboBox<>(TargetClass.values()); | 567 | comboBox = new JComboBox<>(TargetClass.values()); |
@@ -396,13 +569,16 @@ public abstract class ParamField extends JPanel { | @@ -396,13 +569,16 @@ public abstract class ParamField extends JPanel { | ||
396 | comboBox.addActionListener(new ActionListener() { | 569 | comboBox.addActionListener(new ActionListener() { |
397 | @Override | 570 | @Override |
398 | public void actionPerformed(ActionEvent e) { | 571 | public void actionPerformed(ActionEvent e) { |
399 | - onUpdate(); | 572 | + update(); |
400 | } | 573 | } |
401 | }); | 574 | }); |
402 | this.add(comboBox); | 575 | this.add(comboBox); |
403 | } | 576 | } |
404 | 577 | ||
405 | - void onUpdate() { | 578 | + /** |
579 | + * This method is called each time the field is modified. | ||
580 | + */ | ||
581 | + void update() { | ||
406 | TargetClass value = (TargetClass) comboBox.getSelectedItem(); | 582 | TargetClass value = (TargetClass) comboBox.getSelectedItem(); |
407 | if (TargetClass.ALL.equals(value)) { | 583 | if (TargetClass.ALL.equals(value)) { |
408 | mainView.event(Event.paramRemoved, paramName); | 584 | mainView.event(Event.paramRemoved, paramName); |
@@ -412,10 +588,29 @@ public abstract class ParamField extends JPanel { | @@ -412,10 +588,29 @@ public abstract class ParamField extends JPanel { | ||
412 | } | 588 | } |
413 | } | 589 | } |
414 | 590 | ||
591 | + /** | ||
592 | + * The listener of text field, it aims to provide a simple way to listen a text field without to | ||
593 | + * override removeUpdate(DocumentEvent de), insertUpdate(DocumentEvent de) and | ||
594 | + * changedUpdate(DocumentEvent de) on each field to listen. | ||
595 | + * | ||
596 | + * @author N. Jourdane | ||
597 | + */ | ||
415 | interface TextFieldListener { | 598 | interface TextFieldListener { |
599 | + /** | ||
600 | + * When the content of the JTextField is updated. | ||
601 | + * | ||
602 | + * @param field The JTextField. Is useful for classes containing several text fields, such | ||
603 | + * as DateRangeField, to know which one triggered the event. | ||
604 | + */ | ||
416 | void update(JTextField field); | 605 | void update(JTextField field); |
417 | } | 606 | } |
418 | 607 | ||
608 | + /** | ||
609 | + * To add the listener. @see TextFieldListener | ||
610 | + * | ||
611 | + * @param changeListener The listener of text fields. | ||
612 | + * @param field The field to listen. | ||
613 | + */ | ||
419 | static void addChangeListener(final TextFieldListener changeListener, final JTextField field) { | 614 | static void addChangeListener(final TextFieldListener changeListener, final JTextField field) { |
420 | field.getDocument().addDocumentListener(new DocumentListener() { | 615 | field.getDocument().addDocumentListener(new DocumentListener() { |
421 | @Override | 616 | @Override |