fix #9066: visibility of specimen list editor configurable
authorKatja Luther <k.luther@bgbm.org>
Fri, 12 Jun 2020 10:26:53 +0000 (12:26 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 12 Jun 2020 10:26:53 +0000 (12:26 +0200)
eu.etaxonomy.taxeditor.bulkeditor/fragment.e4xmi
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SpecimenAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencePropertyTester.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java

index 2389974eea9f375884836f0cfe9e1ffd33c59dc4..702acaf8446bb6bec35f37d774391c458fafea60 100644 (file)
@@ -51,7 +51,7 @@
       </children>
       <children xsi:type="menu:MenuSeparator" xmi:id="_liWNsKLFEeeZb4PEjoRsuw" elementId="eu.etaxonomy.taxeditor.bulkeditor.menuseparator.7"/>
       <children xsi:type="menu:HandledMenuItem" xmi:id="_ob4moKLFEeeZb4PEjoRsuw" elementId="eu.etaxonomy.taxeditor.bulkeditor.handledmenuitem.specimen" label="%handledmenuitem.label.8" tooltip="%handledmenuitem.label.8" command="_Kc-ToCAzEeeepOgM49meig">
-        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_sEquQMu6EeiGO4eKaXkw0w" coreExpressionId="isShowSpecimenMenuEnabled"/>
+        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_sEquQMu6EeiGO4eKaXkw0w" coreExpressionId="isShowSpecimenListMenuEnabled"/>
         <parameters xmi:id="_ob4moaLFEeeZb4PEjoRsuw" elementId="eu.etaxonomy.taxeditor.bulkeditor.parameter.input.occurrence" name="taxeditor-bulkeditor.commandParameter.inputType" value="bulkeditor.input.occurrence"/>
       </children>
     </elements>
index 0db81c6c4c376c49570884f072e6b0f09d0b0738..024fb2a9d71af8fe6d093c737e45dceffee2aae1 100755 (executable)
          class="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester"
          id="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester"
          namespace="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester"
-         properties="isShowExperimentalFeatures, isChecklistEditorEnabled, isShowIOMenuEnabled, isShowSpecimenMenuEnabled"
+         properties="isShowExperimentalFeatures, isChecklistEditorEnabled, isShowIOMenuEnabled, isShowSpecimenMenuEnabled, isShowSpecimenListMenuEnabled"
          type="java.lang.Object">
    </propertyTester>
    <propertyTester
             property="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester.isShowSpecimenMenuEnabled">
       </test>
    </definition>
+   <definition
+         id="isShowSpecimenListMenuEnabled">
+      <test
+            property="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester.isShowSpecimenListMenuEnabled">
+      </test>
+   </definition>
    <definition
          id="isModifiable">
       <with
          name="%page.name.105">
    </page>
    <page
-         category="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+         category="eu.etaxonomy.taxeditor.preference.UIPreferences"
          class="eu.etaxonomy.taxeditor.preference.DistributionDetailsViewPreference"
          id="eu.etaxonomy.taxeditor.preference.DistributionDetailsViewPreference"
          name="%page.name.107">
             id="eu.etaxonomy.taxeditor.store.checklist"
             name="%page.name.21">
       </page>
+      <page
+         category="eu.etaxonomy.taxeditor.store.UIAdminPreference"
+         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionDetailsViewAdminPreference"
+         id="eu.etaxonomy.taxeditor.preference.DistributionDetailsViewPreference"
+         name="%page.name.107">
+      </page>
       <page 
             category="eu.etaxonomy.taxeditor.store.Distribution"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionStatusAdminPreference"
index e2a13f42cd3e63b2945d8e6aaa105032ef3da858..343b380985f62fad8c46f7d9f3714c2a4bfedef1 100755 (executable)
@@ -56,6 +56,17 @@ public class SpecimenAdminPreferences extends SpecimenOrObservationPreferences i
                 this.allowOverrideShowSpecimenRelatedIssues = true;
             }
 
