X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/cc1302bdeb5df5ee855a851cdb32671242cfc44b..c2a446b0ddedbe4f4e21c12304509393f2fb1ba9:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java index 8fb5d39fe..ca6854f38 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java @@ -37,19 +37,19 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen private static final String LOCAL_SETTINGS_NOT_ALLOWED = Messages.SpecimenOrObservationPreferences_0; private static final String DESCRIPTION = Messages.SpecimenOrObservationPreferences_1; - protected boolean isShowSpecimenRelatedIssues; + protected Boolean isShowSpecimenRelatedIssues; protected boolean allowOverrideShowSpecimenRelatedIssues; protected boolean overrideShowSpecimenRelatedIssues; - protected boolean isShowCollectingAreaInGeneralSection; + protected Boolean isShowCollectingAreaInGeneralSection; protected boolean allowOverrideShowCollectingAreaInGeneralSection; protected boolean overrideShowCollectionAreaInGeneralSection; - protected boolean isDeterminationOnlyForFieldUnits; + protected Boolean isDeterminationOnlyForFieldUnits; protected boolean allowOverrideDeterminationOnlyForFieldUnits; protected boolean overrideDeterminationOnlyForFieldUnits; - protected boolean isShowTaxonAssociation; + protected Boolean isShowTaxonAssociation; protected boolean allowOverrideShowTaxonAssociation; protected boolean overrideShowTaxonAssociation; - protected boolean isShowLifeForm; + protected Boolean isShowLifeForm; protected boolean allowOverrideShowLifeForm; protected boolean overrideShowLifeForm; Composite composite; @@ -92,20 +92,24 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen boolean isEditingAllowed = true; if(!isAdminPreference){ CdmPreferenceCache cache = CdmPreferenceCache.instance(); - PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimen); - CdmPreference showSpecimenPref = cache.findBestMatching(key); + if (showSpecimenPref != null){ if (!showSpecimenPref.isAllowOverride() ){ - Label label = new Label(parent, SWT.NONE); - label.setText(LOCAL_SETTINGS_NOT_ALLOWED); + isEditingAllowed = false; } } } - - Label label = new Label(parent, SWT.NONE); - label.setText(DESCRIPTION); + if (isEditingAllowed){ + Label label = new Label(parent, SWT.NONE); + label.setText(DESCRIPTION); + }else{ + Label label = new Label(parent, SWT.NONE); + label.setText(LOCAL_SETTINGS_NOT_ALLOWED); + this.noDefaultAndApplyButton(); + return parent; + } Composite titleComp = createComposite(parent); GridData gridData = createTextGridData(); @@ -115,12 +119,23 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen showSpecimenButton = createBooleanCombo(titleComp, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowSpecimen, Messages.DatabasePreferncesPage_Show_Specimen, isAdminPreference); showSpecimenButton.addSelectionListener(this); - if (isShowSpecimenRelatedIssues){ - showSpecimenButton.select(0); - }else{ - showSpecimenButton.select(1); + int index = 0; + for (String itemLabel : showSpecimenButton.getItems()) { + if (isShowSpecimenRelatedIssues == null && itemLabel.startsWith(Messages.Preference_Use_Default)) { + showSpecimenButton.select(index); + break; + } + if (isShowSpecimenRelatedIssues != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowSpecimenRelatedIssues){ + showSpecimenButton.select(index); + break; + } + if (isShowSpecimenRelatedIssues != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowSpecimenRelatedIssues){ + showSpecimenButton.select(index); + break; + } + index++; } - + showSpecimenButton.setEnabled(isEditingAllowed); if (isAdminPreference){ allowOverrideIsShowSpecimenRelatedIssuesButton = createAllowOverrideButton(titleComp); @@ -144,10 +159,21 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen showCollectingAreaInGeneralSectionButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowCollectingAreasInGeneralSection, Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section, isAdminPreference); showCollectingAreaInGeneralSectionButton.addSelectionListener(this); - if (isShowCollectingAreaInGeneralSection){ - showCollectingAreaInGeneralSectionButton.select(0); - }else{ - showCollectingAreaInGeneralSectionButton.select(1); + index = 0; + for (String itemLabel : showCollectingAreaInGeneralSectionButton.getItems()) { + if (isShowCollectingAreaInGeneralSection == null && itemLabel.startsWith(Messages.Preference_Use_Default)) { + showCollectingAreaInGeneralSectionButton.select(index); + break; + } + if (isShowCollectingAreaInGeneralSection != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowCollectingAreaInGeneralSection){ + showCollectingAreaInGeneralSectionButton.select(index); + break; + } + if (isShowCollectingAreaInGeneralSection != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowCollectingAreaInGeneralSection){ + showCollectingAreaInGeneralSectionButton.select(index); + break; + } + index++; } if (isAdminPreference){ allowOverrideShowCollectingAreaButton = createAllowOverrideButton(composite); @@ -160,17 +186,34 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen } }); } - + if (showCollectingAreaInGeneralSection != null && !showCollectingAreaInGeneralSection.isAllowOverride() ){ + isEditingAllowed = false; + } + showCollectingAreaInGeneralSectionButton.setEnabled(isEditingAllowed); determinationOnlyForFieldUnitsButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.DeterminationOnlyForFieldUnits, Messages.DatabasePreferncesPage_Determination_only_for_field_unnits, isAdminPreference); determinationOnlyForFieldUnitsButton.addSelectionListener(this); - if (isDeterminationOnlyForFieldUnits){ - determinationOnlyForFieldUnitsButton.select(0); - }else{ - determinationOnlyForFieldUnitsButton.select(1); + index = 0; + for (String itemLabel : determinationOnlyForFieldUnitsButton.getItems()) { + if (isDeterminationOnlyForFieldUnits == null && itemLabel.startsWith(Messages.Preference_Use_Default)) { + determinationOnlyForFieldUnitsButton.select(index); + break; + } + if (isDeterminationOnlyForFieldUnits != null && itemLabel.equals(Messages.GeneralPreference_yes) && isDeterminationOnlyForFieldUnits){ + determinationOnlyForFieldUnitsButton.select(index); + break; + } + if (isDeterminationOnlyForFieldUnits != null && itemLabel.equals(Messages.GeneralPreference_no) && !isDeterminationOnlyForFieldUnits){ + determinationOnlyForFieldUnitsButton.select(index); + break; + } + index++; } - + if (showDeterminationOnlyForFieldUnits != null && !showDeterminationOnlyForFieldUnits.isAllowOverride() ){ + isEditingAllowed = false; + } + determinationOnlyForFieldUnitsButton.setEnabled(isEditingAllowed); if (isAdminPreference){ allowOverridesDeterminationOnlyForFieldUnitsButton = createAllowOverrideButton(composite); allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits); @@ -187,11 +230,26 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen showTaxonAssociationButton.addSelectionListener(this); - if (isShowTaxonAssociation){ - showTaxonAssociationButton.select(0); - }else{ - showTaxonAssociationButton.select(1); + index = 0; + for (String itemLabel : showTaxonAssociationButton.getItems()) { + if (isShowTaxonAssociation == null && itemLabel.startsWith(Messages.Preference_Use_Default)) { + showTaxonAssociationButton.select(index); + break; + } + if (isShowTaxonAssociation != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowTaxonAssociation){ + showTaxonAssociationButton.select(index); + break; + } + if (isShowTaxonAssociation != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowTaxonAssociation){ + showTaxonAssociationButton.select(index); + break; + } + index++; } + if (showTaxonAssociation != null && !showTaxonAssociation.isAllowOverride() ){ + isEditingAllowed = false; + } + showTaxonAssociationButton.setEnabled(isEditingAllowed); if (isAdminPreference){ allowOverrideIsShowTaxonAssociationButton = createAllowOverrideButton(composite); allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation); @@ -207,12 +265,26 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen showLifeFormButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowLifeForm, Messages.DatabasePreferncesPage_Life_Form, isAdminPreference); showLifeFormButton.addSelectionListener(this); - if (isShowLifeForm){ - showLifeFormButton.select(0); - }else{ - showLifeFormButton.select(1); + index = 0; + for (String itemLabel: showLifeFormButton.getItems()) { + if (isShowLifeForm == null && itemLabel.startsWith(Messages.Preference_Use_Default)) { + showLifeFormButton.select(index); + break; + } + if (isShowLifeForm != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowLifeForm){ + showLifeFormButton.select(index); + break; + } + if (isShowLifeForm != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowLifeForm){ + showLifeFormButton.select(index); + break; + } + index++; } - + if (showLifeForm != null && !showLifeForm.isAllowOverride() ){ + isEditingAllowed = false; + } + showLifeFormButton.setEnabled(isEditingAllowed); if (isAdminPreference){ allowOverrideShowLifeFormButton = createAllowOverrideButton(composite); allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm); @@ -240,47 +312,144 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen protected void getValues() { CdmPreferenceCache cache = CdmPreferenceCache.instance(); - isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey()); + + overrideShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimen.getKey()), true) != null? PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimen.getKey()), true): false; + PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimen); - showSpecimenPref = cache.findBestMatching(key); - if (showSpecimenPref == null){ + showSpecimenPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSpecimen); + + + if (showSpecimenPref != null) { + if (showSpecimenPref.isAllowOverride() ) { + if (overrideShowSpecimenRelatedIssues){ + isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), true); + } + } else { + isShowSpecimenRelatedIssues = Boolean.valueOf(showSpecimenPref.getValue()); + } + + } else { + if(!overrideShowSpecimenRelatedIssues){ + isShowSpecimenRelatedIssues = null; + }else{ + isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), true); + } showSpecimenPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowSpecimen, PreferencePredicate.ShowSpecimen.getDefaultValue() != null ? PreferencePredicate.ShowSpecimen.getDefaultValue().toString(): null); } - allowOverrideShowSpecimenRelatedIssues = showSpecimenPref != null ? showSpecimenPref.isAllowOverride():true; - isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), true); + key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection); - showCollectingAreaInGeneralSection = cache.findBestMatching(key); - if (showCollectingAreaInGeneralSection == null){ + showCollectingAreaInGeneralSection = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowCollectingAreasInGeneralSection); + overrideShowCollectionAreaInGeneralSection = PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), true) != null? PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), true): false; + allowOverrideShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSection != null ? showCollectingAreaInGeneralSection.isAllowOverride():true; + if (showCollectingAreaInGeneralSection != null) { + if (showCollectingAreaInGeneralSection.isAllowOverride() ) { + if (overrideShowCollectionAreaInGeneralSection){ + isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), true); + } + + } else { + isShowCollectingAreaInGeneralSection = Boolean.valueOf(showCollectingAreaInGeneralSection.getValue()); + + } + + } else { + if(!overrideShowCollectionAreaInGeneralSection){ + isShowCollectingAreaInGeneralSection = null; + }else{ + isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), true); + } showCollectingAreaInGeneralSection = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowCollectingAreasInGeneralSection, PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue() != null ? PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue().toString(): null); } - allowOverrideShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSection != null ? showCollectingAreaInGeneralSection.isAllowOverride():true; - isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()); key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits); - showDeterminationOnlyForFieldUnits = cache.findBestMatching(key); - if (showDeterminationOnlyForFieldUnits == null){ + showDeterminationOnlyForFieldUnits = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DeterminationOnlyForFieldUnits); + overrideDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), true) != null? PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), true): false; + if (showDeterminationOnlyForFieldUnits != null) { + if (showDeterminationOnlyForFieldUnits.isAllowOverride() ) { + if (overrideDeterminationOnlyForFieldUnits){ + isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()); + } + + } else { + isDeterminationOnlyForFieldUnits = Boolean.valueOf(showDeterminationOnlyForFieldUnits.getValue()); + + } + + } else { + if(!overrideDeterminationOnlyForFieldUnits){ + isDeterminationOnlyForFieldUnits = null; + }else{ + isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), true); + } showDeterminationOnlyForFieldUnits = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DeterminationOnlyForFieldUnits, PreferencePredicate.DeterminationOnlyForFieldUnits.getDefaultValue() != null ? PreferencePredicate.DeterminationOnlyForFieldUnits.getDefaultValue().toString(): null); } + allowOverrideDeterminationOnlyForFieldUnits = showDeterminationOnlyForFieldUnits != null ? showDeterminationOnlyForFieldUnits.isAllowOverride():true; - isShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey()); + key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonAssociations); - showTaxonAssociation = cache.findBestMatching(key); - if (showTaxonAssociation == null){ + showTaxonAssociation = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowTaxonAssociations); + overrideShowTaxonAssociation = PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonAssociations.getKey()), true) != null? PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonAssociations.getKey()), true): false; + if (showTaxonAssociation != null) { + if (showTaxonAssociation.isAllowOverride() ) { + if (overrideShowTaxonAssociation){ + isShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey()); + } + + } else { + isShowTaxonAssociation = Boolean.valueOf(showTaxonAssociation.getValue()); + + } + + } else { + if(!overrideShowTaxonAssociation){ + isShowTaxonAssociation = null; + }else{ + isShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey(), true); + } showTaxonAssociation = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowTaxonAssociations, PreferencePredicate.ShowTaxonAssociations.getDefaultValue() != null ? PreferencePredicate.ShowTaxonAssociations.getDefaultValue().toString(): null); } + allowOverrideShowTaxonAssociation = showTaxonAssociation != null ? showTaxonAssociation.isAllowOverride():true; - isShowLifeForm = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowLifeForm.getKey()); + key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowLifeForm); - showLifeForm = cache.findBestMatching(key); - if (showLifeForm == null){ + showLifeForm = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowLifeForm); + overrideShowLifeForm = PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowLifeForm.getKey()), true) != null? PreferencesUtil.getBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowLifeForm.getKey()), true): false; + if (showLifeForm != null) { + if (showLifeForm.isAllowOverride() ) { + if (overrideShowLifeForm){ + isShowLifeForm = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowLifeForm.getKey()); + } + + } else { + isShowLifeForm = Boolean.valueOf(showLifeForm.getValue()); + + } + + } else { + if(!overrideShowLifeForm){ + isShowLifeForm = null; + }else{ + isShowLifeForm = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowLifeForm.getKey(), true); + } showLifeForm = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowLifeForm, PreferencePredicate.ShowLifeForm.getDefaultValue() != null ? PreferencePredicate.ShowLifeForm.getDefaultValue().toString(): null); } + allowOverrideShowLifeForm = showLifeForm != null ? showLifeForm.isAllowOverride():true; @@ -288,27 +457,52 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen @Override public boolean performOk() { - if (allowOverrideShowSpecimenRelatedIssues){ - PreferencesUtil.setBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), isShowSpecimenRelatedIssues); - boolean test = isShowSpecimenRelatedIssues != Boolean.parseBoolean(showSpecimenPref.getValue()); - PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowSpecimen.getKey()), isShowSpecimenRelatedIssues != Boolean.parseBoolean(showSpecimenPref.getValue())); + + boolean override = false; + if (isShowSpecimenRelatedIssues != null ) { + override = true; + PreferencesUtil.setStringValue(PreferencePredicate.ShowSpecimen.getKey(), isShowSpecimenRelatedIssues.toString()); } - if (allowOverrideShowCollectingAreaInGeneralSection){ - PreferencesUtil.setBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), isShowCollectingAreaInGeneralSection); - PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), isShowCollectingAreaInGeneralSection != Boolean.parseBoolean(showCollectingAreaInGeneralSection.getValue())); + PreferencesUtil.setBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimen.getKey()), + override); + + override = false; + if (isShowCollectingAreaInGeneralSection != null ) { + override = true; + PreferencesUtil.setStringValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), isShowCollectingAreaInGeneralSection.toString()); } - if (allowOverrideDeterminationOnlyForFieldUnits){ - PreferencesUtil.setBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), isDeterminationOnlyForFieldUnits); - PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), isDeterminationOnlyForFieldUnits != Boolean.parseBoolean(showDeterminationOnlyForFieldUnits.getValue())); + PreferencesUtil.setBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), + override); + + override = false; + if (isDeterminationOnlyForFieldUnits != null ) { + override = true; + PreferencesUtil.setStringValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), isDeterminationOnlyForFieldUnits.toString()); } - if (allowOverrideShowTaxonAssociation){ - PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey(), isShowTaxonAssociation); - PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowTaxonAssociations.getKey()), isShowTaxonAssociation != Boolean.parseBoolean(showTaxonAssociation.getValue())); + PreferencesUtil.setBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), + override); + + override = false; + if (isShowTaxonAssociation != null ) { + override = true; + PreferencesUtil.setStringValue(PreferencePredicate.ShowTaxonAssociations.getKey(), isShowTaxonAssociation.toString()); } - if (allowOverrideShowLifeForm){ - PreferencesUtil.setBooleanValue(PreferencePredicate.ShowLifeForm.getKey(), isShowLifeForm); - PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowLifeForm.getKey()), isShowLifeForm != Boolean.parseBoolean(showLifeForm.getValue())); + PreferencesUtil.setBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonAssociations.getKey()), + override); + + override = false; + if (isShowLifeForm != null ) { + override = true; + PreferencesUtil.setStringValue(PreferencePredicate.ShowLifeForm.getKey(), isShowLifeForm.toString()); } + PreferencesUtil.setBooleanValue( + PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowLifeForm.getKey()), + override); + return true; } @@ -316,56 +510,41 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen @Override protected void performDefaults() { - isShowSpecimenRelatedIssues = (Boolean)PreferencePredicate.ShowSpecimen.getDefaultValue(); - if (isShowSpecimenRelatedIssues){ - showSpecimenButton.select(0); - }else{ - showSpecimenButton.select(1); - } + isShowSpecimenRelatedIssues = null; + showSpecimenButton.select(0); + if (allowOverrideIsShowSpecimenRelatedIssuesButton != null){ allowOverrideShowSpecimenRelatedIssues = true; allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues); } - isShowCollectingAreaInGeneralSection = (Boolean)PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue(); - if (isShowCollectingAreaInGeneralSection){ - showCollectingAreaInGeneralSectionButton.select(0); - }else{ - showCollectingAreaInGeneralSectionButton.select(1); - } + isShowCollectingAreaInGeneralSection = null; + showCollectingAreaInGeneralSectionButton.select(0); + if (allowOverrideShowCollectingAreaButton != null){ allowOverrideShowCollectingAreaInGeneralSection = true; allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowSpecimenRelatedIssues); } - isDeterminationOnlyForFieldUnits = (Boolean) PreferencePredicate.DeterminationOnlyForFieldUnits.getDefaultValue(); - if (isDeterminationOnlyForFieldUnits){ - determinationOnlyForFieldUnitsButton.select(0); - }else{ - determinationOnlyForFieldUnitsButton.select(1); - } + isDeterminationOnlyForFieldUnits = null; + determinationOnlyForFieldUnitsButton.select(0); + if (allowOverridesDeterminationOnlyForFieldUnitsButton != null){ allowOverrideDeterminationOnlyForFieldUnits = true; allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideShowSpecimenRelatedIssues); } - isShowTaxonAssociation = (Boolean) PreferencePredicate.ShowTaxonAssociations.getDefaultValue(); - if (isShowTaxonAssociation){ - showTaxonAssociationButton.select(0); - }else{ - showTaxonAssociationButton.select(1); - } + isShowTaxonAssociation = null; + showTaxonAssociationButton.select(0); + if (allowOverrideIsShowTaxonAssociationButton != null){ allowOverrideShowTaxonAssociation = true; allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowSpecimenRelatedIssues); } - isShowLifeForm = (Boolean) PreferencePredicate.ShowLifeForm.getDefaultValue(); + isShowLifeForm = null; + + showLifeFormButton.select(0); - if (isShowLifeForm){ - showLifeFormButton.select(0); - }else{ - showLifeFormButton.select(1); - } if (allowOverrideShowLifeFormButton != null){ allowOverrideShowLifeForm = true; allowOverrideShowLifeFormButton.setSelection(allowOverrideShowSpecimenRelatedIssues); @@ -381,18 +560,32 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen @Override public void widgetSelected(SelectionEvent e) { setApply(true); - if (e.getSource().equals(showSpecimenButton)){ + if (e.getSource().equals(this.showSpecimenButton)) { String text = showSpecimenButton.getText(); - text = text.replace(Messages.Preference_Use_Default, ""); + if(text.startsWith(Messages.Preference_Use_Default)){ + isShowSpecimenRelatedIssues = null; + if (isAdminPreference){ + allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(true); + } + return; + } if (text.equals(Messages.GeneralPreference_yes)){ isShowSpecimenRelatedIssues = true; }else{ isShowSpecimenRelatedIssues = false; } } - if (e.getSource().equals(showCollectingAreaInGeneralSectionButton)){ + + if (e.getSource().equals(this.showCollectingAreaInGeneralSectionButton)) { String text = showCollectingAreaInGeneralSectionButton.getText(); - text = text.replace(" (Use default)", ""); + if(text.startsWith(Messages.Preference_Use_Default)){ + isShowCollectingAreaInGeneralSection = null; + if (isAdminPreference){ + //showCollectingAreaInGeneralSection.setAllowOverride(true); + allowOverrideShowCollectingAreaButton.setSelection(true); + } + return; + } if (text.equals(Messages.GeneralPreference_yes)){ isShowCollectingAreaInGeneralSection = true; }else{ @@ -400,33 +593,57 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen } } - if (e.getSource().equals(determinationOnlyForFieldUnitsButton)){ + if (e.getSource().equals(this.determinationOnlyForFieldUnitsButton)) { String text = determinationOnlyForFieldUnitsButton.getText(); - text = text.replace(" (Use default)", ""); + if(text.startsWith(Messages.Preference_Use_Default)){ + isDeterminationOnlyForFieldUnits = null; + if (isAdminPreference){ + //showDeterminationOnlyForFieldUnits.setAllowOverride(true); + allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(true); + } + return; + } if (text.equals(Messages.GeneralPreference_yes)){ isDeterminationOnlyForFieldUnits = true; }else{ isDeterminationOnlyForFieldUnits = false; } } - if (e.getSource().equals(showTaxonAssociationButton)){ + + if (e.getSource().equals(this.showTaxonAssociationButton)) { String text = showTaxonAssociationButton.getText(); - text = text.replace(" (Use default)", ""); + if(text.startsWith(Messages.Preference_Use_Default)){ + isShowTaxonAssociation = null; + if (isAdminPreference){ + //showTaxonAssociation.setAllowOverride(true); + allowOverrideIsShowTaxonAssociationButton.setSelection(true); + } + return; + } if (text.equals(Messages.GeneralPreference_yes)){ isShowTaxonAssociation = true; }else{ isShowTaxonAssociation = false; } } - if (e.getSource().equals(showLifeFormButton)){ + + if (e.getSource().equals(this.showLifeFormButton)) { String text = showLifeFormButton.getText(); - text = text.replace(" (Use default)", ""); + if(text.startsWith(Messages.Preference_Use_Default)){ + isShowLifeForm = null; + if (isAdminPreference){ + //showLifeForm.setAllowOverride(true); + allowOverrideShowLifeFormButton.setSelection(true); + } + return; + } if (text.equals(Messages.GeneralPreference_yes)){ isShowLifeForm = true; }else{ isShowLifeForm = false; } } + } /**