1 package fr.ifremer.dali.config;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import com.google.common.collect.Lists;
27 import fr.ifremer.common.synchro.config.SynchroConfigurationOption;
28 import fr.ifremer.dali.dto.DaliBeans;
29 import fr.ifremer.dali.map.MapMode;
30 import fr.ifremer.dali.map.MapProjection;
31 import fr.ifremer.quadrige3.core.config.QuadrigeConfigurationOption;
32 import fr.ifremer.quadrige3.core.config.QuadrigeConfigurations;
33 import fr.ifremer.quadrige3.core.config.QuadrigeCoreConfiguration;
34 import fr.ifremer.quadrige3.core.config.QuadrigeCoreConfigurationOption;
35 import fr.ifremer.quadrige3.core.dao.technical.enumeration.Enums;
36 import fr.ifremer.quadrige3.core.dao.technical.hibernate.DateType;
37 import org.apache.commons.collections4.CollectionUtils;
38 import org.apache.commons.lang3.StringUtils;
39 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
40 import org.apache.commons.logging.Log;
41 import org.apache.commons.logging.LogFactory;
42 import org.nuiton.config.ApplicationConfig;
43 import org.nuiton.version.Version;
44
45 import javax.swing.KeyStroke;
46 import java.awt.Color;
47 import java.io.File;
48 import java.net.URL;
49 import java.util.*;
50
51 import static org.nuiton.i18n.I18n.t;
52
53
54
55
56
57
58 public final class DaliConfiguration extends QuadrigeCoreConfiguration {
59
60
61
62
63 private static final Log LOG = LogFactory.getLog(DaliConfiguration.class);
64
65
66
67 private static DaliConfiguration instance;
68
69
70
71
72
73
74 public DaliConfiguration(ApplicationConfig applicationConfig) {
75 super(applicationConfig);
76 }
77
78
79
80
81
82
83
84 public DaliConfiguration(String file, String... args) {
85 super(file, args);
86
87
88 File daliBasedir = getBaseDirectory();
89 if (daliBasedir == null) {
90 daliBasedir = new File("");
91 }
92 if (!daliBasedir.isAbsolute()) {
93 daliBasedir = new File(daliBasedir.getAbsolutePath());
94 }
95 if ("..".equals(daliBasedir.getName())) {
96 daliBasedir = daliBasedir.getParentFile().getParentFile();
97 }
98 if (".".equals(daliBasedir.getName())) {
99 daliBasedir = daliBasedir.getParentFile();
100 }
101 if (LOG.isInfoEnabled()) {
102 LOG.info("Application basedir: " + daliBasedir);
103 }
104 applicationConfig.setOption(
105 DaliConfigurationOption.BASEDIR.getKey(),
106 daliBasedir.getAbsolutePath());
107
108
109 initTimeZone();
110 }
111
112 @Override
113 public File getBaseDirectory() {
114 return applicationConfig.getOptionAsFile(DaliConfigurationOption.BASEDIR.getKey());
115 }
116
117
118
119
120
121
122 public static DaliConfiguration getInstance() {
123 return instance;
124 }
125
126
127
128
129
130
131 public static void setInstance(DaliConfiguration instance) {
132 DaliConfiguration.instance = instance;
133 QuadrigeCoreConfiguration.setInstance(instance);
134 }
135
136 @Override
137 protected void overrideExternalModulesDefaultOptions() {
138 super.overrideExternalModulesDefaultOptions();
139
140
141 applicationConfig.setDefaultOption(
142 QuadrigeConfigurationOption.BASEDIR.getKey(),
143 String.format("${%s}", DaliConfigurationOption.BASEDIR.getKey()));
144
145
146 applicationConfig.setDefaultOption(
147 QuadrigeConfigurationOption.SITE_URL.getKey(),
148 String.format("${%s}", DaliConfigurationOption.SITE_URL.getKey()));
149
150
151
152
153 QuadrigeConfigurations.remapOptionsToPrefix(applicationConfig,
154 "quadrige3.update",
155 DaliConfigurationOption.values(),
156 "dali.update");
157 QuadrigeConfigurations.remapOptionsToPrefix(applicationConfig,
158 "quadrige3.install",
159 DaliConfigurationOption.values(),
160 "dali.install");
161 QuadrigeConfigurations.remapOptionsToPrefix(applicationConfig,
162 "quadrige3.authentication",
163 DaliConfigurationOption.values(),
164 "dali.authentication");
165
166
167 applicationConfig.setDefaultOption(
168 QuadrigeConfigurationOption.HIBERNATE_CLIENT_QUERIES_FILE.getKey(),
169 "dali-queries.hbm.xml");
170
171
172 applicationConfig.setDefaultOption(
173 QuadrigeConfigurationOption.DB_ENUMERATION_RESOURCE.getKey(),
174 String.format("${%s}", DaliConfigurationOption.DB_ENUMERATION_RESOURCE.getKey()));
175
176
177 applicationConfig.setDefaultOption(
178 QuadrigeConfigurationOption.DB_TIMEZONE.getKey(),
179 String.format("${%s}", DaliConfigurationOption.DB_TIMEZONE.getKey()));
180 applicationConfig.setDefaultOption(
181 SynchroConfigurationOption.DB_TIMEZONE.getKey(),
182 String.format("${%s}", DaliConfigurationOption.DB_TIMEZONE.getKey()));
183
184
185 QuadrigeConfigurations.remapOptionsToPrefix(applicationConfig,
186 "synchro",
187 DaliConfigurationOption.values(),
188 "dali.synchro");
189 QuadrigeConfigurations.remapOptionsToPrefix(applicationConfig,
190 "quadrige3.synchro",
191 DaliConfigurationOption.values(),
192 "dali.synchro");
193 }
194
195
196
197
198 @Override
199 public String getApplicationName() {
200 return t("dali.application.name");
201 }
202
203
204
205
206 @Override
207 public Version getVersion() {
208 return applicationConfig.getOptionAsVersion(DaliConfigurationOption.VERSION.getKey());
209 }
210
211
212
213
214 @Override
215 public KeyStroke getShortcutClosePopup() {
216 return applicationConfig.getOptionAsKeyStroke(DaliConfigurationOption.SHORTCUT_CLOSE_POPUP.getKey());
217 }
218
219
220
221
222
223
224
225 public String getHelpResourceWithLocale(String value) {
226 File directory = new File(getHelpDirectory(),
227 getI18nLocale().getLanguage());
228 File result = new File(directory, value);
229 return result.toString();
230 }
231
232
233
234
235 private void initTimeZone() {
236
237 String timeZone = applicationConfig.getOption(DaliConfigurationOption.TIMEZONE.getKey());
238 if (StringUtils.isNotBlank(timeZone)) {
239 if (LOG.isInfoEnabled()) {
240 LOG.info(String.format("Using timezone [%s]", timeZone));
241 }
242 TimeZone.setDefault(TimeZone.getTimeZone(timeZone));
243 System.setProperty("user.timezone", timeZone);
244 } else if (LOG.isInfoEnabled()) {
245 LOG.info(String.format("Using default timezone [%s]", System.getProperty("user.timezone")));
246 }
247
248
249 String dbTimeZoneOption = applicationConfig.getOption(DaliConfigurationOption.DB_TIMEZONE.getKey());
250 TimeZone dbTimeZone;
251 if (StringUtils.isBlank(dbTimeZoneOption)) {
252 LOG.warn("Timezone for database is not set in configuration, now using user timezone");
253 dbTimeZone = TimeZone.getDefault();
254 } else {
255 dbTimeZone = TimeZone.getTimeZone(dbTimeZoneOption);
256 }
257 if (LOG.isInfoEnabled()) {
258 LOG.info(String.format("Using timezone [%s] for database", dbTimeZone.toZoneId()));
259 }
260 DateType.setTimeZone(dbTimeZone);
261
262 }
263
264
265
266
267 @Override
268 public String toString() {
269 return ReflectionToStringBuilder.toString(this);
270 }
271
272
273
274
275
276
277
278
279
280
281 public Integer getLastSurveyId() {
282 return applicationConfig.getOptionAsInt(DaliConfigurationOption.LAST_SURVEY_ID.getKey());
283 }
284
285
286
287
288
289
290 public void setLastSurveyId(Integer lastSurveyId) {
291 applicationConfig.setOption(DaliConfigurationOption.LAST_SURVEY_ID.getKey(), lastSurveyId != null ? lastSurveyId.toString() : "");
292 }
293
294
295
296
297
298
299 public Integer getLastContextId() {
300 int lastContextId = applicationConfig.getOptionAsInt(DaliConfigurationOption.LAST_CONTEXT_ID.getKey());
301 return lastContextId == 0 ? null : lastContextId;
302 }
303
304
305
306
307
308
309 public void setLastContextId(Integer contextId) {
310 String value = "";
311 if (contextId != null) {
312 value = contextId.toString();
313 }
314 applicationConfig.setOption(DaliConfigurationOption.LAST_CONTEXT_ID.getKey(), value);
315 }
316
317
318
319
320
321
322
323
324
325
326 public File getDbBackupExternalDirectory() {
327 return applicationConfig.getOptionAsFile(DaliConfigurationOption.DB_BACKUP_EXTERNAL_DIRECTORY.getKey());
328 }
329
330
331
332
333
334
335 public boolean isDbCheckConstantsEnable() {
336 return applicationConfig.getOptionAsBoolean(DaliConfigurationOption.DB_CHECK_CONSTANTS.getKey());
337 }
338
339
340
341
342
343
344 public void setDbCheckConstantsEnable(boolean check) {
345 applicationConfig.setOption(DaliConfigurationOption.DB_CHECK_CONSTANTS.getKey(), Boolean.toString(check));
346 }
347
348
349
350
351
352
353 public TimeZone getDbTimezone() {
354 String timezone = applicationConfig.getOption(DaliConfigurationOption.DB_TIMEZONE.getKey());
355 return StringUtils.isNotBlank(timezone) ? TimeZone.getTimeZone(timezone) : TimeZone.getDefault();
356 }
357
358
359
360
361
362
363 public boolean isCacheEnabledAtStartup() {
364 return applicationConfig.getOptionAsBoolean(DaliConfigurationOption.CACHE_ENABLED_AT_STARTUP.getKey());
365 }
366
367
368
369
370
371
372 public boolean isCleanCacheAtStartup() {
373 return applicationConfig.getOptionAsBoolean(DaliConfigurationOption.CACHE_CLEAN_AT_STARTUP.getKey());
374 }
375
376
377
378
379
380
381 public URL getSiteUrl() {
382 return applicationConfig.getOptionAsURL(DaliConfigurationOption.SITE_URL.getKey());
383 }
384
385
386
387
388
389
390 public String getOrganizationName() {
391 return applicationConfig.getOption(DaliConfigurationOption.ORGANIZATION_NAME.getKey());
392 }
393
394
395
396
397
398
399 public int getInceptionYear() {
400 return applicationConfig.getOptionAsInt(DaliConfigurationOption.INCEPTION_YEAR.getKey());
401 }
402
403
404
405
406
407
408
409
410
411
412 public String getExtractionFileExtension() {
413 return applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_FILE_EXTENSION.getKey());
414 }
415
416
417
418
419
420
421 public String getExtractionResultFileExtension() {
422 return applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_RESULT_FILE_EXTENSION.getKey());
423 }
424
425
426
427
428
429
430 public String getExtractionFileTypeCode() {
431 return applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_FILE_TYPE_CODE.getKey());
432 }
433
434
435
436
437
438
439 public String getExtractionGroupTypePmfmCode() {
440 return applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_GROUP_TYPE_PMFM_CODE.getKey());
441 }
442
443
444
445
446
447
448 public String getExtractionTableTypeCode() {
449 return applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_TABLE_TYPE_CODE.getKey());
450 }
451
452
453
454
455
456
457 public String getExtractionProjectionSystemCode() {
458 return applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_PROJECTION_SYSTEM_CODE.getKey());
459 }
460
461
462
463
464
465
466 public String getExtractionDefaultOrderItemTypeCode() {
467 return applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_DEFAULT_ORDER_ITEM_TYPE_CODE.getKey());
468 }
469
470
471
472
473
474
475 public List<Integer> getExtractionUnitIdsToIgnore() {
476 List<Integer> ids = Lists.newArrayList();
477 String excludeUnitIds = applicationConfig.getOption(DaliConfigurationOption.EXTRACTION_IGNORE_UNIT_IDS.getKey());
478 for (String id : DaliBeans.split(excludeUnitIds, ",")) {
479 if (StringUtils.isNumeric(id)) {
480 ids.add(Integer.valueOf(id));
481 }
482 }
483 return ids;
484 }
485
486
487
488
489
490
491
492
493
494
495 public File getUIConfigFile() {
496 return applicationConfig.getOptionAsFile(DaliConfigurationOption.UI_CONFIG_FILE.getKey());
497 }
498
499
500
501
502
503
504 public Integer getUIRecommendedWidth() {
505 return applicationConfig.getOptionAsInt(DaliConfigurationOption.UI_RECOMMENDED_WIDTH.getKey());
506 }
507
508
509
510
511
512
513 public Integer getUIRecommendedHeight() {
514 return applicationConfig.getOptionAsInt(DaliConfigurationOption.UI_RECOMMENDED_HEIGHT.getKey());
515 }
516
517
518
519
520
521
522 public boolean isShowTableCheckbox() {
523 return applicationConfig.getOptionAsBoolean(DaliConfigurationOption.TABLES_CHECKBOX.getKey());
524 }
525
526
527
528
529
530
531 public boolean isAutoPopupNumberEditor() {
532 return applicationConfig.getOptionAsBoolean(DaliConfigurationOption.AUTO_POPUP_NUMBER_EDITOR.getKey());
533 }
534
535
536
537
538
539
540 public boolean isShowNumberEditorButton() {
541 return applicationConfig.getOptionAsBoolean(DaliConfigurationOption.SHOW_NUMBER_EDITOR_BUTTON.getKey());
542 }
543
544
545
546
547
548
549 public Color getColorSelectedCell() {
550 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_SELECTED_CELL.getKey());
551 }
552
553
554
555
556
557
558 public Color getColorRowInvalid() {
559 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_ROW_INVALID.getKey());
560 }
561
562
563
564
565
566
567 public Color getColorRowReadOnly() {
568 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_ROW_READ_ONLY.getKey());
569 }
570
571
572
573
574
575
576 public Color getColorCellWithValue() {
577 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_CELL_WITH_VALUE.getKey());
578 }
579
580
581
582
583
584
585 public Color getColorComputedWeights() {
586 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_COMPUTED_WEIGHTS.getKey());
587 }
588
589
590
591
592
593
594 public Color getColorComputedRow() {
595
596 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_COMPUTED_WEIGHTS.getKey());
597 }
598
599
600
601
602
603
604 public Color getColorBlockingLayer() {
605 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_BLOCKING_LAYER.getKey());
606 }
607
608
609
610
611
612
613 public Color getColorAlternateRow() {
614 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_ALTERNATE_ROW.getKey());
615 }
616
617
618
619
620
621
622 public Color getColorSelectedRow() {
623 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_SELECTED_ROW.getKey());
624 }
625
626
627
628
629
630
631 public Color getColorSelectionPanelBackground() {
632 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_SELECTION_PANEL_BACKGROUND.getKey());
633 }
634
635
636
637
638
639
640 public Color getColorContextPanelBackground() {
641 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_CONTEXT_PANEL_BACKGROUND.getKey());
642 }
643
644
645
646
647
648
649 public Color getColorEditionPanelBackground() {
650 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_EDITION_PANEL_BACKGROUND.getKey());
651 }
652
653
654
655
656
657
658 public Color getColorEditionPanelBorder() {
659 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_EDITION_PANEL_BORDER.getKey());
660 }
661
662
663
664
665
666
667 public Color getColorThematicLabel() {
668 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_THEMATIC_LABEL.getKey());
669 }
670
671
672
673
674
675
676 public Color getColorHighlightButtonBorder() {
677 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_HIGHLIGHT_BUTTON_BORDER.getKey());
678 }
679
680 public Color getColorUnusedEditorBackground() {
681 return applicationConfig.getOptionAsColor(DaliConfigurationOption.COLOR_UNUSED_EDITOR_BACKGROUND.getKey());
682 }
683
684
685
686
687
688
689
690 public KeyStroke getShortCut(String actionName) {
691 return applicationConfig.getOptionAsKeyStroke("dali.ui." + actionName);
692 }
693
694
695
696
697
698
699 public String getDateFormat() {
700 return applicationConfig.getOption(DaliConfigurationOption.DATE_FORMAT.getKey());
701 }
702
703
704
705
706
707
708 public String getDateTimeFormat() {
709 return applicationConfig.getOption(DaliConfigurationOption.DATE_TIME_FORMAT.getKey());
710 }
711
712
713
714
715
716
717
718
719
720
721
722 public File getNewTmpDirectory(String name) {
723 return new File(getTempDirectory(), name + "_" + System.nanoTime());
724 }
725
726
727
728
729
730
731 public File getHelpDirectory() {
732 return applicationConfig.getOptionAsFile(
733 DaliConfigurationOption.HELP_DIRECTORY.getKey());
734 }
735
736
737
738
739
740
741 public int getUnknownRecorderDepartmentId() {
742 return applicationConfig.getOptionAsInt(DaliConfigurationOption.UNKNOWN_RECORDER_DEPARTMENT.getKey());
743 }
744
745 public int getMassiveProcessChunkSize() {
746 return applicationConfig.getOptionAsInt(DaliConfigurationOption.DB_VALIDATION_BULK_SIZE.getKey());
747 }
748
749
750
751
752
753
754
755
756 public String getTemporaryStatusCode() {
757 return "TEMPORARY";
758 }
759
760
761
762
763
764
765 public String getEnableStatusCode() {
766 return "ENABLE";
767 }
768
769
770
771
772
773
774 public String getDisableStatusCode() {
775 return "DISABLE";
776 }
777
778
779
780
781
782
783 public String getDeletedStatusCode() {
784 return "DELETED";
785 }
786
787
788
789
790
791
792 public String getDirtySynchronizationStatusCode() {
793 return "DIRTY";
794 }
795
796
797
798
799
800
801 public String getReadySynchronizationStatusCode() {
802 return "READY_TO_SYNCHRONIZE";
803 }
804
805
806
807
808
809
810 public String getSynchronizedSynchronizationStatusCode() {
811 return "SYNCHRONIZED";
812 }
813
814
815
816
817 public int getSurveyCalculatedLengthPmfmId() {
818 return applicationConfig.getOptionAsInt(DaliConfigurationOption.PMFM_ID_SURVEY_CALCULATED_LENGTH.getKey());
819 }
820
821 public List<Integer[]> getCalculatedTrawlAreaPmfmTriplets() {
822
823 List<Integer[]> result = new ArrayList<>();
824 String configOption = applicationConfig.getOption(DaliConfigurationOption.PMFM_IDS_CALCULATED_TRAWL_AREA.getKey());
825 if (StringUtils.isBlank(configOption)) return result;
826
827 List<String> triplets = DaliBeans.split(configOption, ";");
828 for (String triplet : triplets) {
829 List<String> pmfmsIdsStr = DaliBeans.split(triplet, ",");
830 if (CollectionUtils.size(pmfmsIdsStr) == 3) {
831 try {
832 Integer[] pmfmIds = new Integer[3];
833 pmfmIds[0] = Integer.parseInt(pmfmsIdsStr.get(0));
834 pmfmIds[1] = Integer.parseInt(pmfmsIdsStr.get(1));
835 pmfmIds[2] = Integer.parseInt(pmfmsIdsStr.get(2));
836
837 if (pmfmIds[0] < 0 || pmfmIds[1] < 0 || pmfmIds[2] < 0) continue;
838
839 result.add(pmfmIds);
840 } catch (NumberFormatException e) {
841 LOG.warn(String.format("Problem parsing '%s' option value : %s", DaliConfigurationOption.PMFM_IDS_CALCULATED_TRAWL_AREA.getKey(), triplet));
842 }
843 } else {
844 LOG.warn(String.format("Malformed '%s' option value : %s", DaliConfigurationOption.PMFM_IDS_CALCULATED_TRAWL_AREA.getKey(), triplet));
845 }
846 }
847
848 return result;
849 }
850
851 public Map<Integer, Integer> getCompatibleLengthUnitIdByAreaUnitId() {
852
853 Map<Integer, Integer> result = new HashMap<>();
854 String configOption = applicationConfig.getOption(DaliConfigurationOption.UNIT_IDS_COMPATIBLE_LENGTH_BY_AREA.getKey());
855 if (StringUtils.isBlank(configOption)) return result;
856
857 List<String> unitsList = DaliBeans.split(configOption, ";");
858 for (String units : unitsList) {
859 List<String> unitIdsStr = DaliBeans.split(units, ",");
860 if (CollectionUtils.size(unitIdsStr) == 2) {
861 try {
862 result.put(Integer.parseInt(unitIdsStr.get(0)), Integer.parseInt(unitIdsStr.get(1)));
863 } catch (NumberFormatException e) {
864 LOG.warn(String.format("Problem parsing '%s' option value : %s", DaliConfigurationOption.UNIT_IDS_COMPATIBLE_LENGTH_BY_AREA.getKey(), units));
865 }
866 } else {
867 LOG.warn(String.format("Malformed '%s' option value : %s", DaliConfigurationOption.UNIT_IDS_COMPATIBLE_LENGTH_BY_AREA.getKey(), units));
868 }
869 }
870
871 return result;
872 }
873
874
875
876
877
878
879 public int getNoUnitId() {
880 return applicationConfig.getOptionAsInt(DaliConfigurationOption.UNIT_ID_NO_UNIT.getKey());
881 }
882
883 public String getFallbackLocale() {
884 return QuadrigeCoreConfigurationOption.I18N_LOCALE.getDefaultValue();
885 }
886
887
888
889
890
891
892
893
894 public String getTranscribingItemTypeLbForPmfmNm() {
895 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_PMFM_NM.getKey());
896 }
897
898 public String getTranscribingItemTypeLbForPmfmExtraction() {
899 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_PMFM_EXTRACTION.getKey());
900 }
901
902 public String getTranscribingItemTypeLbForQualitativeValueNm() {
903 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_QUALITATIVE_VALUE_NM.getKey());
904 }
905
906 public String getTranscribingItemTypeLbForQualitativeValueExtraction() {
907 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_QUALITATIVE_VALUE_EXTRACTION.getKey());
908 }
909
910 public String getTranscribingItemTypeLbForSamplingEquipmentNm() {
911 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_SAMPLING_EQUIPMENT_NM.getKey());
912 }
913
914 public String getTranscribingItemTypeLbForSamplingEquipmentExtraction() {
915 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_SAMPLING_EQUIPMENT_EXTRACTION.getKey());
916 }
917
918 public String getTranscribingItemTypeLbForParameterNm() {
919 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_PARAMETER_NM.getKey());
920 }
921
922 public String getTranscribingItemTypeLbForParameterCd() {
923 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_PARAMETER_CD.getKey());
924 }
925
926 public String getTranscribingItemTypeLbForMatrixNm() {
927 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_MATRIX_NM.getKey());
928 }
929
930 public String getTranscribingItemTypeLbForFractionNm() {
931 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_FRACTION_NM.getKey());
932 }
933
934 public String getTranscribingItemTypeLbForMethodNm() {
935 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_METHOD_NM.getKey());
936 }
937
938 public String getTranscribingItemTypeLbForUnitNm() {
939 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_UNIT_NM.getKey());
940 }
941
942 public String getTranscribingItemTypeLbForUnitSymbol() {
943 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_UNIT_SYMBOL.getKey());
944 }
945
946 public String getTranscribingItemTypeLbForMonLocNm() {
947 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_MON_LOC_NM.getKey());
948 }
949
950 public String getTranscribingItemTypeLbForQualFlagNm() {
951 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_QUAL_FLAG_NM.getKey());
952 }
953
954 public String getTranscribingItemTypeLbForTaxLevelNm() {
955 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_TAX_LEVEL_NM.getKey());
956 }
957
958 public String getTranscribingItemTypeLbForStatusNm() {
959 return getTranscribingItemTypeLbOptionByCurrentLocale(DaliConfigurationOption.TRANSCRIBING_ITEM_TYPE_LB_STATUS_NM.getKey());
960 }
961
962 private String getTranscribingItemTypeLbOptionByCurrentLocale(String optionKey) {
963 Map<String, String> optionsByLocale = DaliBeans.splitAndMap(applicationConfig.getOption(optionKey), ";", ":");
964 return optionsByLocale.get(getI18nLocale().toString());
965 }
966
967
968
969
970
971
972 public String getAlternativeTaxonOriginTaxRef() {
973 return applicationConfig.getOption(DaliConfigurationOption.ALTERNATIVE_TAXON_ORIGIN_TAXREF.getKey());
974 }
975
976
977
978
979
980
981 public String getAlternativeTaxonOriginWorms() {
982 return applicationConfig.getOption(DaliConfigurationOption.ALTERNATIVE_TAXON_ORIGIN_WORMS.getKey());
983 }
984
985 public URL getSismerURL() {
986 return applicationConfig.getOptionAsURL(DaliConfigurationOption.SISMER_WEBSITE_URL.getKey());
987 }
988
989 public int getControlSurveyLocationMinDistanceInMeter() {
990 return applicationConfig.getOptionAsInt(DaliConfigurationOption.CONTROL_SURVEY_LOCATION_MINIMUM_DISTANCE_IN_METER.getKey());
991 }
992
993 public MapMode getPreferredMapMode() {
994 return Enums.fromCode(MapMode.class, applicationConfig.getOption(DaliConfigurationOption.MAP_BASE_LAYER_DEFAULT.getKey()));
995 }
996
997 public MapProjection getMapProjection() {
998 return Enums.fromCode(MapProjection.class, applicationConfig.getOption(DaliConfigurationOption.MAP_PROJECTION_CODE.getKey()));
999 }
1000
1001 public String getMapSextantWMSUrl() {
1002 return applicationConfig.getOption(DaliConfigurationOption.MAP_SEXTANT_WMS_URL.getKey());
1003 }
1004
1005 public String getMapSextantWMTSUrl() {
1006 return applicationConfig.getOption(DaliConfigurationOption.MAP_SEXTANT_WMTS_URL.getKey());
1007 }
1008
1009 public String getMapOSMUrl() {
1010 return applicationConfig.getOption(DaliConfigurationOption.MAP_OSM_URL.getKey());
1011 }
1012
1013 public String getMapOTMUrl() {
1014 return applicationConfig.getOption(DaliConfigurationOption.MAP_OTM_URL.getKey());
1015 }
1016
1017 public String getMapCartoBaseUrl() {
1018 return applicationConfig.getOption(DaliConfigurationOption.MAP_CARTO_BASE_URL.getKey());
1019 }
1020
1021 public String getMapSatelliteUrl() {
1022 return applicationConfig.getOption(DaliConfigurationOption.MAP_SATELLITE_URL.getKey());
1023 }
1024
1025 public int getMaxSurveyInMap() {
1026 return applicationConfig.getOptionAsInt(DaliConfigurationOption.MAP_MAX_SELECTION.getKey());
1027 }
1028
1029 public boolean isSamplingOperationAutoLabelEnable() {
1030 return applicationConfig.getOptionAsBoolean(DaliConfigurationOption.SAMPLING_OPERATION_AUTO_LABEL_ENABLE.getKey());
1031 }
1032
1033 public int getGridInitializationMaxCombinationCount() {
1034 return applicationConfig.getOptionAsInt(DaliConfigurationOption.GRID_INITIALIZATION_MAX_COMBINATION_COUNT.getKey());
1035 }
1036 }