+            key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimenListEditor);
+            CdmPreference isShowSpecimenListEditorPref = service.find(key);
+            if (isShowSpecimenListEditorPref != null){
+                this.isShowListEditor = isShowSpecimenListEditorPref.getValue() != null? Boolean.valueOf(isShowSpecimenListEditorPref.getValue()): null;
+                this.allowOverrideShowListEditor = isShowSpecimenListEditorPref.isAllowOverride();
+            }else{
+//                this.isShowCollectingAreaInGeneralSection = (Boolean) PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue();
+                this.allowOverrideShowListEditor = true;
+            }
+
+
             key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
             CdmPreference isShowCollectingAreaInGeneralSectionPref = service.find(key);
             if (isShowCollectingAreaInGeneralSectionPref != null){
@@ -111,6 +122,15 @@ public class SpecimenAdminPreferences extends SpecimenOrObservationPreferences i
                 pref.setAllowOverride(allowOverrideShowCollectingAreaInGeneralSection);
                 service.set(pref);
             }
+
+            if (isShowListEditor == null && allowOverrideShowListEditor){
+                service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimenListEditor));
+            }else{
+                pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowSpecimenListEditor, this.isShowListEditor != null? Boolean.toString(this.isShowListEditor): null);
+                pref.setAllowOverride(allowOverrideShowListEditor);
+                service.set(pref);
+            }
+
             if (isShowSpecimenRelatedIssues == null && allowOverrideShowSpecimenRelatedIssues){
                 service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimen));
             }else{
index e29d18794b3590011deb682b3bc72978a1c5551b..759741cc8252bd6c2e8ef9105e7e8ef047226c67 100644 (file)
@@ -302,6 +302,7 @@ public class Messages extends NLS {
     public static String DatabasePreferncesPage_Is_redList;
     public static String DatabasePreferncesPage_Determination_only_for_field_unnits;
     public static String DatabasePreferncesPage_Show_Collecting_Areas_in_general_section;
+    public static String DatabasePreferncesPage_Show_Specimen_List_Editor;
     public static String DatabasePreferncesPage_Taxon_Associations;
     public static String DatabasePreferncesPage_Life_Form;
 
index b4c1f9c1a7bbdbe97d110b20c68130fd55c3424e..81eebd1a8dc49a6fffa908f26e1d2d9ffd026e94 100644 (file)
@@ -236,6 +236,7 @@ SetSecundumConfiguration_Title=Configuration
 DatabasePreferncesPage_Is_redList=Red List 2020
 DatabasePreferncesPage_Determination_only_for_field_unnits=Determinations only for field units
 DatabasePreferncesPage_Show_Collecting_Areas_in_general_section=Collecting areas in general section
+DatabasePreferncesPage_Show_Specimen_List_Editor=Show specimen list editor
 DatabasePreferncesPage_Taxon_Associations=Taxon associations in details view
 
 DatabasePreferencesPage_Biocase_Provider=Biocase provider
index 92afa24e6e26ae10b3113c9028958a2ca71abd04..aa275f45dc78db450a56b94f2fcada3c52cdde2f 100644 (file)
@@ -235,6 +235,7 @@ SetSecundumConfiguration_Title=Konfiguration
 DatabasePreferncesPage_Is_redList=Rote Liste 2020
 DatabasePreferncesPage_Determination_only_for_field_unnits=Bestimmungen nur für Field Units anzeigen
 DatabasePreferncesPage_Show_Collecting_Areas_in_general_section=Sammelgebiete im allgemeinen Teil anzeigen
+DatabasePreferncesPage_Show_Specimen_List_Editor=Specimen List Editor anzeigen
 DatabasePreferncesPage_Taxon_Associations=Taxon Assoziationen im Details View anzeigen
 
 DatabasePreferencesPage_Biocase_Provider=Biocase Provider
index d2c24b8face02608cfe904f67c71bb3d1661d903..31da9178aac2fbda404d3448029d4ee2b8bbe9e8 100644 (file)
@@ -29,6 +29,8 @@ public class PreferencePropertyTester extends PropertyTester {
 
     private static final String SHOW_SPECIMEN_MENU = "isShowSpecimenMenuEnabled";
 
+    private static final String SHOW_SPECIMEN_LIST_MENU = "isShowSpecimenListMenuEnabled";
+
        @Override
        public boolean test(Object receiver, String property, Object[] args,
                        Object expectedValue) {
@@ -44,6 +46,9 @@ public class PreferencePropertyTester extends PropertyTester {
         }
            if(SHOW_SPECIMEN_MENU.equals(property)){
             return isShowSpecimenMenuEnabled();
+        }
+           if(SHOW_SPECIMEN_LIST_MENU.equals(property)){
+            return isShowSpecimenListMenuEnabled();
         }
                return false;
        }
@@ -66,4 +71,8 @@ public class PreferencePropertyTester extends PropertyTester {
         return PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey());
     }
 
+       private boolean isShowSpecimenListMenuEnabled() {
+        return PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey()) && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimenListEditor.getKey());
+    }
+
 }
