View Javadoc
1   package fr.ifremer.dali.config;
2   
3   /*
4    * #%L
5    * Dali :: Core
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2014 - 2015 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU Affero General Public License as published by
13   * the Free Software Foundation, either version 3 of the License, or
14   * (at your option) any later version.
15   *
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   *
21   * You should have received a copy of the GNU Affero General Public License
22   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23   * #L%
24   */
25  
26  import fr.ifremer.quadrige3.core.dao.technical.QuadrigeEnumerationDef;
27  import org.nuiton.config.ConfigOptionDef;
28  import org.nuiton.version.Version;
29  
30  import javax.swing.KeyStroke;
31  import java.awt.Color;
32  import java.io.File;
33  import java.net.URL;
34  
35  import static org.nuiton.i18n.I18n.n;
36  
37  /**
38   * <p>DaliConfigurationOption class.</p>
39   *
40   * @author Lionel Touseau <lionel.touseau@e-is.pro>
41   */
42  public enum DaliConfigurationOption implements ConfigOptionDef {
43  
44      /**
45       * -------- READ-ONLY OPTIONS -----------
46       */
47      BASEDIR(
48              "dali.basedir",
49              n("dali.config.option.basedir.description"),
50              "${user.home}/.dali",
51              File.class),
52      HELP_DIRECTORY(
53              "dali.help.directory",
54              n("dali.config.option.help.directory.description"),
55              "${dali.basedir}/help",
56              File.class),
57      /*-----------------------------------------------------------------
58       *-- DB OPTIONS ---------------------------------------------------
59       *-----------------------------------------------------------------*/
60      CACHE_ENABLED_AT_STARTUP(
61              "dali.persistence.cache.enabled",
62              n("dali.persistence.cache.enabled.description"),
63              "true",
64              Boolean.class,
65              false),
66      CACHE_CLEAN_AT_STARTUP(
67              "dali.persistence.cache.clean",
68              n("dali.persistence.cache.clean.description"),
69              "false",
70              Boolean.class),
71      DB_CHECK_CONSTANTS(
72              "dali.persistence.checkConstants.enable",
73              n("dali.config.option.persistence.checkConstants.description"),
74              String.valueOf(false),
75              Boolean.class, false),
76      VERSION(
77              "dali.version",
78              n("dali.config.option.version.description"),
79              "",
80              Version.class),
81      SITE_URL(
82              "dali.site.url",
83              n("dali.config.option.site.url.description"),
84              "http://doc.e-is.pro/dali",
85              URL.class, false),
86      ORGANIZATION_NAME(
87              "dali.organizationName",
88              n("dali.config.option.organizationName.description"),
89              "",
90              String.class),
91      INCEPTION_YEAR(
92              "dali.inceptionYear",
93              n("dali.config.option.inceptionYear.description"),
94              "2014",
95              Integer.class),
96  
97      /*------------------------------------------------------------------------
98       *-- READ-WRITE OPTIONS --------------------------------------------------
99       *------------------------------------------------------------------------*/
100     TIMEZONE(
101             "dali.timezone",
102             n("dali.config.option.timezone.description"),
103             "",
104             String.class,
105             false),
106     DB_BACKUP_EXTERNAL_DIRECTORY(
107             "dali.persistence.db.backup.external.directory",
108             n("dali.config.option.persistence.db.backup.external.directory.description"),
109             null,
110             File.class,
111             false),
112     DB_ENUMERATION_RESOURCE(
113             "dali.persistence.db.enumeration.path",
114             n("dali.config.option.persistence.db.enumeration.path.description"),
115             "classpath*:quadrige3-db-enumerations.properties,classpath*:dali-db-enumerations.properties",
116             String.class,
117             false),
118     DB_TIMEZONE(
119             "dali.persistence.db.timezone",
120             n("dali.config.option.persistence.db.timezone.description"),
121             "", // no default, this option must be provided in config file (Mantis #46390)
122             String.class,
123             false),
124     DB_VALIDATION_BULK_SIZE(
125             "dali.persistence.db.validation.bulkSize",
126             n("dali.config.option.persistence.db.validation.bulkSize.description"),
127             "100",
128             Integer.class,
129             false),
130     UNKNOWN_RECORDER_DEPARTMENT(
131             "dali.department.recorder.default.id",
132             n("dali.config.option.department.recorder.default.id.description"),
133             "0",
134             String.class,
135             false),
136 
137     // UI RELATED
138     UI_CONFIG_FILE(
139             "dali.ui.config.file",
140             n("dali.config.option.ui.config.file.description"),
141             "${quadrige3.data.directory}/daliUI.xml",
142             File.class,
143             false),
144     UI_RECOMMENDED_WIDTH(
145             "dali.ui.recommended.width",
146             n("dali.config.option.ui.recommended.width.description"),
147             String.valueOf(1280),
148             Integer.class,
149             false),
150     UI_RECOMMENDED_HEIGHT(
151             "dali.ui.recommended.height",
152             n("dali.config.option.ui.recommended.height.description"),
153             String.valueOf(1024),
154             Integer.class,
155             false),
156     TABLES_CHECKBOX(
157             "dali.ui.table.showCheckbox",
158             n("dali.config.option.ui.table.showCheckbox.description"),
159             String.valueOf(false),
160             Boolean.class,
161             false),
162     AUTO_POPUP_NUMBER_EDITOR(
163             "dali.ui.autoPopupNumberEditor",
164             n("dali.config.option.ui.autoPopupNumberEditor.description"),
165             String.valueOf(false),
166             Boolean.class,
167             false),
168     SHOW_NUMBER_EDITOR_BUTTON(
169             "dali.ui.showNumberEditorButton",
170             n("dali.config.option.ui.showNumberEditorButton.description"),
171             String.valueOf(true),
172             Boolean.class,
173             false),
174     COLOR_ROW_READ_ONLY(
175             "dali.ui.color.rowReadOnly",
176             n("dali.config.option.ui.color.rowReadOnly.description"),
177             new Color(230, 230, 230).toString(),
178             Color.class,
179             false),
180     COLOR_ROW_INVALID(
181             "dali.ui.color.rowInvalid",
182             n("dali.config.option.ui.color.rowInvalid.description"),
183             new Color(255, 204, 153).toString(),
184             Color.class,
185             false),
186     COLOR_CELL_WITH_VALUE(
187             "dali.ui.color.cellWithValue",
188             n("dali.config.option.ui.color.cellWithValue.description"),
189             new Color(128, 255, 128).toString(),
190             Color.class,
191             false),
192     COLOR_ALTERNATE_ROW(
193             "dali.ui.color.alternateRow",
194             n("dali.config.option.ui.color.alternateRow.description"),
195             new Color(255, 255, 232).toString(),
196             Color.class,
197             false),
198     COLOR_SELECTED_ROW(
199             "dali.ui.color.selectedRow",
200             n("dali.config.option.ui.color.selectedRow.description"),
201             new Color(0, 0, 128).toString(),
202             Color.class,
203             false),
204     COLOR_BLOCKING_LAYER(
205             "dali.ui.color.blockingLayer",
206             n("dali.config.option.ui.color.blockingLayer.description"),
207             Color.BLACK.toString(),
208             Color.class,
209             false),
210     COLOR_COMPUTED_WEIGHTS(
211             "dali.ui.color.computedWeights",
212             n("dali.config.option.ui.color.computedWeights.description"),
213             Color.BLUE.toString(),
214             Color.class,
215             false),
216     COLOR_SELECTED_CELL(
217             "dali.ui.color.selectedCell",
218             n("dali.config.option.ui.color.selectedCell.description"),
219             Color.BLACK.toString(),
220             Color.class,
221             false),
222     COLOR_SELECTION_PANEL_BACKGROUND(
223             "dali.ui.color.selectionPanelBackground",
224             n("dali.config.option.ui.color.selectionPanelBackground.description"),
225             new Color(144, 211, 253).toString(),
226             Color.class,
227             false),
228     COLOR_CONTEXT_PANEL_BACKGROUND(
229             "dali.ui.color.contextPanelBackground",
230             n("dali.config.option.ui.color.contextPanelBackground.description"),
231             new Color(136, 208, 238).toString(),
232             Color.class,
233             false),
234     COLOR_EDITION_PANEL_BACKGROUND(
235             "dali.ui.color.editionPanelBackground",
236             n("dali.config.option.ui.color.editionPanelBackground.description"),
237             new Color(210, 237, 254).toString(),
238             Color.class,
239             false),
240     COLOR_EDITION_PANEL_BORDER(
241             "dali.ui.color.editionPanelBorder",
242             n("dali.config.option.ui.color.editionPanelBorder.description"),
243             new Color(0, 144, 188).toString(),
244             Color.class,
245             false),
246     COLOR_THEMATIC_LABEL(
247             "dali.ui.color.thematicLabel",
248             n("dali.config.option.ui.color.thematicLabel.description"),
249             new Color(0, 0, 128).toString(),
250             Color.class,
251             false),
252     COLOR_HIGHLIGHT_BUTTON_BORDER(
253             "dali.ui.color.highlightButtonBorder",
254             n("dali.config.option.ui.color.highlightButtonBorder.description"),
255             new Color(209, 0, 209).toString(),
256             Color.class,
257             false),
258     COLOR_UNUSED_EDITOR_BACKGROUND(
259             "dali.ui.color.unusedEditorBackground",
260             n("dali.config.option.ui.color.unusedEditorBackground.description"),
261             new Color(245, 245, 245).toString(),
262             Color.class,
263             false),
264     SHORTCUT_CLOSE_POPUP(
265             "dali.ui.shortcut.closePopup",
266             n("dali.config.option.ui.shortcut.closePopup.description"),
267             "alt pressed F",
268             KeyStroke.class,
269             false),
270     DATE_FORMAT(
271             "dali.ui.dateFormat",
272             n("dali.config.option.ui.dateFormat.description"),
273             "dd/MM/yyyy",
274             String.class,
275             false),
276     DATE_TIME_FORMAT(
277             "dali.ui.dateTimeFormat",
278             n("dali.config.option.ui.dateTimeFormat.description"),
279             "dd/MM/yyyy HH:mm",
280             String.class,
281             false),
282     LAST_SURVEY_ID(
283             "dali.lastSurveyId",
284             n("dali.config.option.lastSurveyId.description"),
285             null,
286             Integer.class,
287             false),
288     LAST_CONTEXT_ID(
289             "dali.lastContextId",
290             n("dali.config.option.lastContextId.description"),
291             null,
292             Integer.class,
293             false),
294 
295     /* CONSTANT ENUMERATIONS */
296     UNIT_ID_NO_UNIT(
297             "dali.unit.id.noUnit",
298             n("dali.config.option.unit.id.noUnit.description"),
299             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "UnitId.NO_UNIT"), // 99
300             Integer.class,
301             false),
302     PMFM_ID_SURVEY_CALCULATED_LENGTH(
303             "dali.pmfm.id.surveyCalculatedLength",
304             n("dali.config.option.pmfm.id.surveyCalculatedLength.description"),
305             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "pmfmId.SURVEY_CALCULATED_LENGTH"),
306             Integer.class,
307             false),
308     PMFM_IDS_CALCULATED_TRAWL_AREA(
309             "dali.pmfm.ids.calculatedTrawlArea",
310             n("dali.config.option.pmfm.ids.calculatedTrawlArea.description"),
311             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "pmfmIds.CALCULATED_TRAWL_AREA"),
312             String.class,
313             false),
314     UNIT_IDS_COMPATIBLE_LENGTH_BY_AREA(
315             "dali.unit.ids.compatibleLengthByArea",
316             n("dali.config.option.unit.ids.compatibleLengthByArea.description"),
317             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "unitIds.COMPATIBLE_LENGTH_BY_AREA"),
318             String.class,
319             false),
320 
321     /* ------------ TRANSCRIBING --------------*/
322     TRANSCRIBING_ITEM_TYPE_LB_PMFM_NM(
323             "dali.transcribingItemType.label.pmfmNm",
324             n("dali.config.option.transcribingItemType.label.pmfmNm.description"),
325             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_PMFM_NM"),
326             String.class,
327             false),
328     TRANSCRIBING_ITEM_TYPE_LB_PMFM_EXTRACTION(
329             "dali.transcribingItemType.label.pmfmExtraction",
330             n("dali.config.option.transcribingItemType.label.pmfmExtraction.description"),
331             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_PMFM_EXTRACTION"),
332             String.class,
333             false),
334     TRANSCRIBING_ITEM_TYPE_LB_QUALITATIVE_VALUE_NM(
335             "dali.transcribingItemType.label.qualitativeValueNm",
336             n("dali.config.option.transcribingItemType.label.qualitativeValueNm.description"),
337             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_QUALITATIVE_VALUE_NM"),
338             String.class,
339             false),
340     TRANSCRIBING_ITEM_TYPE_LB_QUALITATIVE_VALUE_EXTRACTION(
341             "dali.transcribingItemType.label.qualitativeValueExtraction",
342             n("dali.config.option.transcribingItemType.label.qualitativeValueExtraction.description"),
343             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_QUALITATIVE_VALUE_EXTRACTION"),
344             String.class,
345             false),
346     TRANSCRIBING_ITEM_TYPE_LB_SAMPLING_EQUIPMENT_NM(
347             "dali.transcribingItemType.label.samplingEquipmentNm",
348             n("dali.config.option.transcribingItemType.label.samplingEquipmentNm.description"),
349             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_SAMPLING_EQUIPMENT_NM"),
350             String.class,
351             false),
352     TRANSCRIBING_ITEM_TYPE_LB_SAMPLING_EQUIPMENT_EXTRACTION(
353             "dali.transcribingItemType.label.samplingEquipmentExtraction",
354             n("dali.config.option.transcribingItemType.label.samplingEquipmentExtraction.description"),
355             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_SAMPLING_EQUIPMENT_EXTRACTION"),
356             String.class,
357             false),
358 
359     TRANSCRIBING_ITEM_TYPE_LB_PARAMETER_NM(
360             "dali.transcribingItemType.label.parameterNm",
361             n("dali.config.option.transcribingItemType.label.parameterNm.description"),
362             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_PARAMETER_NM"),
363             String.class,
364             false),
365     TRANSCRIBING_ITEM_TYPE_LB_PARAMETER_CD(
366             "dali.transcribingItemType.label.parameterCd",
367             n("dali.config.option.transcribingItemType.label.parameterCd.description"),
368             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_PARAMETER_CD"),
369             String.class,
370             false),
371     TRANSCRIBING_ITEM_TYPE_LB_MATRIX_NM(
372             "dali.transcribingItemType.label.matrixNm",
373             n("dali.config.option.transcribingItemType.label.matrixNm.description"),
374             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_MATRIX_NM"),
375             String.class,
376             false),
377     TRANSCRIBING_ITEM_TYPE_LB_FRACTION_NM(
378             "dali.transcribingItemType.label.fractionNm",
379             n("dali.config.option.transcribingItemType.label.fractionNm.description"),
380             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_FRACTION_NM"),
381             String.class,
382             false),
383     TRANSCRIBING_ITEM_TYPE_LB_METHOD_NM(
384             "dali.transcribingItemType.label.methodNm",
385             n("dali.config.option.transcribingItemType.label.methodNm.description"),
386             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_METHOD_NM"),
387             String.class,
388             false),
389     TRANSCRIBING_ITEM_TYPE_LB_UNIT_NM(
390             "dali.transcribingItemType.label.unitNm",
391             n("dali.config.option.transcribingItemType.label.unitNm.description"),
392             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_UNIT_NM"),
393             String.class,
394             false),
395     TRANSCRIBING_ITEM_TYPE_LB_UNIT_SYMBOL(
396             "dali.transcribingItemType.label.unitSymbol",
397             n("dali.config.option.transcribingItemType.label.unitSymbol.description"),
398             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_UNIT_SYMBOL"),
399             String.class,
400             false),
401     TRANSCRIBING_ITEM_TYPE_LB_MON_LOC_NM(
402             "dali.transcribingItemType.label.monLocNm",
403             n("dali.config.option.transcribingItemType.label.monLocNm.description"),
404             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_MON_LOC_NM"),
405             String.class,
406             false),
407     TRANSCRIBING_ITEM_TYPE_LB_QUAL_FLAG_NM(
408             "dali.transcribingItemType.label.qualFlagNm",
409             n("dali.config.option.transcribingItemType.label.qualFlagNm.description"),
410             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_QUAL_FLAG_NM"),
411             String.class,
412             false),
413     TRANSCRIBING_ITEM_TYPE_LB_TAX_LEVEL_NM(
414             "dali.transcribingItemType.label.taxLevelNm",
415             n("dali.config.option.transcribingItemType.label.taxLevelNm.description"),
416             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_TAX_LEVEL_NM"),
417             String.class,
418             false),
419     TRANSCRIBING_ITEM_TYPE_LB_STATUS_NM(
420             "dali.transcribingItemType.label.statusNm",
421             n("dali.config.option.transcribingItemType.label.statusNm.description"),
422             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "TranscribingItemTypeLb.DALI_STATUS_NM"),
423             String.class,
424             false),
425 
426 
427     /* ------------ ALTERNATIVE_TAXON --------------*/
428     ALTERNATIVE_TAXON_ORIGIN_TAXREF("dali.alternativeTaxonOrigin.taxRef",
429             n("dali.config.option.alternativeTaxonOrigin.taxRef.description"),
430             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "AlternTaxonOriginCd.TAXREF"),
431             String.class,
432             false),
433     ALTERNATIVE_TAXON_ORIGIN_WORMS("dali.alternativeTaxonOrigin.worms",
434             n("dali.config.option.alternativeTaxonOrigin.worms.description"),
435             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "AlternTaxonOriginCd.WORMS"),
436             String.class,
437             false),
438 
439     // EXTRACTION
440     EXTRACTION_FILE_EXTENSION(
441             "dali.extraction.file.extension",
442             n("dali.config.option.extraction.file.extension.description"),
443             "dat",
444             String.class,
445             false),
446     EXTRACTION_RESULT_FILE_EXTENSION(
447             "dali.extraction.result.file.extension",
448             n("dali.config.option.extraction.result.file.extension.description"),
449             "csv",
450             String.class,
451             false),
452     EXTRACTION_FILE_TYPE_CODE(
453             "dali.extraction.fileType.code",
454             n("dali.config.option.extraction.fileType.code.description"),
455             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "fileTypeCd.DALI_EXTRACTION"),
456             String.class,
457             false),
458     EXTRACTION_TABLE_TYPE_CODE(
459             "dali.extraction.tableType.code",
460             n("dali.config.option.extraction.tableType.code.description"),
461             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "tableTypeCd.DALI_EXTRACTION"),
462             String.class,
463             false),
464     EXTRACTION_GROUP_TYPE_PMFM_CODE(
465             "dali.extraction.groupTypePmfm.code",
466             n("dali.config.option.extraction.groupTypePmfm.code.description"),
467             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "groupTypePmfmCd.DALI_EXTRACTION"),
468             String.class,
469             false),
470     EXTRACTION_PROJECTION_SYSTEM_CODE(
471             "dali.extraction.projectionSystem.code",
472             n("dali.config.option.extraction.projectionSystem.code.description"),
473             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "projectionSystemCd.DALI_EXTRACTION"),
474             String.class,
475             false),
476     EXTRACTION_DEFAULT_ORDER_ITEM_TYPE_CODE(
477             "dali.extraction.default.orderItemType.code",
478             n("dali.config.option.extraction.default.orderItemType.code.description"),
479             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "orderItemTypeCd.DALI_EXTRACTION"),
480             String.class,
481             false),
482     EXTRACTION_IGNORE_UNIT_IDS(
483             "dali.extraction.ignore.unit.ids",
484             n("dali.config.option.extraction.ignore.unit.ids.description"),
485             String.format("${%s%s}", QuadrigeEnumerationDef.CONFIG_OPTION_PREFIX, "unitId.DALI_EXTRACTION_EXCLUSION"),
486             String.class,
487             false),
488 
489     SISMER_WEBSITE_URL(
490             "dali.campaign.sismer.url",
491             n("dali.config.option.campaign.sismer.url.description"),
492             "http://dx.doi.org/",
493             URL.class,
494             false),
495 
496     //////////////////////////////
497     // MAP HANDLING AND CONTROL //
498     //////////////////////////////
499     CONTROL_SURVEY_LOCATION_MINIMUM_DISTANCE_IN_METER(
500             "dali.control.survey.location.minDistance.meter",
501             n("dali.config.option.control.survey.location.minDistance.meter.description"),
502             "10",
503             Integer.class,
504             false),
505     MAP_BASE_LAYER_DEFAULT(
506             "dali.survey.map.baseLayer.default",
507             n("dali.config.option.survey.map.baseLayer.default.description"),
508             "WMTS_SEXTANT", //MapMode.SEXTANT_WMTS_MAP_MODE.getCode()
509             String.class,
510             false),
511     MAP_PROJECTION_CODE(
512             "dali.survey.map.projection.code",
513             n("dali.config.option.survey.map.projection.code.description"),
514             "EPSG:3857", //MapProjection.WGS84_PSEUDO_MERCATOR.getCode()
515             String.class,
516             false),
517     MAP_SEXTANT_WMS_URL(
518             "dali.survey.map.sextantWMS.url",
519             n("dali.config.option.survey.map.sextantWMS.url.description"),
520             "http://www.ifremer.fr/services/wms1",
521             String.class,
522             false),
523     MAP_SEXTANT_WMTS_URL(
524             "dali.survey.map.sextantWMTS.url",
525             n("dali.config.option.survey.map.sextantWMTS.url.description"),
526             "https://sextant.ifremer.fr/geowebcache/service/wmts",
527             String.class,
528             false),
529     MAP_OSM_URL(
530             "dali.survey.map.openStreetMap.url",
531             n("dali.config.option.survey.map.openStreetMap.url.description"),
532             "https://tile.openstreetmap.org/",
533             String.class,
534             false),
535     MAP_OTM_URL(
536             "dali.survey.map.openTopoMap.url",
537             n("dali.config.option.survey.map.openTopoMap.url.description"),
538             "https://tile.opentopomap.org/",
539             String.class,
540             false),
541     MAP_CARTO_BASE_URL(
542             "dali.survey.map.cartoBase.url",
543             n("dali.config.option.survey.map.cartoBase.url.description"),
544             "https://basemaps.cartocdn.com/rastertiles/voyager/",
545             String.class,
546             false),
547     MAP_SATELLITE_URL(
548             "dali.survey.map.satellite.url",
549             n("dali.config.option.survey.map.satellite.url.description"),
550             "https://api.maptiler.com/tiles/satellite/",
551             String.class,
552             false),
553     MAP_MAX_SELECTION(
554             "dali.survey.map.maxSelection",
555             n("dali.config.option.survey.map.maxSelection.description"),
556             "50",
557             Integer.class,
558             false),
559 
560     // OTHER OPTIONS
561 
562     SAMPLING_OPERATION_AUTO_LABEL_ENABLE(
563             "dali.samplingOperation.autoLabel.enable",
564             n("dali.config.option.samplingOperation.autoLabel.enable.description"),
565             String.valueOf(false),
566             Boolean.class,
567             false),
568     GRID_INITIALIZATION_MAX_COMBINATION_COUNT(
569             "dali.measurements.gridInitialization.maxCombinationCount",
570             n("dali.config.option.measurements.gridInitialization.maxCombinationCount.description"),
571             "1000",
572             Integer.class,
573             false);
574 
575     /**
576      * Configuration key.
577      */
578     private final String key;
579 
580     /**
581      * I18n key of option description
582      */
583     private final String description;
584 
585     /**
586      * Type of option
587      */
588     private final Class<?> type;
589 
590     /**
591      * Default value of option.
592      */
593     private String defaultValue;
594 
595     /**
596      * Flag to not keep option value on disk
597      */
598     private final boolean isTransient;
599 
600     /**
601      * Flag to not allow option value modification
602      */
603     private final boolean isFinal;
604 
605     DaliConfigurationOption(String key,
606                             String description,
607                             String defaultValue,
608                             Class<?> type,
609                             boolean isTransient) {
610         this.key = key;
611         this.description = description;
612         this.defaultValue = defaultValue;
613         this.type = type;
614         this.isTransient = isTransient;
615         this.isFinal = isTransient;
616     }
617 
618     DaliConfigurationOption(String key,
619                             String description,
620                             String defaultValue,
621                             Class<?> type) {
622         this(key, description, defaultValue, type, true);
623     }
624 
625     /**
626      * {@inheritDoc}
627      */
628     @Override
629     public String getKey() {
630         return key;
631     }
632 
633     /**
634      * {@inheritDoc}
635      */
636     @Override
637     public Class<?> getType() {
638         return type;
639     }
640 
641     /**
642      * {@inheritDoc}
643      */
644     @Override
645     public String getDescription() {
646         return description;
647     }
648 
649     /**
650      * {@inheritDoc}
651      */
652     @Override
653     public String getDefaultValue() {
654         return defaultValue;
655     }
656 
657     /**
658      * {@inheritDoc}
659      */
660     @Override
661     public boolean isTransient() {
662         return isTransient;
663     }
664 
665     /**
666      * {@inheritDoc}
667      */
668     @Override
669     public boolean isFinal() {
670         return isFinal;
671     }
672 
673     /**
674      * {@inheritDoc}
675      */
676     @Override
677     public void setDefaultValue(String defaultValue) {
678         this.defaultValue = defaultValue;
679     }
680 
681     /**
682      * {@inheritDoc}
683      */
684     @Override
685     public void setTransient(boolean bln) {
686         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
687     }
688 
689     /**
690      * {@inheritDoc}
691      */
692     @Override
693     public void setFinal(boolean bln) {
694         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
695     }
696 
697 }