2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.preference
;
13 import java
.io
.FileInputStream
;
14 import java
.io
.FileOutputStream
;
15 import java
.io
.IOException
;
17 import java
.net
.URISyntaxException
;
18 import java
.util
.ArrayList
;
19 import java
.util
.Arrays
;
20 import java
.util
.Collections
;
21 import java
.util
.HashMap
;
22 import java
.util
.List
;
24 import java
.util
.Properties
;
26 import java
.util
.StringTokenizer
;
27 import java
.util
.UUID
;
29 import org
.apache
.commons
.lang
.StringUtils
;
30 import org
.apache
.log4j
.Logger
;
31 import org
.eclipse
.equinox
.internal
.p2
.ui
.model
.MetadataRepositoryElement
;
32 import org
.eclipse
.jface
.preference
.IPreferenceStore
;
33 import org
.eclipse
.jface
.window
.Window
;
34 import org
.eclipse
.swt
.widgets
.Composite
;
35 import org
.eclipse
.swt
.widgets
.Control
;
36 import org
.eclipse
.swt
.widgets
.Shell
;
37 import org
.eclipse
.ui
.PlatformUI
;
39 import eu
.etaxonomy
.cdm
.api
.application
.ICdmRepository
;
40 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacadeConfigurator
;
41 import eu
.etaxonomy
.cdm
.api
.service
.IFeatureTreeService
;
42 import eu
.etaxonomy
.cdm
.api
.service
.ITermService
;
43 import eu
.etaxonomy
.cdm
.api
.service
.config
.FindTaxaAndNamesConfiguratorImpl
;
44 import eu
.etaxonomy
.cdm
.api
.service
.config
.IFindTaxaAndNamesConfigurator
;
45 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
46 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
47 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.Abcd206ImportConfigurator
;
48 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
49 import eu
.etaxonomy
.cdm
.model
.common
.ICdmBase
;
50 import eu
.etaxonomy
.cdm
.model
.common
.IDefinedTerm
;
51 import eu
.etaxonomy
.cdm
.model
.common
.ISimpleTerm
;
52 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
53 import eu
.etaxonomy
.cdm
.model
.common
.MarkerType
;
54 import eu
.etaxonomy
.cdm
.model
.common
.TermBase
;
55 import eu
.etaxonomy
.cdm
.model
.common
.TermType
;
56 import eu
.etaxonomy
.cdm
.model
.description
.FeatureTree
;
57 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
58 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
.PrefKey
;
59 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
60 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferenceSubject
;
61 import eu
.etaxonomy
.cdm
.model
.name
.NomenclaturalCode
;
62 import eu
.etaxonomy
.cdm
.strategy
.match
.DefaultMatchStrategy
;
63 import eu
.etaxonomy
.cdm
.strategy
.match
.IMatchStrategy
;
64 import eu
.etaxonomy
.cdm
.strategy
.match
.MatchException
;
65 import eu
.etaxonomy
.cdm
.strategy
.match
.MatchMode
;
66 import eu
.etaxonomy
.taxeditor
.model
.AbstractUtility
;
67 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
68 import eu
.etaxonomy
.taxeditor
.model
.NomenclaturalCodeHelper
;
69 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
70 import eu
.etaxonomy
.taxeditor
.store
.TermStore
;
71 import eu
.etaxonomy
.taxeditor
.store
.internal
.TaxeditorStorePlugin
;
72 import eu
.etaxonomy
.taxeditor
.ui
.dialog
.DefaultLanguageDialog
;
76 * PreferencesUtil class.
84 public class PreferencesUtil
implements IPreferenceKeys
{
89 public static final String PREFERRED_TERMS_CHANGE
= "preferred_terms";
91 public static final String P2_REPOSITORIES_DELIM
= ",";
92 public static final String P2_REPOSITORY_FIELDS_DELIM
= ";";
94 private final static Logger logger
= Logger
.getLogger(PreferencesUtil
.class);
103 * @return a {@link org.eclipse.jface.preference.IPreferenceStore} object.
105 public static IPreferenceStore
getPreferenceStore() {
106 return TaxeditorStorePlugin
.getDefault().getPreferenceStore();
111 * setPreferredNomenclaturalCode
114 * @param preferredCode
115 * a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode}
118 public static CdmPreference
setPreferredNomenclaturalCode(
119 String preferenceKey
, boolean local
) {
121 getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY
,
125 ICdmRepository controller
;
126 controller
= CdmStore
.getCurrentApplicationConfiguration();
127 if (controller
== null){
132 key
= CdmPreference
.NewKey(PreferenceSubject
.NewDatabaseInstance(), PreferencePredicate
.NomenclaturalCode
);
133 }catch (Exception e
){
134 System
.out
.println(e
.getStackTrace());
136 CdmPreference preference
= null;
138 if (preferenceKey
== null){
139 preference
= controller
.getPreferenceService().find(key
);
140 if (preference
== null){
143 // int index = StringUtils.lastIndexOf(preference.getValue(), ".");
144 // UUID uuid = UUID.fromString(preference.getValue().substring(index +1, preference.getValue().length()));
145 // preferredCode = NomenclaturalCode.getByUuid(uuid);
147 getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY
,
149 getPreferenceStore().setValue(ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY
,preference
.isAllowOverride());
153 preference
= CdmPreference
.NewInstance(PreferenceSubject
.NewDatabaseInstance(), PreferencePredicate
.NomenclaturalCode
, preferenceKey
);
154 controller
.getPreferenceService().set(preference
);
164 public static NomenclaturalCode
getPreferredNomenclaturalCode(){
165 if (getPreferenceStore().getBoolean(OVERRIDE_NOMENCLATURAL_CODE_KEY
)) {
166 return getPreferredNomenclaturalCode(true);
168 return getPreferredNomenclaturalCode(false);
174 * getPreferredNomenclaturalCode
177 * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
179 public static NomenclaturalCode
getPreferredNomenclaturalCode(boolean useLocal
) {
181 CdmPreference pref
= null;
183 pref
= getPreferenceFromDB(PreferencePredicate
.NomenclaturalCode
);
186 String preferredCode
;
188 preferredCode
= getPreferenceStore().getString(
189 PREFERRED_NOMENCLATURAL_CODE_KEY
);
192 preferredCode
= pref
.getValue();
195 return getPreferredNomenclaturalCode(preferredCode
);
201 * getPreferredNomenclaturalCode
204 * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
206 public static NomenclaturalCode
getPreferredNomenclaturalCode(String preferenceKeyNomenclaturalCode
) {
208 for (NomenclaturalCode code
: NomenclaturalCodeHelper
.getAllCodes()) {
209 if (getPreferenceKey(code
).equals(preferenceKeyNomenclaturalCode
)) {
216 public static boolean isShowTaxonAssociations(){
217 if (getPreferenceStore().getBoolean(SHOW_TAXON_ASSOCIATIONS_OVERRIDE
) && getPreferenceStore().getBoolean(SHOW_TAXON_ASSOCIATIONS_ALLOW_OVERRIDE
)) {
218 return getPreferenceStore().getBoolean(SHOW_TAXON_ASSOCIATIONS
);
220 CdmPreference pref
= getPreferenceFromDB(PreferencePredicate
.ShowTaxonAssociations
);
222 return pref
!=null?Boolean
.valueOf(pref
.getValue()):false;
226 public static boolean isShowLifeForm(){
227 if (getPreferenceStore().getBoolean(SHOW_LIFE_FORM_OVERRIDE
) && getPreferenceStore().getBoolean(SHOW_LIFE_FORM_ALLOW_OVERRIDE
)) {
228 return getPreferenceStore().getBoolean(SHOW_LIFE_FORM
);
230 CdmPreference pref
= getPreferenceFromDB(PreferencePredicate
.ShowLifeForm
);
232 return pref
!=null?Boolean
.valueOf(pref
.getValue()):false;
236 public static boolean isDeterminationOnlyForFieldUnits(){
237 if (getPreferenceStore().getBoolean(DETERMINATION_ONLY_FOR_FIELD_UNITS_OVERRIDE
) && getPreferenceStore().getBoolean(DETERMINATIONS_ONLY_FOR_FIELDUNITS_ALLOW_OVERRIDE
)) {
238 return getPreferenceStore().getBoolean(DETERMINATION_ONLY_FOR_FIELD_UNITS
);
240 CdmPreference pref
= getPreferenceFromDB(PreferencePredicate
.DeterminationOnlyForFieldUnits
);
242 return pref
!=null?Boolean
.valueOf(pref
.getValue()):false;
246 public static boolean isCollectingAreaInGeneralSection(){
247 if (getPreferenceStore().getBoolean(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION_OVERRIDE
) && getPreferenceStore().getBoolean(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION_ALLOW_OVERRIDE
)) {
248 return getPreferenceStore().getBoolean(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION
);
250 CdmPreference pref
= getPreferenceFromDB(PreferencePredicate
.ShowCollectingAreasInGeneralSection
);
252 return pref
!=null?Boolean
.valueOf(pref
.getValue()):false;
256 public static boolean isShowSimpleDetailsView(){
257 if (getPreferenceStore().getBoolean(OVERRIDE_NAME_DETAILS
) && getPreferenceStore().getBoolean(ALLOW_OVERRIDE_NAME_DETAILS
)) {
258 return getPreferenceStore().getBoolean(SHOW_SIMPLE_NAME_DETAILS_SECTION
);
260 CdmPreference pref
= getPreferenceFromDB(PreferencePredicate
.NameDetailsView
);
262 return pref
!=null?Boolean
.valueOf(pref
.getValue()):false;
268 public static CdmPreference
getPreferenceFromDB(PreferencePredicate predicate
){
269 ICdmRepository controller
;
270 CdmPreference pref
= null;
273 if(CdmStore
.isActive()){
274 controller
= CdmStore
.getCurrentApplicationConfiguration();
275 PrefKey key
= CdmPreference
.NewKey(PreferenceSubject
.NewDatabaseInstance(), predicate
);
276 pref
= controller
.getPreferenceService().find(key
);
286 public static void setPreferenceToDB(CdmPreference preference
){
287 ICdmRepository controller
;
289 if(CdmStore
.isActive()){
290 controller
= CdmStore
.getCurrentApplicationConfiguration();
291 controller
.getPreferenceService().set(preference
);
301 public static String
getPreferredDefaultLangugae(){
302 String preferredLanguage
= getPreferenceStore().getString(DEFAULT_LANGUAGE_EDITOR
);
303 if(StringUtils
.isNotEmpty(preferredLanguage
) && StringUtils
.isNotBlank(preferredLanguage
)){
304 return preferredLanguage
;
309 public static boolean isShowMediaPreview(){
310 boolean isShowMediaPreview
= getPreferenceStore().getBoolean(SHOW_MEDIA_PREVIEW
);
311 return isShowMediaPreview
;
315 * Get the match strategy for the given class that was stored in preferences
316 * or the default strategy if it was not stored in preferences
319 * a {@link java.lang.Class} object.
320 * @return a {@link eu.etaxonomy.cdm.strategy.match.IMatchStrategy} object.
322 public static IMatchStrategy
getMatchStrategy(Class clazz
) {
323 String className
= clazz
.getName();
324 if (getPreferenceStore().getBoolean(MATCH_STRATEGY_PREFIX
+ className
)) {
325 IMatchStrategy matchStrategy
= getDefaultMatchStrategy(clazz
);
327 for (String fieldName
: matchStrategy
.getMatchFieldPropertyNames()) {
328 String matchModeName
= getPreferenceStore().getString(
329 getMatchStrategyFieldName(className
, fieldName
));
330 MatchMode matchMode
= MatchMode
.valueOf(matchModeName
);
332 matchStrategy
.setMatchMode(fieldName
, matchMode
);
333 } catch (MatchException e
) {
334 MessagingUtils
.error(PreferencesUtil
.class, e
);
335 throw new RuntimeException(e
);
339 return matchStrategy
;
341 return getDefaultMatchStrategy(clazz
);
345 * Stores a matchStrategy into the preference store.
347 * @param matchStrategy
348 * a {@link eu.etaxonomy.cdm.strategy.match.IMatchStrategy}
351 public static void setMatchStrategy(IMatchStrategy matchStrategy
) {
352 String className
= matchStrategy
.getMatchClass().getName();
353 getPreferenceStore().setValue(MATCH_STRATEGY_PREFIX
+ className
, true);
355 Set
<String
> matchFields
= matchStrategy
.getMatchFieldPropertyNames();
357 for (String fieldName
: matchFields
) {
358 getPreferenceStore().setValue(
359 getMatchStrategyFieldName(className
, fieldName
),
360 matchStrategy
.getMatchMode(fieldName
).name());
365 * Helper method to create the preference property for a match field.
371 private static String
getMatchStrategyFieldName(String className
,
373 return MATCH_STRATEGY_PREFIX
+ className
+ "." + fieldName
;
377 * Returns the default match strategy for a given class.
380 * a {@link java.lang.Class} object.
381 * @return a {@link eu.etaxonomy.cdm.strategy.match.IMatchStrategy} object.
383 public static IMatchStrategy
getDefaultMatchStrategy(Class clazz
) {
384 return DefaultMatchStrategy
.NewInstance(clazz
);
389 * getDateFormatPattern
392 * @return a {@link java.lang.String} object.
394 public static String
getDateFormatPattern() {
395 // TODO make this configurable in properties
396 String pattern
= "Y-M-d H:m";
402 * addTermToPreferredTerms
410 public static <T
extends TermBase
> void addTermToPreferredTerms(T term
) {
412 // VocabularyEnum vocabulary =
413 // VocabularyEnum.getVocabularyEnum(term.getClass());
415 // getPreferenceStore().setValue(getPreferenceKey(term),
416 // VocabularyStore.getTermVocabulary(vocabulary).getTerms().contains(term));
418 // firePreferencesChanged(term.getClass());
422 * Construct a unique key using the CdmBase object's uuid
427 private static String
getPreferenceKey(ICdmBase cdmBase
) {
428 cdmBase
= HibernateProxyHelper
.deproxy(cdmBase
);
430 String key
= cdmBase
.getClass().getName().concat(".")
431 .concat(cdmBase
.getUuid().toString());
432 if (key
.contains("javassist")) {
433 MessagingUtils
.info("proxy");
439 * Construct a unique key using the CdmBase object's uuid
444 public static String
getPreferenceKey(ISimpleTerm simpleTerm
) {
445 simpleTerm
= HibernateProxyHelper
.deproxy(simpleTerm
);
446 String key
= simpleTerm
.getClass().getName().concat(".")
447 .concat(simpleTerm
.getUuid().toString());
448 if (key
.contains("javassist")) {
449 MessagingUtils
.warn(PreferencesUtil
.class,
450 "Trying to persist a preference based on a proxy class.");
458 * Construct a unique key using the CdmBase object's uuid
463 public static String
getPreferenceKey(IDefinedTerm definedTerm
) {
464 definedTerm
= HibernateProxyHelper
.deproxy(definedTerm
);
465 String key
= definedTerm
.getClass().getName().concat(".")
466 .concat(definedTerm
.getUuid().toString());
467 if (key
.contains("javassist")) {
468 MessagingUtils
.warn(PreferencesUtil
.class,
469 "Trying to persist a preference based on a proxy class.");
475 * Retrieves search preferences from the preference store
477 * @return an {@link ITaxonServiceConfigurator} to pass to search methods
479 public static IFindTaxaAndNamesConfigurator
getSearchConfigurator() {
480 IFindTaxaAndNamesConfigurator configurator
= initializeSearchConfigurator();
482 configurator
.setDoTaxa(getPreferenceStore().getBoolean(
483 TAXON_SERVICE_CONFIGURATOR_TAXA
));
484 configurator
.setDoSynonyms(getPreferenceStore().getBoolean(
485 TAXON_SERVICE_CONFIGURATOR_SYNONYMS
));
486 configurator
.setDoNamesWithoutTaxa(getPreferenceStore().getBoolean(
487 TAXON_SERVICE_CONFIGURATOR_NAMES
));
488 configurator
.setDoTaxaByCommonNames(getPreferenceStore().getBoolean(
489 TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES
));
490 //configurator.setMatchMode(eu.etaxonomy.cdm.persistence.query.MatchMode.valueOf(getPreferenceStore().getString(TAXON_SERVICE_CONFIGURATOR_MATCH_MODE)));
496 * create new preferences, setting all search options to true
499 * {@link eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator}
502 public static IFindTaxaAndNamesConfigurator
initializeSearchConfigurator() {
503 IFindTaxaAndNamesConfigurator configurator
= FindTaxaAndNamesConfiguratorImpl
.NewInstance();
505 configurator
.setDoTaxa(true);
506 configurator
.setDoSynonyms(true);
507 configurator
.setDoNamesWithoutTaxa(true);
508 configurator
.setDoTaxaByCommonNames(true);
510 configurator
.setTaxonPropertyPath(Arrays
.asList("$", "titleCache",
511 "name", "name.$", "relationsFromThisTaxon.$"));
513 configurator
.setSynonymPropertyPath(Arrays
.asList("$", "titleCache",
514 "name", "name.$", "synonyms.relatedTo.*"));
517 // match mode is a simple like, actually all other match modes are kind
520 .setMatchMode(eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
.ANYWHERE
);
521 // we set page number and size here as this should always be unlimited
522 configurator
.setPageNumber(0);
523 // TODO currently limit results to 10000
524 configurator
.setPageSize(10000);
530 * Store search preferences
532 * @param configurator
534 * {@link eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator}
537 public static void setSearchConfigurator(
538 IFindTaxaAndNamesConfigurator configurator
) {
539 getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_TAXA
,
540 configurator
.isDoTaxa());
541 getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_SYNONYMS
,
542 configurator
.isDoSynonyms());
543 getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_NAMES
,
544 configurator
.isDoNamesWithoutTaxa());
545 getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES
,
546 configurator
.isDoTaxaByCommonNames());
551 * firePreferencesChanged
555 * a {@link java.lang.Class} object.
557 public static void firePreferencesChanged(Class clazz
) {
558 getPreferenceStore().firePropertyChangeEvent(PREFERRED_TERMS_CHANGE
,
563 * Set default values for preferences
565 public static void setDefaults() {
566 getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_TAXA
, true);
567 getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_SYNONYMS
,
569 getPreferenceStore().setDefault(EDIT_MAP_SERVICE_ACCES_POINT
,
570 "http://edit.africamuseum.be/edit_wp5/v1.2/rest_gen.php");
571 //FIXME : changed default for SHOULD_CONNECT_AT_STARTUP to false (ticket 3828) until resolution
572 getPreferenceStore().setDefault(SHOULD_CONNECT_AT_STARTUP
, false);
573 getPreferenceStore().setDefault(OPENURL_ACCESS_POINT
,
574 "http://www.biodiversitylibrary.org/openurl");
575 getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_WIDTH
, "1000");
576 getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_HEIGHT
, "1000");
577 //Distribution Editor:
578 getPreferenceStore().setDefault(DISTRIBUTION_AREA_PREFRENCES_ACTIVE
, false);
579 getPreferenceStore().setDefault(CHECKLIST_AREA_DISPLAY
, CHECKLIST_AREA_DISPLAY_TITLE
);
580 getPreferenceStore().setDefault(CHECKLIST_SYMBOL
, false);
584 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS
, true);
585 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_AUTHORSHIP_CACHE
, true);
586 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_AUTHORSHIP
, true);
587 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_HYBRID
, true);
588 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_LSID
, true);
589 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP
, true);
590 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NAMECACHE
, true);
591 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE
, true);
592 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE
, true);
593 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS
, true);
594 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_PROTOLOGUE
, true);
595 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_RANK
, true);
596 getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION
, true);
597 //Navigator preferences
598 getPreferenceStore().setDefault(SORT_NODES_NATURALLY
, false);
599 getPreferenceStore().setDefault(SORT_NODES_ALPHABETICALLY
, false);
600 getPreferenceStore().setDefault(SORT_TAXA_BY_RANK_AND_NAME
, true);
601 //override db preferences
602 getPreferenceStore().setDefault(ABCD_IMPORT_OVERRIDE
, false);
603 getPreferenceStore().setDefault(SHOW_SPECIMEN_OVERRIDE
, false);
604 getPreferenceStore().setDefault(OVERRIDE_NAME_DETAILS
, false);
605 getPreferenceStore().setDefault(DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE
, false);
607 getPreferenceStore().setDefault(FILTER_COMMON_NAME_REFERENCES
, false);
608 getPreferenceStore().setDefault(SHOW_SPECIMEN
, true);
609 getPreferenceStore().setDefault(SHOW_TAXONNODE_WIZARD
, false);
615 * checkNomenclaturalCode
618 public static void checkNomenclaturalCode() {
619 // First time Editor is opened, no nomenclatural code has been set
620 if (PreferencesUtil
.getPreferredNomenclaturalCode(true) == null) {
621 PreferencesUtil
.setPreferredNomenclaturalCode(getPreferenceKey(NomenclaturalCode
.ICNAFP
), true);
627 public static void setNomenclaturalCodePreferences(){
628 ICdmRepository controller
;
629 controller
= CdmStore
.getCurrentApplicationConfiguration();
630 PrefKey key
= CdmPreference
.NewKey(PreferenceSubject
.NewDatabaseInstance(), PreferencePredicate
.NomenclaturalCode
);
631 CdmPreference preference
= null;
632 if (controller
== null){
635 preference
= controller
.getPreferenceService().find(key
);
636 if (preference
== null){
639 getPreferenceStore().setValue(ALLOW_OVERRIDE_NOMENCLATURAL_CODE_KEY
, preference
.isAllowOverride());
641 int index
= StringUtils
.lastIndexOf(preference
.getValue(), ".");
642 UUID uuid
= UUID
.fromString(preference
.getValue().substring(index
+1, preference
.getValue().length()));
643 NomenclaturalCode preferredCode
= NomenclaturalCode
.getByUuid(uuid
);
645 getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY
,
646 getPreferenceKey(preferredCode
));
650 public static void checkDefaultLanguage(){
651 if(PreferencesUtil
.getPreferredDefaultLangugae() == null){
652 Shell shell
= AbstractUtility
.getShell();
653 int open
= new DefaultLanguageDialog(shell
).open();
654 if(open
== Window
.OK
){
655 PlatformUI
.getWorkbench().restart();
658 //TODO:In case of a reinstall, the config.ini will be overwritten
659 // here you create config.ini with the stored key from preferences
665 * getMapServiceAccessPoint
668 * @return a {@link java.lang.String} object.
670 public static String
getMapServiceAccessPoint() {
671 return getPreferenceStore().getString(EDIT_MAP_SERVICE_ACCES_POINT
);
676 * shouldConnectAtStartUp
681 public static boolean shouldConnectAtStartUp() {
682 //FIXME : force SHOULD_CONNECT_AT_STARTUP to false (ticket 3828) until resolution
683 //return getPreferenceStore().getBoolean(SHOULD_CONNECT_AT_STARTUP);
689 * getDefaultFeatureTreeForTextualDescription
692 * @return a {@link eu.etaxonomy.cdm.model.description.FeatureTree} object.
694 public static FeatureTree
getDefaultFeatureTreeForTextualDescription() {
695 String uuidString
= getPreferenceStore().getString(
696 FEATURE_TREE_DEFAULT_TEXT
);
697 return CdmUtils
.isEmpty(uuidString
) ?
null : CdmStore
.getService(
698 IFeatureTreeService
.class).load(UUID
.fromString(uuidString
));
703 * getDefaultFeatureTreeForStructuredDescription
706 * @return a {@link eu.etaxonomy.cdm.model.description.FeatureTree} object.
708 public static FeatureTree
getDefaultFeatureTreeForStructuredDescription() {
709 String uuidString
= getPreferenceStore().getString(
710 FEATURE_TREE_DEFAULT_STRUCTURE
);
711 return CdmUtils
.isEmpty(uuidString
) ?
null : CdmStore
.getService(
712 IFeatureTreeService
.class).load(UUID
.fromString(uuidString
));
717 * setSortRanksHierarchichally
723 public static void setSortRanksHierarchichally(boolean selection
) {
724 getPreferenceStore().setValue(SORT_RANKS_HIERARCHICHALLY
, selection
);
729 * getSortRanksHierarchichally
734 public static boolean getSortRanksHierarchichally() {
735 return getPreferenceStore().getBoolean(SORT_RANKS_HIERARCHICHALLY
);
738 public static boolean isMultilanguageTextEditingCapability() {
739 return getPreferenceStore().getBoolean(
740 MULTILANGUAGE_TEXT_EDITING_CAPABILITY
);
743 public static Language
getGlobalLanguage() {
746 String languageUuidString
= getPreferenceStore().getString(
747 GLOBAL_LANGUAGE_UUID
);
749 if(!CdmStore
.isActive()) {
750 MessagingUtils
.noDataSourceWarningDialog(languageUuidString
);
754 if (CdmUtils
.isBlank(languageUuidString
)) {
755 return Language
.getDefaultLanguage();
758 UUID languageUuid
= UUID
.fromString(languageUuidString
);
759 return (Language
) CdmStore
.getService(ITermService
.class).load(
763 public static void setGlobalLanguage(Language language
) {
764 if(language
!= null) {
765 getPreferenceStore().setValue(GLOBAL_LANGUAGE_UUID
,language
.getUuid().toString());
766 CdmStore
.setDefaultLanguage(language
);
774 public static Map
<MarkerType
, Boolean
> getEditMarkerTypePreferences() {
775 List
<MarkerType
> markerTypes
= CdmStore
.getTermManager()
776 .getPreferredTerms(MarkerType
.class);
778 Map
<MarkerType
, Boolean
> result
= new HashMap
<MarkerType
, Boolean
>();
780 for (MarkerType markerType
: markerTypes
) {
781 String name
= getMarkerTypeEditingPreferenceKey(markerType
);
782 Boolean value
= getPreferenceStore().getBoolean(name
);
784 result
.put(markerType
, value
);
791 * @param markerTypeEditingMap
793 public static void setEditMarkerTypePreferences(
794 Map
<MarkerType
, Boolean
> markerTypeEditingMap
) {
795 for (MarkerType markerType
: markerTypeEditingMap
.keySet()) {
796 String name
= getMarkerTypeEditingPreferenceKey(markerType
);
797 getPreferenceStore().setValue(name
,
798 markerTypeEditingMap
.get(markerType
));
803 private static String
getMarkerTypeEditingPreferenceKey(
804 MarkerType markerType
) {
805 markerType
= HibernateProxyHelper
.deproxy(markerType
);
806 return markerType
.getClass().getName() + EDIT_MARKER_TYPE_PREFIX
;
811 * setEditMarkerTypePreference
815 * a {@link org.eclipse.ui.IEditorInput} object.
817 * a {@link eu.etaxonomy.cdm.model.common.MarkerType} object.
821 public static void setEditMarkerTypePreference(MarkerType markerType
,
823 getPreferenceStore().setValue(
824 getMarkerTypeEditingPreferenceKey(markerType
), edit
);
830 public static DerivedUnitFacadeConfigurator
getDerivedUnitConfigurator() {
831 DerivedUnitFacadeConfigurator configurator
= DerivedUnitFacadeConfigurator
833 configurator
.setMoveDerivedUnitMediaToGallery(true);
834 configurator
.setMoveFieldObjectMediaToGallery(true);
839 * This method will write language properties to the config.ini located in the configuration folder
840 * of the Taxonomic Ediitor. <b>This method is only used to set the default language for Taxonomic Editor.</b>
842 * @param setLanguage 0 is for german and 1 for english.
843 * @throws IOException
845 public void writePropertyToConfigFile(int setLanguage
) throws IOException
{
846 File file
= org
.eclipse
.core
.runtime
.preferences
.ConfigurationScope
.INSTANCE
.getLocation().toFile();
847 //give warning to user if the directory has no write access
849 throw new IOException();
851 Properties properties
= load(file
.getAbsolutePath()+"/config.ini");
854 properties
.setProperty("osgi.nl", "de");
855 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.DEFAULT_LANGUAGE_EDITOR
, "de");
858 properties
.setProperty("osgi.nl", "en");
859 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.DEFAULT_LANGUAGE_EDITOR
, "en");
864 save(file
+"/config.ini", properties
);
868 * This method loads a property from a given file and returns it.
872 * @throws IOException
874 private Properties
load(String filename
) throws IOException
{
875 FileInputStream in
= new FileInputStream(filename
);
876 Properties prop
= new Properties();
883 * This method saves a property to the specified file.
887 * @throws IOException
889 private void save(String filename
, Properties properties
) throws IOException
{
890 FileOutputStream fos
= new FileOutputStream(filename
);
891 properties
.store(fos
, "");
896 * Saves a list of P2 Metadata Repositories as string with specified delimiters
900 public static void setP2Repositories(List
<MetadataRepositoryElement
> p2Repos
) {
901 StringBuilder sb
= new StringBuilder();
902 for(MetadataRepositoryElement p2Repo
: p2Repos
) {
903 sb
.append(P2_REPOSITORIES_DELIM
);
904 if(p2Repo
.getName() == null || p2Repo
.getName().isEmpty()) {
907 sb
.append(p2Repo
.getName());
909 sb
.append(P2_REPOSITORY_FIELDS_DELIM
);
910 sb
.append(p2Repo
.getLocation().toString());
911 sb
.append(P2_REPOSITORY_FIELDS_DELIM
);
912 sb
.append(String
.valueOf(p2Repo
.isEnabled()));
914 getPreferenceStore().setValue(P2_REPOSITORY_LIST
, sb
.toString());
919 * Retrieves a list of previously saved P2 repositories
923 public static List
<MetadataRepositoryElement
> getP2Repositories() {
924 List
<MetadataRepositoryElement
> p2Repos
= new ArrayList
<MetadataRepositoryElement
>();
925 String p2ReposPref
= getPreferenceStore().getString(P2_REPOSITORY_LIST
);
926 if(p2ReposPref
!= null && !p2ReposPref
.isEmpty()) {
927 StringTokenizer p2ReposPrefST
= new StringTokenizer(p2ReposPref
,P2_REPOSITORIES_DELIM
);
929 while(p2ReposPrefST
.hasMoreTokens()) {
930 String p2RepoStr
= p2ReposPrefST
.nextToken();
931 StringTokenizer p2ReposStrST
= new StringTokenizer(p2RepoStr
,P2_REPOSITORY_FIELDS_DELIM
);
932 if(p2ReposStrST
.countTokens()==3) {
933 String nickname
= p2ReposStrST
.nextToken();
936 uri
= new URI(p2ReposStrST
.nextToken());
937 } catch (URISyntaxException e
) {
940 boolean enabled
= Boolean
.parseBoolean(p2ReposStrST
.nextToken());
941 MetadataRepositoryElement mre
= new MetadataRepositoryElement(null, uri
, true);
942 mre
.setNickname(nickname
);
943 mre
.setEnabled(enabled
);
953 * enables/disables nested composite. <br>
955 * @param ctrl - Composite to be en-/disabeld
956 * @param enabled - boolean
958 public static void recursiveSetEnabled(Control ctrl
, boolean enabled
) {
959 if (ctrl
instanceof Composite
) {
960 Composite comp
= (Composite
) ctrl
;
961 for (Control c
: comp
.getChildren()) {
962 recursiveSetEnabled(c
, enabled
);
965 ctrl
.setEnabled(enabled
);
971 * getSortRanksNaturally
976 public static boolean getSortNodesNaturally() {
977 return getPreferenceStore().getBoolean(SORT_NODES_NATURALLY
);
982 * setSortRanksNaturally
988 public static void setSortNodesNaturally(boolean selection
) {
989 getPreferenceStore().setValue(SORT_NODES_NATURALLY
, selection
);
995 * getSortRanksNaturally
1000 public static boolean getSortNodesStrictlyAlphabetically() {
1001 return getPreferenceStore().getBoolean(SORT_NODES_ALPHABETICALLY
);
1006 * setSortRanksNaturally
1012 public static void setSortNodesStrictlyAlphabetically(boolean selection
) {
1013 getPreferenceStore().setValue(SORT_NODES_ALPHABETICALLY
, selection
);
1018 * setStoreNavigatorState
1024 public static boolean isStoreNavigatorState() {
1025 return getPreferenceStore().getBoolean(RESTORE_NAVIGATOR_STATE
);
1031 * setStoreNavigatorState
1037 public static void setStoreNavigatorState(boolean selection
) {
1038 getPreferenceStore().setValue(RESTORE_NAVIGATOR_STATE
, selection
);
1045 public static boolean isShowUpWidgetIsDisposedMessages() {
1046 return getPreferenceStore().getBoolean(IS_SHOW_UP_WIDGET_IS_DISPOSED
);
1048 public static void setShowUpWidgetIsDisposedMessages(boolean selection
) {
1049 getPreferenceStore().setValue(IS_SHOW_UP_WIDGET_IS_DISPOSED
, selection
);
1055 public static boolean isShowIdInVocabularyInChecklistEditor() {
1056 String area_display
= getPreferenceStore().getString(IPreferenceKeys
.CHECKLIST_AREA_DISPLAY
);
1057 if (area_display
.equals(CHECKLIST_AREA_DISPLAY_ID_IN_VOCABULARY
)) {
1063 public static boolean isShowSymbol1InChecklistEditor() {
1064 String area_display
= getPreferenceStore().getString(IPreferenceKeys
.CHECKLIST_AREA_DISPLAY
);
1065 if (area_display
.equals(CHECKLIST_AREA_DISPLAY_SYMBOL1
)) {
1071 public static boolean isShowSymbol2InChecklistEditor() {
1072 String area_display
= getPreferenceStore().getString(IPreferenceKeys
.CHECKLIST_AREA_DISPLAY
);
1073 if (area_display
.equals(CHECKLIST_AREA_DISPLAY_SYMBOL2
)) {
1079 public static void setShowIdInVocabularyInChecklistEditor(String selection
) {
1080 getPreferenceStore().setValue(CHECKLIST_AREA_DISPLAY
, selection
);
1086 public static boolean isShowSymbolInChecklistEditor() {
1087 return getPreferenceStore().getBoolean(IPreferenceKeys
.CHECKLIST_SYMBOL
);
1089 public static void setShowSymbolInChecklistEditor(boolean selection
) {
1090 getPreferenceStore().setValue(CHECKLIST_SYMBOL
, selection
);
1096 public static boolean isShowRankInChecklistEditor() {
1097 return getPreferenceStore().getBoolean(IPreferenceKeys
.CHECKLIST_SHOW_RANK
);
1099 public static void setShowRankInChecklistEditor(boolean selection
) {
1100 getPreferenceStore().setValue(CHECKLIST_SHOW_RANK
, selection
);
1108 public static NameDetailsConfigurator
getPreferredNameDetailsConfiguration( boolean local
) {
1109 NameDetailsConfigurator config
= new NameDetailsConfigurator(true);
1111 CdmPreference preference
= null;
1114 preference
= getPreferenceFromDB(PreferencePredicate
.NameDetailsView
);
1115 if (preference
== null){
1119 getPreferenceStore().setValue(ALLOW_OVERRIDE_NAME_DETAILS
, preference
.isAllowOverride());
1121 //the preference value is build like this:
1122 //<section1>:true;<section2>:false....
1124 String value
= preference
.getValue();
1125 String
[] sections
= value
.split(";");
1126 Map
<String
, Boolean
> sectionMap
= new HashMap
<String
, Boolean
>();
1127 String
[] sectionValues
;
1128 for (String sectionValue
: sections
){
1129 sectionValues
= sectionValue
.split(":");
1130 sectionMap
.put(sectionValues
[0], Boolean
.valueOf(sectionValues
[1]));
1132 config
.setAllowOverride(preference
.isAllowOverride());
1133 config
.setSimpleDetailsViewActivated(getValue(sectionMap
, "simpleViewActivated"));
1135 // getPreferenceStore().setValue(SHOW_SIMPLE_NAME_DETAILS_TAXON,
1136 // (getValue(sectionMap, "taxon")));
1137 config
.setTaxonSectionActivated(getValue(sectionMap
, "taxon"));
1139 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_LSID,
1140 // (getValue(sectionMap, "lsid")));
1141 config
.setLSIDActivated(getValue(sectionMap
, "lsid"));
1143 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE,
1144 // (getValue(sectionMap, "nc")));
1145 config
.setNomenclaturalCodeActived(getValue(sectionMap
, "nc"));
1147 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE,
1148 // (getValue(sectionMap, "ap")));
1149 config
.setAppendedPhraseActivated(getValue(sectionMap
, "ap"));
1151 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_RANK,
1152 // (getValue(sectionMap, "rank")));
1153 config
.setRankActivated(getValue(sectionMap
, "rank"));
1156 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS,
1157 // (getValue(sectionMap, "atomisedEpithets")));
1158 config
.setAtomisedEpithetsActivated(getValue(sectionMap
, "atomisedEpithets"));
1160 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_AUTHORSHIP,
1161 // (getValue(sectionMap,"author")));
1162 config
.setAuthorshipSectionActivated(getValue(sectionMap
,"author"));
1164 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE,
1165 // (getValue(sectionMap, "nomRef")));
1166 config
.setNomenclaturalReferenceSectionActivated(sectionMap
.get("nomRef"));
1168 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS,
1169 // (getValue(sectionMap, "nomStat")));
1170 config
.setNomenclaturalStatusSectionActivated(getValue(sectionMap
, "nomStat"));
1173 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_PROTOLOGUE,
1174 // (getValue(sectionMap,"protologue")));
1175 config
.setProtologueActivated(getValue(sectionMap
,"protologue"));
1177 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION,
1178 // (getValue(sectionMap,"typeDes")));
1179 config
.setTypeDesignationSectionActivated(getValue(sectionMap
,"typeDes"));
1181 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP,
1182 // (getValue(sectionMap,"nameRelation")));
1183 config
.setNameRelationsSectionActivated(getValue(sectionMap
,"nameRelation"));
1185 // getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_HYBRID,
1186 // (getValue(sectionMap, "hybrid")));
1187 config
.setHybridActivated(getValue(sectionMap
,"hybrid"));
1189 config
.setSimpleDetailsViewActivated(getPreferenceStore().getBoolean(SHOW_SIMPLE_NAME_DETAILS_SECTION
));
1190 config
.setTaxonSectionActivated(getPreferenceStore().getBoolean(SHOW_SIMPLE_NAME_DETAILS_TAXON
));
1191 config
.setLSIDActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_LSID
));
1192 config
.setNomenclaturalCodeActived(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE
));
1193 config
.setAppendedPhraseActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE
));
1194 config
.setRankActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_RANK
));
1195 config
.setAtomisedEpithetsActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS
));
1196 config
.setAuthorshipSectionActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_AUTHORSHIP
));
1197 config
.setNomenclaturalReferenceSectionActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE
));
1198 config
.setNomenclaturalStatusSectionActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS
));
1199 config
.setProtologueActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_PROTOLOGUE
));
1200 config
.setTypeDesignationSectionActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION
));
1201 config
.setNameRelationsSectionActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP
));
1202 config
.setHybridActivated(getPreferenceStore().getBoolean(SHOW_NAME_DETAILS_SECTION_HYBRID
));
1212 public static void setPreferredNameDetailsConfiguration(NameDetailsConfigurator config
, boolean local
) {
1213 CdmPreference preference
= null;
1216 preference
= CdmPreference
.NewInstance(PreferenceSubject
.NewDatabaseInstance(), PreferencePredicate
.NameDetailsView
, config
.toString());
1218 setPreferenceToDB(preference
);
1220 //also add to local preferences
1221 getPreferenceStore().setValue(SHOW_SIMPLE_NAME_DETAILS_SECTION
, config
.isSimpleDetailsViewActivated());
1222 getPreferenceStore().setValue(SHOW_SIMPLE_NAME_DETAILS_TAXON
, config
.isTaxonSectionActivated());
1223 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_LSID
, config
.isLSIDActivated());
1224 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE
, config
.isNomenclaturalCodeActived());
1225 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE
, config
.isAppendedPhraseActivated());
1226 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_RANK
, config
.isRankActivated());
1227 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS
, config
.isAtomisedEpithetsActivated());
1228 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_AUTHORSHIP
, config
.isAuthorshipSectionActivated());
1229 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE
, config
.isNomenclaturalReferenceSectionActivated());
1230 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS
, config
.isNomenclaturalStatusSectionActivated());
1231 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_PROTOLOGUE
, config
.isProtologueActivated());
1232 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION
, config
.isTypeDesignationSectionActivated());
1233 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP
, config
.isNameRelationsSectionActivated());
1234 getPreferenceStore().setValue(SHOW_NAME_DETAILS_SECTION_HYBRID
, config
.isHybridActivated());
1238 private static Boolean
getValue(Map
<String
, Boolean
> sectionMap
, String string
) {
1239 if (sectionMap
.containsKey(string
)){
1240 return sectionMap
.get(string
);
1251 * setAbcdConfigurator
1254 * @param preferredConfiguration
1255 * a {@link eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator}
1258 public static Abcd206ImportConfigurator
getAbcdImportConfigurationPreference() {
1260 Abcd206ImportConfigurator config
= Abcd206ImportConfigurator
.NewInstance(null,null);
1261 ICdmRepository controller
;
1262 controller
= CdmStore
.getCurrentApplicationConfiguration();
1263 PrefKey key
= CdmPreference
.NewKey(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.AbcdImportConfig
);
1264 CdmPreference preference
= null;
1265 if (controller
== null){
1268 preference
= controller
.getPreferenceService().find(key
);
1269 boolean allowOverride
= true;
1270 if (preference
!= null && !preference
.isAllowOverride()){
1271 allowOverride
= false;
1273 if (PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_OVERRIDE
) && allowOverride
){
1275 config
.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_ADD_INDIVIDUALS_ASSOCIATIONS_SUCH_AS_SPECIMEN_AND_OBSERVATIONS
));
1277 config
.setAddMediaAsMediaSpecimen(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_ADD_MEDIA_AS_MEDIASPECIMEN
));
1279 config
.setAllowReuseOtherClassifications(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_ALLOW_REUSE_OTHER_CLASSIFICATIONS
));
1280 config
.setDeduplicateClassifications(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_CLASSIFICATIONS
));
1281 config
.setDeduplicateReferences(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_REFERENCES
));
1283 config
.setGetSiblings(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_DO_SIBLINGS
));
1284 config
.setIgnoreAuthorship(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_IGNORE_AUTHORSHIP
));
1285 config
.setIgnoreImportOfExistingSpecimen(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_IGNORE_IMPORT_OF_EXISTING_SPECIMEN
));
1286 config
.setMapUnitIdToAccessionNumber(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_ACCESSION_NUMBER
));
1287 config
.setMapUnitIdToBarcode(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_BARCODE
));
1288 config
.setMapUnitIdToCatalogNumber(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TOCATALOG_NUMBER
));
1289 config
.setMoveNewTaxaToDefaultClassification(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_MOVE_NEW_TAXA_TO_DEFAULT_CLASSIFICATION
));
1290 config
.setOverwriteExistingSpecimens(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_OVERWRITE_EXISTING_SPECIMEN
));
1291 config
.setReuseExistingDescriptiveGroups(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_DESCRIPTIVE_GROUPS
));
1292 config
.setReuseExistingMetaData(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_META_DATA
));
1293 config
.setReuseExistingTaxaWhenPossible(PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_TAXA_WHEN_POSSIBLE
));
1294 config
.setNomenclaturalCode(NomenclaturalCode
.getByKey(PreferencesUtil
.getPreferenceStore().getString(IPreferenceKeys
.ABCD_IMPORT_CONFIGURATOR_NOMENCLATURAL_CODE
)));
1299 if (preference
== null){
1302 String configString
= preference
.getValue();
1303 String
[] configArray
= configString
.split(";");
1305 for (String configItem
: configArray
){
1306 String
[] keyValue
= configItem
.split(":");
1307 String keyString
= keyValue
[0];
1308 String valueString
= keyValue
[1];
1309 if (keyString
.equals("ignoreImportOfExistingSpecimen")){
1310 config
.setIgnoreImportOfExistingSpecimen(Boolean
.valueOf(valueString
));
1311 }else if (keyString
.equals("addIndividualsAssociationsSuchAsSpecimenAndObservations")){
1312 config
.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(Boolean
.valueOf(valueString
));
1313 }else if (keyString
.equals("reuseExistingTaxaWhenPossible")){
1314 config
.setReuseExistingTaxaWhenPossible(Boolean
.valueOf(valueString
));
1315 }else if (keyString
.equals("ignoreAuthorship")){
1316 config
.setIgnoreAuthorship(Boolean
.valueOf(valueString
));
1317 }else if (keyString
.equals("addMediaAsMediaSpecimen")){
1318 config
.setAddMediaAsMediaSpecimen(Boolean
.valueOf(valueString
));
1319 }else if (keyString
.equals("reuseExistingMetaData")){
1320 config
.setReuseExistingMetaData(Boolean
.valueOf(valueString
));
1321 }else if (keyString
.equals("reuseExistingDescriptiveGroups")){
1322 config
.setReuseExistingDescriptiveGroups(Boolean
.valueOf(valueString
));
1323 }else if (keyString
.equals("allowReuseOtherClassifications")){
1324 config
.setAllowReuseOtherClassifications(Boolean
.valueOf(valueString
));
1325 }else if (keyString
.equals("deduplicateReferences")){
1326 config
.setDeduplicateReferences(Boolean
.valueOf(valueString
));
1327 }else if (keyString
.equals("deduplicateClassifications")){
1328 config
.setDeduplicateClassifications(Boolean
.valueOf(valueString
));
1329 }else if (keyString
.equals("moveNewTaxaToDefaultClassification")){
1330 config
.setMoveNewTaxaToDefaultClassification(Boolean
.valueOf(valueString
));
1331 }else if (keyString
.equals("mapUnitIdToCatalogNumber")){
1332 config
.setMapUnitIdToCatalogNumber(Boolean
.valueOf(valueString
));
1333 }else if (keyString
.equals("mapUnitIdToAccessionNumber")){
1334 config
.setMapUnitIdToAccessionNumber(Boolean
.valueOf(valueString
));
1335 }else if (keyString
.equals("mapUnitIdToBarcode")){
1336 config
.setMapUnitIdToBarcode(Boolean
.valueOf(valueString
));
1337 }else if (keyString
.equals("overwriteExistingSpecimens")){
1338 config
.setOverwriteExistingSpecimens(Boolean
.valueOf(valueString
));
1339 }else if (keyString
.equals("nomenclaturalCode")){
1340 config
.setNomenclaturalCode(NomenclaturalCode
.fromString(valueString
));
1342 logger
.debug("This key of the abcd configurator needs to be added to the transformer: " + keyString
);
1351 public static void updateAbcdImportConfigurationPreference() {
1353 Abcd206ImportConfigurator config
= Abcd206ImportConfigurator
.NewInstance(null,null);
1354 ICdmRepository controller
;
1355 controller
= CdmStore
.getCurrentApplicationConfiguration();
1356 PrefKey key
= CdmPreference
.NewKey(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.AbcdImportConfig
);
1357 CdmPreference preference
= null;
1358 if (controller
== null){
1361 preference
= controller
.getPreferenceService().find(key
);
1362 boolean allowOverride
= true;
1363 if (preference
!= null && !preference
.isAllowOverride()){
1364 allowOverride
= false;
1366 if (!PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.ABCD_IMPORT_OVERRIDE
) || !allowOverride
){
1368 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_ADD_INDIVIDUALS_ASSOCIATIONS_SUCH_AS_SPECIMEN_AND_OBSERVATIONS
, config
.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
1369 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_ADD_MEDIA_AS_MEDIASPECIMEN
, config
.isAddMediaAsMediaSpecimen());
1371 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_ALLOW_REUSE_OTHER_CLASSIFICATIONS
, config
.isAllowReuseOtherClassifications());
1372 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_CLASSIFICATIONS
, config
.isDeduplicateClassifications());
1373 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_DEDUPLICATE_REFERENCES
, config
.isDeduplicateReferences());
1375 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_DO_SIBLINGS
, config
.isGetSiblings());
1376 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_IGNORE_AUTHORSHIP
, config
.isIgnoreAuthorship());
1377 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_IGNORE_IMPORT_OF_EXISTING_SPECIMEN
, config
.isIgnoreImportOfExistingSpecimen());
1378 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_ACCESSION_NUMBER
, config
.isMapUnitIdToAccessionNumber());
1379 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TO_BARCODE
, config
.isMapUnitIdToBarcode());
1380 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_MAP_UNIT_ID_TOCATALOG_NUMBER
, config
.isMapUnitIdToCatalogNumber());
1381 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_MOVE_NEW_TAXA_TO_DEFAULT_CLASSIFICATION
, config
.isMoveNewTaxaToDefaultClassification());
1382 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_OVERWRITE_EXISTING_SPECIMEN
, config
.isOverwriteExistingSpecimens());
1383 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_DESCRIPTIVE_GROUPS
, config
.isReuseExistingDescriptiveGroups());
1384 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_META_DATA
, config
.isReuseExistingMetaData());
1385 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_REUSE_EXISTING_TAXA_WHEN_POSSIBLE
, config
.isReuseExistingTaxaWhenPossible());
1386 if (config
.getNomenclaturalCode() != null){
1387 getPreferenceStore().setValue(ABCD_IMPORT_CONFIGURATOR_NOMENCLATURAL_CODE
, config
.getNomenclaturalCode().getKey());
1396 public NameDetailsConfigurator
createLocalNameDetailsViewConfig(boolean local
) {
1397 NameDetailsConfigurator config
= new NameDetailsConfigurator(true);
1399 config
.setSimpleDetailsViewActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_SIMPLE_NAME_DETAILS_SECTION
));
1400 config
.setAppendedPhraseActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE
));
1401 config
.setAtomisedEpithetsActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS
));
1402 config
.setAuthorshipSectionActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP
));
1403 config
.setLSIDActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_LSID
));
1404 config
.setNameApprobiationActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NAME_APPROBATION
));
1405 config
.setNameCacheActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_CACHE
));
1406 config
.setNameRelationsSectionActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP
));
1407 config
.setNomenclaturalCodeActived(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE
));
1408 config
.setNomenclaturalStatusSectionActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS
));
1409 config
.setNomenclaturalReferenceSectionActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE
));
1410 config
.setProtologueActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE
));
1411 config
.setRankActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_RANK
));
1412 config
.setTaxonSectionActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_SIMPLE_NAME_DETAILS_TAXON
));
1413 config
.setTypeDesignationSectionActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION
));
1414 config
.setHybridActivated(getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_HYBRID
));
1423 public static void saveConfigToPrefernceStore(NameDetailsConfigurator config
) {
1424 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_SIMPLE_NAME_DETAILS_SECTION
,
1425 config
.isSimpleDetailsViewActivated());
1426 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_SIMPLE_NAME_DETAILS_TAXON
, config
.isTaxonSectionActivated());
1427 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_LSID
, config
.isLSIDActivated());
1428 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE
,
1429 config
.isNomenclaturalCodeActived());
1430 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NAMECACHE
,
1431 config
.isNameCacheActivated());
1432 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE
,
1433 config
.isAppendedPhraseActivated());
1434 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_RANK
, config
.isRankActivated());
1435 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS
,
1436 config
.isAtomisedEpithetsActivated());
1437 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP_CACHE
,
1438 config
.isAuthorCacheActivated());
1439 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP
,
1440 config
.isAuthorshipSectionActivated());
1441 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE
,
1442 config
.isNomenclaturalReferenceSectionActivated());
1443 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS
,
1444 config
.isNomenclaturalStatusSectionActivated());
1445 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE
,
1446 config
.isProtologueActivated());
1447 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION
,
1448 config
.isTypeDesignationSectionActivated());
1449 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP
,
1450 config
.isNameRelationsSectionActivated());
1451 PreferencesUtil
.getPreferenceStore().setValue(IPreferenceKeys
.SHOW_NAME_DETAILS_SECTION_HYBRID
,
1452 config
.isHybridActivated());
1459 public static boolean isSortTaxaByRankAndName() {
1461 return getPreferenceStore().getBoolean(IPreferenceKeys
.SORT_TAXA_BY_RANK_AND_NAME
);
1467 public static boolean isSortNamedAreaByOrderInVocabulary() {
1469 return getPreferenceStore().getBoolean(IPreferenceKeys
.SORT_NAMED_AREA_BY_VOCABULARY_ORDER
);
1472 public static void setSortNamedAreasByOrderInVocabulary(boolean isSortByVocabularyOrder
) {
1473 getPreferenceStore().setValue(IPreferenceKeys
.SORT_NAMED_AREA_BY_VOCABULARY_ORDER
, isSortByVocabularyOrder
);
1479 * setPreferredNamedAreasForDistributionEditor
1482 * @param saveCheckedElements
1483 * @param saveGrayedElements
1485 public static void setLastSelectedReference(
1486 List
<String
> lastSelectedReferences
) {
1488 IPreferenceStore preferenceStore
= PreferencesUtil
.getPreferenceStore();
1489 preferenceStore
.setValue(PreferencesUtil
.LAST_SELECTED_REFERENCES
, lastSelectedReferences
.toString());
1494 * setPreferredNamedAreasForDistributionEditor
1497 * @param saveCheckedElements
1498 * @param saveGrayedElements
1500 public static List
<String
> getLastSelectedReferences() {
1502 IPreferenceStore preferenceStore
= PreferencesUtil
.getPreferenceStore();
1503 String lastSelected
= preferenceStore
.getString(PreferencesUtil
.LAST_SELECTED_REFERENCES
);
1504 List
<String
> result
= new ArrayList
<>();
1505 if (!StringUtils
.isBlank(lastSelected
)){
1506 Collections
.addAll(result
, lastSelected
.substring(1,lastSelected
.length()-1).split(", "));
1514 * setPreferredNamedAreasForDistributionEditor
1517 * @param saveCheckedElements
1518 * @param saveGrayedElements
1520 public static void setPreferredNamedAreasForDistributionEditor(
1521 String saveCheckedElements
, String saveGrayedElements
, boolean local
) {
1523 IPreferenceStore preferenceStore
= PreferencesUtil
.getPreferenceStore();
1524 preferenceStore
.setValue(PreferencesUtil
.DISTRIBUTION_AREA_OCCURENCE_STATUS
, saveCheckedElements
);
1525 preferenceStore
.setValue(PreferencesUtil
.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED
, saveGrayedElements
);
1529 CdmPreference preference
= null;
1531 if (saveCheckedElements
== null){
1532 preference
= getPreferenceFromDB(PreferencePredicate
.AvailableDistributionAreaTerms
);
1534 if (preference
== null){
1537 getPreferenceStore().setValue(DISTRIBUTION_AREA_OCCURENCE_STATUS
,
1538 saveCheckedElements
);
1539 preference
= CdmPreference
.NewInstance(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.AvailableDistributionAreaTerms
, saveCheckedElements
);
1540 setPreferenceToDB(preference
);
1544 preference
= CdmPreference
.NewInstance(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.AvailableDistributionAreaTerms
, saveCheckedElements
);
1545 setPreferenceToDB(preference
);
1546 getPreferenceStore().setValue(DISTRIBUTION_AREA_OCCURENCE_STATUS
,
1547 saveCheckedElements
);
1555 * @param saveCheckedElements
1556 * @param saveCheckedElements2
1559 public static void setPreferredVocabulariesForDistributionEditor(String saveCheckedElements
,
1562 IPreferenceStore preferenceStore
= PreferencesUtil
.getPreferenceStore();
1563 preferenceStore
.setValue(PreferencesUtil
.DISTRIBUTION_VOCABULARIES
, saveCheckedElements
);
1566 ICdmRepository controller
;
1567 CdmPreference preference
= null;
1569 if (saveCheckedElements
== null){
1570 preference
= getPreferenceFromDB(PreferencePredicate
.AvailableDistributionAreaVocabularies
);
1572 if (preference
== null){
1575 getPreferenceStore().setValue(DISTRIBUTION_VOCABULARIES
,
1576 saveCheckedElements
);
1577 preference
= CdmPreference
.NewInstance(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.AvailableDistributionAreaVocabularies
, saveCheckedElements
);
1578 setPreferenceToDB(preference
);
1581 preference
= CdmPreference
.NewInstance(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.AvailableDistributionAreaVocabularies
, saveCheckedElements
);
1582 setPreferenceToDB(preference
);
1583 getPreferenceStore().setValue(DISTRIBUTION_VOCABULARIES
,
1584 saveCheckedElements
);
1594 * @param saveCheckedElements
1595 * @param saveCheckedElements2
1598 public static String
getPreferredVocabulariesForDistributionEditor(boolean local
) {
1600 IPreferenceStore preferenceStore
= PreferencesUtil
.getPreferenceStore();
1601 String pref
= preferenceStore
.getString(DISTRIBUTION_VOCABULARIES
);
1605 CdmPreference preference
= null;
1606 preference
= getPreferenceFromDB(PreferencePredicate
.AvailableDistributionAreaVocabularies
);
1607 if (preference
== null){
1610 return preference
.getValue();
1619 public static boolean getFilterCommonNameReferences(){
1620 return getPreferenceStore().getBoolean(PreferencesUtil
.FILTER_COMMON_NAME_REFERENCES
);
1626 public static void updateDBPreferences() {
1627 CdmPreference preference
= null;
1628 IPreferenceStore prefStore
= getPreferenceStore();
1632 updateAbcdImportConfigurationPreference();
1634 preference
= getPreferenceFromDB(PreferencePredicate
.ShowImportExportMenu
);
1635 if (preference
!= null){
1636 if(!prefStore
.getBoolean(SHOW_IO_MENU
) || !preference
.isAllowOverride()){
1637 prefStore
.setValue(SHOW_IO_MENU
, preference
.getValue());
1641 preference
= getPreferenceFromDB(PreferencePredicate
.ShowMediaView
);
1642 if (preference
!= null){
1643 if(!prefStore
.getBoolean(SHOW_MEDIA
) || !preference
.isAllowOverride()){
1644 prefStore
.setValue(SHOW_MEDIA
, preference
.getValue());
1648 preference
= getPreferenceFromDB(PreferencePredicate
.ShowChecklistPerspective
);
1649 if (preference
!= null){
1650 if(!prefStore
.getBoolean(SHOW_CHECKLIST_PERSPECTIVE
) || !preference
.isAllowOverride()){
1651 prefStore
.setValue(SHOW_CHECKLIST_PERSPECTIVE
, preference
.getValue());
1656 preference
= getPreferenceFromDB(PreferencePredicate
.ShowSpecimen
);
1657 if (preference
!= null){
1658 if(!prefStore
.getBoolean(SHOW_SPECIMEN
) || !preference
.isAllowOverride()){
1659 prefStore
.setValue(SHOW_SPECIMEN
, preference
.getValue());
1663 preference
= getPreferenceFromDB(PreferencePredicate
.ShowTaxonAssociations
);
1664 if (preference
!= null){
1665 if(!prefStore
.getBoolean(SHOW_TAXON_ASSOCIATIONS_OVERRIDE
) || !preference
.isAllowOverride()){
1666 prefStore
.setValue(SHOW_TAXON_ASSOCIATIONS
, preference
.getValue());
1669 preference
= getPreferenceFromDB(PreferencePredicate
.ShowCollectingAreasInGeneralSection
);
1670 if (preference
!= null){
1671 if(!prefStore
.getBoolean(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION_OVERRIDE
) || !preference
.isAllowOverride()){
1672 prefStore
.setValue(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION
, preference
.getValue());
1675 preference
= getPreferenceFromDB(PreferencePredicate
.ShowLifeForm
);
1676 if (preference
!= null){
1677 if(!prefStore
.getBoolean(SHOW_LIFE_FORM_OVERRIDE
) || !preference
.isAllowOverride()){
1678 prefStore
.setValue(SHOW_LIFE_FORM
, preference
.getValue());
1681 preference
= getPreferenceFromDB(PreferencePredicate
.DeterminationOnlyForFieldUnits
);
1682 if (preference
!= null){
1683 if(!prefStore
.getBoolean(DETERMINATION_ONLY_FOR_FIELD_UNITS_OVERRIDE
) || !preference
.isAllowOverride()){
1684 prefStore
.setValue(DETERMINATION_ONLY_FOR_FIELD_UNITS
, preference
.getValue());
1690 NameDetailsConfigurator config
= getPreferredNameDetailsConfiguration(false);
1691 if (config
!= null ){
1692 if (!prefStore
.getBoolean(OVERRIDE_NAME_DETAILS
) || !prefStore
.getBoolean(ALLOW_OVERRIDE_NAME_DETAILS
)){
1693 setPreferredNameDetailsConfiguration(config
, false);
1697 //Distribution Editor
1698 preference
= getPreferenceFromDB(PreferencePredicate
.AvailableDistributionAreaVocabularies
);
1699 if (preference
!= null){
1700 if (!prefStore
.getBoolean(DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE
) || !preference
.isAllowOverride()){
1701 prefStore
.setValue(DISTRIBUTION_VOCABULARIES
, preference
.getValue());
1705 preference
= getPreferenceFromDB(PreferencePredicate
.DistributionEditorActivated
);
1706 if (preference
!= null){
1707 if (!prefStore
.getBoolean(DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE
) || !preference
.isAllowOverride()){
1708 prefStore
.setValue(DISTRIBUTION_AREA_PREFRENCES_ACTIVE
, preference
.getValue());
1712 preference
= getPreferenceFromDB(PreferencePredicate
.AvailableDistributionStatus
);
1713 if (preference
!= null){
1714 if (!prefStore
.getBoolean(DISTRIBUTION_STATUS_OVERRIDE
) || !preference
.isAllowOverride()){
1715 //get terms for the uuids... and add them to the termManager as preferred terms
1716 ITermService termService
= CdmStore
.getService(ITermService
.class);
1717 String
[] uuidArray
= preference
.getValue().split(";");
1718 List
<UUID
> uuidList
= new ArrayList();
1719 for (String uuidString
:uuidArray
){
1720 uuidList
.add(UUID
.fromString(uuidString
));
1723 List
<DefinedTermBase
> definedTermBases
= termService
.load(uuidList
, null);
1724 CdmStore
.getTermManager().setPreferredTerms(definedTermBases
, TermStore
.getTerms(TermType
.PresenceAbsenceTerm
, null));
1728 preference
= getPreferenceFromDB(PreferencePredicate
.CommonNameAreaVocabularies
);
1729 if (preference
!= null){
1730 if (!prefStore
.getBoolean(COMMON_NAME_AREA_VOCABULARIES_OVERRIDE
) || !preference
.isAllowOverride()){
1731 prefStore
.setValue(COMMON_NAME_AREA_VOCABULARIES
, preference
.getValue());
1735 preference
= getPreferenceFromDB(PreferencePredicate
.ShowTaxonNodeWizard
);
1736 if (preference
!= null){
1737 if (!prefStore
.getBoolean(SHOW_TAXONNODE_WIZARD
) || !preference
.isAllowOverride()){
1738 prefStore
.setValue(SHOW_TAXONNODE_WIZARD
, preference
.getValue());