index 799b6831a5e193dbac5b1cbcc3f22d2c0f464602..74cca69cb170428f5f33b3e8038deec9c8f4f409 100644 (file)
@@ -52,6 +52,10 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
     protected Boolean isShowLifeForm;
     protected boolean allowOverrideShowLifeForm;
     protected boolean overrideShowLifeForm;
+    protected Boolean isShowListEditor;
+    protected boolean allowOverrideShowListEditor;
+    protected boolean overrideShowListEditor;
+
     Composite composite;
 
     protected Combo showSpecimenButton;
@@ -64,12 +68,15 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
     protected Button allowOverrideIsShowTaxonAssociationButton;
     protected Button allowOverrideShowLifeFormButton;
     protected Combo showLifeFormButton;
+    protected Button allowOverrideShowListEditorButton;
+    protected Combo showListEditorButton;
 
     CdmPreference showSpecimenPref;
     CdmPreference showCollectingAreaInGeneralSection;
     CdmPreference showDeterminationOnlyForFieldUnits;
     CdmPreference showTaxonAssociation;
     CdmPreference showLifeForm;
+    CdmPreference showListEditor;
 
     @Override
     public void init() {
@@ -155,6 +162,43 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
         separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
         separator.setLayoutData(gridData);
 
+        showListEditorButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowSpecimenListEditor, Messages.DatabasePreferncesPage_Show_Specimen_List_Editor, isAdminPreference);
+
+        showListEditorButton.addSelectionListener(this);
+        index = 0;
+        for (String itemLabel : showListEditorButton.getItems()) {
+            if (isShowListEditor == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+                showListEditorButton.select(index);
+                break;
+            }
+            if (isShowListEditor != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowListEditor){
+                showListEditorButton.select(index);
+                break;
+            }
+            if (isShowListEditor != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowListEditor){
+                showListEditorButton.select(index);
+                break;
+            }
+            index++;
+        }
+        if (isAdminPreference){
+            allowOverrideShowListEditorButton = createAllowOverrideButton(composite);
+            allowOverrideShowListEditorButton.setSelection(allowOverrideShowListEditor);
+//            allowOverrideShowCollectingAreaButton.setEnabled(isShowCollectingAreaInGeneralSection != null);
+            allowOverrideShowListEditorButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
+                    allowOverrideShowListEditor = allowOverrideShowListEditorButton.getSelection();
+                }
+            });
+        }
+        isEditingAllowed = true;
+        if (showListEditor != null && !showListEditor.isAllowOverride() ){
+               isEditingAllowed = false;
+        }
+        showListEditorButton.setEnabled(isEditingAllowed);
+
         showCollectingAreaInGeneralSectionButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.ShowCollectingAreasInGeneralSection, Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section, isAdminPreference);
 
         showCollectingAreaInGeneralSectionButton.addSelectionListener(this);
@@ -347,6 +391,29 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
             showSpecimenPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowSpecimen, PreferencePredicate.ShowSpecimen.getDefaultValue() != null ?  PreferencePredicate.ShowSpecimen.getDefaultValue().toString(): null);
         }
 
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimenListEditor);
+        showListEditor = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSpecimenListEditor);
+
+        overrideShowListEditor = PreferencesUtil.getBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimenListEditor.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimenListEditor.getKey()), true): false;
+        if (showListEditor != null) {
+            if (showListEditor.isAllowOverride() ) {
+                if (overrideShowListEditor){
+                    isShowListEditor = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimenListEditor.getKey(), true);
+                }
+            } else {
+                isShowListEditor = Boolean.valueOf(showListEditor.getValue());
+            }
+
+        } else {
+            if(!overrideShowListEditor){
+                isShowListEditor = null;
+            }else{
+                isShowListEditor = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimenListEditor.getKey(), true);
+            }
+            showListEditor = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowSpecimenListEditor, PreferencePredicate.ShowSpecimenListEditor.getDefaultValue() != null ?  PreferencePredicate.ShowSpecimenListEditor.getDefaultValue().toString(): null);
+        }
 
 
 
@@ -474,6 +541,14 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
         PreferencesUtil.setBooleanValue(
                 PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimen.getKey()),
                 override);
+        override = false;
+        if (isShowListEditor != null ) {
+            override = true;
+            PreferencesUtil.setStringValue(PreferencePredicate.ShowSpecimenListEditor.getKey(), isShowListEditor.toString());
+        }
+        PreferencesUtil.setBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimenListEditor.getKey()),
+                override);
 
         override = false;
         if (isShowCollectingAreaInGeneralSection != null ) {
@@ -525,19 +600,28 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
             allowOverrideShowSpecimenRelatedIssues = true;
             allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
         }
+
+        isShowListEditor = null;
+        showListEditorButton.select(0);
+
+        if (allowOverrideShowListEditorButton != null){
+            allowOverrideShowListEditor = true;
+            allowOverrideShowListEditorButton.setSelection(allowOverrideShowListEditor);
+        }
+
         isShowCollectingAreaInGeneralSection = null;
         showCollectingAreaInGeneralSectionButton.select(0);
 
         if (allowOverrideShowCollectingAreaButton != null){
             allowOverrideShowCollectingAreaInGeneralSection = true;
-            allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+            allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowCollectingAreaInGeneralSection);
         }
         isDeterminationOnlyForFieldUnits = null;
         determinationOnlyForFieldUnitsButton.select(0);
 
         if (allowOverridesDeterminationOnlyForFieldUnitsButton != null){
             allowOverrideDeterminationOnlyForFieldUnits = true;
-            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits);
         }
 
         isShowTaxonAssociation = null;
@@ -545,7 +629,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
 
         if (allowOverrideIsShowTaxonAssociationButton != null){
             allowOverrideShowTaxonAssociation = true;
-            allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+            allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation);
         }
 
 
@@ -555,7 +639,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
 
         if (allowOverrideShowLifeFormButton != null){
             allowOverrideShowLifeForm = true;
-            allowOverrideShowLifeFormButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+            allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm);
         }
         setApply(true);
 
@@ -582,6 +666,20 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage implemen
            }
        }
 
+       if (e.getSource().equals(this.showListEditorButton)) {
+           String text = showListEditorButton.getText();
+           if(text.startsWith(Messages.Preference_Use_Default)){
+               isShowListEditor = null;
+               return;
+           }
+
+           if (text.equals(Messages.GeneralPreference_yes)){
+               isShowListEditor = true;
+           }else{
+               isShowListEditor = false;
+           }
+       }
+
        if (e.getSource().equals(this.showCollectingAreaInGeneralSectionButton)) {
            String text = showCollectingAreaInGeneralSectionButton.getText();
            if(text.startsWith(Messages.Preference_Use_Default)){