ref #8562: continue work on preference pages
authorKatja Luther <k.luther@bgbm.org>
Thu, 13 Feb 2020 10:54:41 +0000 (11:54 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 13 Feb 2020 10:54:41 +0000 (11:54 +0100)
22 files changed:
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/GeneralAdminPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/IOAdminPreferences.java [new file with mode: 0755]
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/AbcdImportPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractGeneralTermPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IOPreferences.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ListComponent.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CommonNameLanguagePreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/LanguageMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPerAreaStatusPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusPage.java

index bc8213f4b56deb9491575fd5a8c921600c473e47..579878321e37fdd9dfa300c3bc05bd42ee77ebb4 100644 (file)
@@ -188,6 +188,7 @@ partdescriptor.label.featureTreeEditor = Feature Tree Editor
 command.name.OPEN_REFERENCING_OBJECTS_VIEW = Open Referencing Objects View\r
 extension.name.1 = Store Workbench Model\r
 page.name.21 = Distribution Editor\r
+page.name.140 = Import/Export\r
 page.name.40 = ABCD Import\r
 page.name.41 = ABCD Import Provider\r
 page.name.42 = Serverside Preferences\r
index b87394b0e0e64d565b7a3a2394cb6caaf57f227d..993dcc1da673ecefa2c783a84e930c76fedf8669 100644 (file)
@@ -188,6 +188,7 @@ partdescriptor.label.featureTreeEditor = Merkmal-Baumeditor
 command.name.OPEN_REFERENCING_OBJECTS_VIEW = Öffne Referenzierende Objekte
 extension.name.1 = Store Workbench Model
 page.name.21 = Verbreitungs-Editor
+page.name.140 = Import/Export
 page.name.40 = ABCD Import
 page.name.41 = Biocase Provider
 page.name.42 = Serverseitige Präferenzen
index f1fc9ff9360a14f907bd8eaa8cff34311bd1ae2d..b24cea206157e172c9ba5c0d122f4eea1692f014 100755 (executable)
 </extension>
 <extension
       point="eu.etaxonomy.taxeditor.store.preferencePage">
-<page
+    <page
          category="eu.etaxonomy.taxeditor.preferences.general"
          class="eu.etaxonomy.taxeditor.preference.DebugPreferences"
          id="eu.etaxonomy.taxeditor.preference.DebugPreferences"
          name="%page.name.34">
-   </page>
-   <page
-            category="eu.etaxonomy.taxeditor.preferences.general"
-            class="eu.etaxonomy.taxeditor.preference.AbcdImportPreference"
-            id="eu.etaxonomy.taxeditor.store.abcdImportPreference"
-            name="%page.name.40">
-   </page>
-   <page
+    </page>
+    <page
+         category="eu.etaxonomy.taxeditor.preferences.general"
+         class="eu.etaxonomy.taxeditor.preference.IOPreferences"
+         id="eu.etaxonomy.taxeditor.store.IOPreferences"
+         name="%page.name.140">
+    </page>
+    <page
+         category="eu.etaxonomy.taxeditor.store.IOPreferences"
+         class="eu.etaxonomy.taxeditor.preference.AbcdImportPreference"
+         id="eu.etaxonomy.taxeditor.store.abcdImportPreference"
+         name="%page.name.40">
+    </page>
+    <page
          category="eu.etaxonomy.taxeditor.store.abcdImportPreference"
          class="eu.etaxonomy.taxeditor.preference.AbcdImportProvider"
          id="eu.etaxonomy.taxeditor.store.abcdImportProvider"
          name="%page.name.41">
-   </page>
-   <page
+    </page>
+    <page
          class="eu.etaxonomy.taxeditor.preference.TaxonomicEditorGeneralPreferences"
          id="eu.etaxonomy.taxeditor.preferences.general"
          name="%page.name">
-   </page>
-   <page
+    </page>
+    <page
          category="eu.etaxonomy.taxeditor.preferences.general"
          class="eu.etaxonomy.taxeditor.preference.FactualDataPreference"
          id="eu.etaxonomy.taxeditor.preferences.description"
          name="%page.name.0">
-   </page>
+    </page>
     <page
          category="eu.etaxonomy.taxeditor.preference.UIPreferences"
          class="eu.etaxonomy.taxeditor.preference.DescriptionPreferences"
          id="eu.etaxonomy.taxeditor.preferences.defaultFeatureTreePreferenecs"
          name="%page.name.22">
    </page>
-      <page
-            category="eu.etaxonomy.taxeditor.preferences.description"
-            class="eu.etaxonomy.taxeditor.preference.CommonNameVocabularyPreferencePage"
-            id="eu.etaxonomy.taxeditor.store.vocabularyPreference"
-            name="%page.name.47">
-      </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preferences.description"
+         class="eu.etaxonomy.taxeditor.preference.CommonNameVocabularyPreferencePage"
+         id="eu.etaxonomy.taxeditor.store.vocabularyPreference"
+         name="%page.name.47">
+   </page>
    <page
          category="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
          class="eu.etaxonomy.taxeditor.preference.LanguageRepresentationPreferencePage"
             id="eu.etaxonomy.taxeditor.store.page2"
             name="%page.name.43">
       </page>
-      <page
+       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.IOAdminPreferences"
+            id="eu.etaxonomy.taxeditor.store.IOPreference"
+            name="%page.name.140">
+      </page>
+      <page
+            category="eu.etaxonomy.taxeditor.store.IOPreference"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.AbcdImportAdminPreference"
             id="eu.etaxonomy.taxeditor.store.abcdImportPreference"
             name="%page.name.40">
index 54235a6518c2885b728e285aff17ac3284afab49..69928afd0c93d71f8c4b96d333823bc410270ecc 100755 (executable)
@@ -8,15 +8,10 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.taxeditor.preference.GeneralPreferencePage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
@@ -25,7 +20,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class GeneralAdminPreferencePage extends GeneralPreferencePage implements IE4AdminPreferencePage {
 
-    ICdmRepository controller = null;
+
     CdmPreference isShowSpecimenPref = null;
     /**
      * {@inheritDoc}
@@ -34,99 +29,33 @@ public class GeneralAdminPreferencePage extends GeneralPreferencePage implements
 
     @Override
     public boolean performOk() {
-
         if (!isApply()){
             return true;
         }
-       if (controller != null){
-           IPreferenceService service = controller.getPreferenceService();
-           CdmPreference pref;
-           if (isShowIOMenu == null && isAllowOverrideShowIOMenu){
-               service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu));
-           }else{
-               pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowImportExportMenu, isShowIOMenu!= null? Boolean.toString(this.isShowIOMenu):null);
-               pref.setAllowOverride(isAllowOverrideShowIOMenu);
-               service.set(pref);
-           }
-
-           if(isShowCheckListPerspective == null && isAllowOverrideShowCheckListPerspective){
-               service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective));
-           }else{
-               pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowChecklistPerspective, isShowCheckListPerspective != null?Boolean.toString(this.isShowCheckListPerspective): null);
-               pref.setAllowOverride(isAllowOverrideShowCheckListPerspective);
-               service.set(pref);
-           }
-
-
-           PreferencesUtil.updateDBPreferences();
+        CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowChecklistPerspective, isShowCheckListPerspective!= null? Boolean.toString(this.isShowCheckListPerspective):null);
+        pref.setAllowOverride(isAllowOverrideShowCheckListPerspective);
+        PreferencesUtil.setPreferenceToDB(pref);
+        setApply(false);
+        return true;
 
-
-       }
-       return true;
    }
     @Override
     protected void getValues(){
         isAdminPreference = true;
-
-        controller = CdmStore.getCurrentApplicationConfiguration();
-        if (controller != null){
-          IPreferenceService service = controller.getPreferenceService();
-          PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
-          CdmPreference pref = service.find(key);
-          if (pref != null){
-              isShowIOMenu = pref.getValue()!= null?Boolean.valueOf(pref.getValue()): null;
-              isAllowOverrideShowIOMenu = pref.isAllowOverride();
-          }else{
-              isShowIOMenu = null;
-              isAllowOverrideShowIOMenu = true;
-          }
-
-//          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowMediaView);
-//          pref = service.find(key);
-//          if (pref != null){
-//              isShowMediaView = Boolean.valueOf(pref.getValue());
-//              isAllowOverrideShowMediaView = pref.isAllowOverride();
-//          }else{
-//              isShowMediaView = Boolean.valueOf(PreferencePredicate.ShowMediaView.getDefaultValue().toString());
-//              isAllowOverrideShowMediaView = true;
-//          }
-
-          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
-          pref = service.find(key);
-          if (pref != null){
-              isShowCheckListPerspective = pref.getValue()!= null?Boolean.valueOf(pref.getValue()): null;
-              isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
-          }else{
-              isShowCheckListPerspective = null;
-              isAllowOverrideShowCheckListPerspective = true;
-          }
-
-          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
-          pref = service.find(key);
-//          if (pref != null){
-//              isShowTaxonNodeWizard = pref.getValue() != null?Boolean.valueOf(pref.getValue()): null;
-//              isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
-//          }else{
-//              isShowTaxonNodeWizard = null;
-//              isAllowOverrideShowTaxonNodeWizard = true;
-//          }
-      }
-
+        CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowChecklistPerspective);
+        if (pref != null){
+            isShowCheckListPerspective = pref.getValue()!= null?Boolean.valueOf(pref.getValue()): null;
+            isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
+        }else{
+            isShowCheckListPerspective = null;
+            isAllowOverrideShowCheckListPerspective = true;
+        }
     }
 
     @Override
     protected void performDefaults() {
-        isShowIOMenu = null;
         isShowCheckListPerspective = null;
-        //isShowTaxonNodeWizard = null;
-
-
-        isAllowOverrideShowIOMenu = true;
-
-
         isAllowOverrideShowCheckListPerspective = true;
-
-        //isAllowOverrideShowTaxonNodeWizard = true;
         setSelections();
         super.performDefaults();
     }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/IOAdminPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/IOAdminPreferences.java
new file mode 100755 (executable)
index 0000000..7648504
--- /dev/null
@@ -0,0 +1,56 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.IOPreferences;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author k.luther
+ * @since 11.02.2020
+ */
+public class IOAdminPreferences extends IOPreferences {
+    @Override
+    public boolean performOk() {
+       if (!isApply()){
+           return true;
+       }
+       showIOMenuPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowImportExportMenu, isShowIOMenu!= null? Boolean.toString(this.isShowIOMenu):null);
+       showIOMenuPref.setAllowOverride(isAllowOverrideShowIOMenu);
+       PreferencesUtil.setPreferenceToDB(showIOMenuPref);
+       setApply(false);
+       return true;
+
+    }
+
+    @Override
+    protected void getValues(){
+        isAdminPreference = true;
+        showIOMenuPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowImportExportMenu);
+        if (showIOMenuPref != null){
+              isShowIOMenu = showIOMenuPref.getValue()!= null?Boolean.valueOf(showIOMenuPref.getValue()): null;
+              isAllowOverrideShowIOMenu = showIOMenuPref.isAllowOverride();
+          }else{
+              isShowIOMenu = null;
+              isAllowOverrideShowIOMenu = true;
+          }
+    }
+
+    @Override
+    protected void performDefaults() {
+        isShowIOMenu = null;
+        isAllowOverrideShowIOMenu = true;
+
+        setSelections();
+        super.performDefaults();
+    }
+
+}
index 14eddf3024584fb52d0449cfaa06d9c62926a098..3c4caa532ac42282e9fb7227ad6bfdcd86da09ca 100644 (file)
@@ -728,6 +728,7 @@ public class Messages extends NLS {
     public static String SetAggregationConfiguration_Title;
     public static String StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE;
     public static String StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE;
+    public static String CommonNameLanguages_Title;
 
 
 
index 37fa52e9b556427b346bf8d3bff1bba8909081ca..e7d34fd2be69cf0b33965d30c0516b6c4f8e4544 100644 (file)
@@ -560,4 +560,5 @@ AggregationWizardPage_SUBTREE=Aggregation for selected subtree(s)
 AggregationWizardPage_SINGLE_TAXON=Aggregation only for
 SetAggregationConfiguration_Title=Aggregation configuration;
 StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Select subtree(s) for aggregation
-StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive data set should be aggregated, select the subtrees for the aggregation
\ No newline at end of file
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive data set should be aggregated, select the subtrees for the aggregation
+CommonNameLanguages_Title=Common Name Languages
\ No newline at end of file
index b74e920abf93f500cca1cce2d896b0f20e258da9..de223ddf768bf1b952ba877f859db5d1b004e224 100644 (file)
@@ -559,4 +559,5 @@ AggregationWizardPage_SUBTREE=Aggregation for selected subtree(s)
 AggregationWizardPage_SINGLE_TAXON=Aggregation only for 
 SetAggregationConfiguration_Title=Aggregationskonfiguration
 StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Select subtree(s) for aggregation
-StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive data set should be aggregated, select the subtrees for the aggregation
\ No newline at end of file
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive data set should be aggregated, select the subtrees for the aggregation
+CommonNameLanguages_Title=Sprachen für Trivialnamen
\ No newline at end of file
index 9b69bdc9e1051d92321377fe12cda2e2d62193a0..2000c15f58457fee25c2d13e942221cbdd24379b 100755 (executable)
@@ -10,6 +10,7 @@ package eu.etaxonomy.taxeditor.preference;
 
 import java.net.URI;
 
+import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -140,7 +141,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
 
         GridData gridData = new GridData();
         gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
-        gridData.horizontalIndent = 5;
+        gridData.horizontalIndent = 9;
         gridData.minimumWidth=100;
 //      classificationSelection.setLayoutData(gridData);
         Label unitIdLabel = new Label(composite, SWT.NONE);
@@ -238,6 +239,13 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         Label labelRef = new Label(composite, SWT.NONE);
         labelRef.setText("Biocase provider for associated DNA");
         textDNAProviderString = new Combo(composite, SWT.BORDER);
+
+        gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
+        gridData.horizontalIndent = 9;
+        gridData.minimumWidth=200;
+
+        textDNAProviderString.setLayoutData(gridData);
+        GridLayoutFactory.fillDefaults();
         String biocaseProvider = null;
         CdmPreference pref = null;
 
@@ -253,14 +261,16 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         }
 
         textDNAProviderString.setEnabled(true);
-        textDNAProviderString.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1));
+       // textDNAProviderString.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1));
         textDNAProviderString.addSelectionListener(this);
 
         Label nomenclaturalCodeLabel = new Label(composite, SWT.NONE);
         nomenclaturalCodeLabel.setText("Nomenclatural Code");
         nomenclaturalCodeSelectionCombo = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);
+        gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
+        gridData.horizontalIndent = 9;
         nomenclaturalCodeSelectionCombo.setLayoutData(gridData);
-
+        GridLayoutFactory.fillDefaults();
         for(NomenclaturalCode code: NomenclaturalCode.values()){
             nomenclaturalCodeSelectionCombo.add(code.getKey());
         }
@@ -271,7 +281,8 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         }
 
         Label sep = new Label(composite, SWT.HORIZONTAL|SWT.SEPARATOR);
-
+        sep.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, true, false));
+        GridLayoutFactory.fillDefaults();
         useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
         if (!isAdminPreference){
             useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
@@ -302,10 +313,11 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         }
         GridData gridDataLocal = new GridData();
         gridDataLocal = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
-        gridDataLocal.horizontalIndent = 9;
+       // gridDataLocal.horizontalIndent = 9;
         gridDataLocal.minimumWidth=100;
         gridDataLocal.widthHint= nomenclaturalCodeSelectionCombo.getBorderWidth();
         useLocalOrAdmin.setLayoutData(gridDataLocal);
+        GridLayoutFactory.fillDefaults();
         setSelections();
 
         return composite;
index 7e06b2d0cbb9a2a07394d7a07ea8536240122a2c..d5cc900c6ce91424ed2ea431ab20e8a66439505d 100755 (executable)
@@ -67,6 +67,13 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
 
     }
 
+    /**
+     * @param title
+     */
+    public AbstractGeneralTermPreference(String title) {
+        super(title);
+    }
+
     public boolean isLocalPref() {
         return !isAdminPreference;
     }
index 9af7c95b5554b16af3d9b0e3a2c80f983d4252c2..30879fba5f19f5636c4af4dc6c1884a7954bedab 100644 (file)
@@ -95,7 +95,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
         getValues();\r
         Composite composite = new Composite(parent, SWT.NULL);\r
         composite.setLayout(new GridLayout());\r
-        if (!isAdminPreference && distributionEditorPref != null && !distributionEditorPref.isAllowOverride()&& isEditorActivated != null && !isEditorActivated ) {\r
+        if (!isAdminPreference && distributionEditorPref != null && !distributionEditorPref.isAllowOverride() ) {\r
             Label label = new Label(composite, SWT.NONE);\r
             label.setText(\r
                     "The CDM settings don't allow to set the preferences for using the distribution editor locally. If you need to make local settings, please ask an administrator.");\r
@@ -731,8 +731,8 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 \r
     @Override\r
     protected void performDefaults() {\r
-        setApply(true);\r
 \r
+        setApply(true);\r
         isEditorActivated = null;\r
         activateCombo.select(0);\r
 \r
index 5cbd5cf6318b9aef3057b17e48b214176a9652d8..599f97ffb701fa3f2d2ba8a39cb2526f7e0c2529 100755 (executable)
@@ -452,6 +452,7 @@ public class DistributionStatusPreferencePage extends AbstractVocabularySelectio
         if (prefStatus == null){
             List<CdmPreference> prefsToDelete =cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
             PreferencesUtil.removeFromDB(prefsToDelete);
+            return true;
         }
 
         List<CdmPreference> toDelete = new ArrayList<>();
index dbdab956ec09bd70206e04db4709a8e2aed203a1..92cb11ad6d19656a7922a7c7a902cad168e62738 100755 (executable)
@@ -33,30 +33,17 @@ import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
  */
 public class GeneralPreferencePage extends CdmPreferencePage implements SelectionListener{
 
-
-    protected Boolean isShowIOMenu;
-//    protected boolean isShowMediaView;
     protected Boolean isShowCheckListPerspective;
 
-    protected boolean isAllowOverrideShowIOMenu;
     protected boolean isAllowOverrideShowMediaView;
     protected boolean isAllowOverrideShowCheckListPerspective;
 
-    protected boolean isOverrideShowIOMenu;
     protected boolean isOverrideShowMediaView;
     protected boolean isOverrideShowCheckListPerspective;
 
-
-    protected Combo showIOMenuButton;
-    protected Button allowOverrideShowIOMenuButton;
     protected Combo showChecklistPerspectiveButton;
     protected Button allowOverrideShowChecklistButton;
 
-    final String SHOW = Messages.GeneralPreference_yes;
-    final String DO_NOT_SHOW = Messages.GeneralPreference_no;
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Control createContents(Composite parent) {
         getValues();
@@ -68,24 +55,6 @@ public class GeneralPreferencePage extends CdmPreferencePage implements Selectio
         separator.setLayoutData(gridData);
         separator.setVisible(false);
 
-        showIOMenuButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowImportExportMenu, "Show Export/Import Menu",
-                isAdminPreference);
-
-        showIOMenuButton.addSelectionListener(this);
-
-
-        if (isAdminPreference){
-        allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
-
-
-            allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
-                    setApply(true);
-                }
-            });
-        }
 
 
         showChecklistPerspectiveButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowChecklistPerspective, "Set Checklist Perspective as Default Perspective",
@@ -105,19 +74,6 @@ public class GeneralPreferencePage extends CdmPreferencePage implements Selectio
             });
         }
 
-
-        if(!isAdminPreference){
-            if (!isAllowOverrideShowIOMenu){
-                showIOMenuButton.setEnabled(false);
-
-            }
-            if (!isAllowOverrideShowCheckListPerspective){
-                showChecklistPerspectiveButton.setEnabled(false);
-
-            }
-
-        }
-
         setSelections();
         return composite;
     }
@@ -137,45 +93,21 @@ public class GeneralPreferencePage extends CdmPreferencePage implements Selectio
 
 
         }
-        if (isAllowOverrideShowIOMenu){
-            if (isShowIOMenu != null){
-                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
-            }
-            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), isOverrideShowIOMenu);
-        }
-
-
+        return true;
+    }
 
-       return true;
-   }
     @Override
     protected void getValues(){
         isAdminPreference = false;
 
         CdmPreferenceCache cache = CdmPreferenceCache.instance();
-        isOverrideShowIOMenu = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true) != null?
-                PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true): false;
-        if (isOverrideShowIOMenu){
-            isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), true);
-        }
-
-
-        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
-        CdmPreference pref = cache.findBestMatching(key);
-        if (pref != null){
-            isAllowOverrideShowIOMenu = pref.isAllowOverride();
-        }else{
-            isAllowOverrideShowIOMenu = true;
-        }
-
         isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
         if (isOverrideShowCheckListPerspective){
             isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
         }
 
-
-        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
-        pref = cache.findBestMatching(key);
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
+        CdmPreference pref = cache.findBestMatching(key);
         if (pref != null){
             isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
         }else{
@@ -185,29 +117,8 @@ public class GeneralPreferencePage extends CdmPreferencePage implements Selectio
 
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void widgetSelected(SelectionEvent e) {
-
-        if (e.getSource().equals(this.showIOMenuButton)) {
-            String text = showIOMenuButton.getText();
-            if (text.startsWith(Messages.Preference_Use_Default)){
-                isOverrideShowIOMenu = false;
-                isShowIOMenu = null;
-
-            }else if (text.equals(SHOW)){
-                isShowIOMenu = true;
-                isOverrideShowIOMenu = true;
-
-            }else{
-                isShowIOMenu = false;
-                isOverrideShowIOMenu = true;
-            }
-        }
         if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
             String text = showChecklistPerspectiveButton.getText();
             if (text.startsWith(Messages.Preference_Use_Default)){
@@ -242,34 +153,14 @@ public class GeneralPreferencePage extends CdmPreferencePage implements Selectio
 
     @Override
     protected void performDefaults() {
-
-
         isOverrideShowCheckListPerspective = false;
         isShowCheckListPerspective = null;
 
-        isOverrideShowIOMenu = false;
-        isShowIOMenu = null;
         setSelections();
         setApply(true);
     }
 
     protected void setSelections(){
-        if (isShowIOMenu == null || (!isOverrideShowIOMenu && !isAdminPreference)){
-            showIOMenuButton.select(0);
-//            if (isAdminPreference){
-//                allowOverrideShowIOMenuButton.setEnabled(false);
-//            }
-        }else{
-//            if (isAdminPreference){
-//                allowOverrideShowIOMenuButton.setEnabled(true);
-//            }
-            if (isShowIOMenu){
-                showIOMenuButton.select(1);
-            }else{
-                showIOMenuButton.select(2);
-            }
-        }
-
         if (isShowCheckListPerspective == null || (!isOverrideShowCheckListPerspective && !isAdminPreference)){
             showChecklistPerspectiveButton.select(0);
         }else{
@@ -280,12 +171,8 @@ public class GeneralPreferencePage extends CdmPreferencePage implements Selectio
             }
         }
 
-
-
         if (isAdminPreference){
-            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
             allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
-
         }
     }
 
index 703c5a36bef9ac309e8570d7e083b5040b17e3cd..2277b8fa538e91492ec4254309f53eefcbbee866 100755 (executable)
@@ -25,6 +25,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class GeneralTermPreferencePage extends AbstractGeneralTermPreference<TermDto> {
 
+
+    public GeneralTermPreferencePage(String title) {
+        super(title);
+    }
+    public GeneralTermPreferencePage() {
+        super();
+    }
+
     @Override
     protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
         Collection<TermDto> termlist = new ArrayList<>();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IOPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IOPreferences.java
new file mode 100755 (executable)
index 0000000..23ed78e
--- /dev/null
@@ -0,0 +1,192 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since 11.02.2020
+ */
+public class IOPreferences extends CdmPreferencePage implements SelectionListener {
+
+    protected Boolean isShowIOMenu;
+    protected CdmPreference showIOMenuPref;
+    protected boolean isAllowOverrideShowIOMenu;
+    protected boolean isOverrideShowIOMenu;
+
+    protected Combo showIOMenuButton;
+    protected Button allowOverrideShowIOMenuButton;
+
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+        final Composite composite = createComposite(parent);
+
+        GridData gridData = createTextGridData();
+        if (!isAdminPreference && showIOMenuPref != null && !showIOMenuPref.isAllowOverride() ) {
+            Label label = new Label(composite, SWT.NONE);
+            label.setText(
+                    "The CDM settings don't allow to set the preferences for using the distribution editor locally. If you need to make local settings, please ask an administrator.");
+            this.setDefaultButtonActivated(false);
+        } else {
+            Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
+            separator.setLayoutData(gridData);
+            separator.setVisible(false);
+            showIOMenuButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowImportExportMenu, "Show Export/Import Menu",
+                    isAdminPreference);
+
+            int index = 0;
+            for (String itemLabel : showIOMenuButton.getItems()) {
+                if (isShowIOMenu == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+                    showIOMenuButton.select(index);
+                    break;
+                }
+                if (isShowIOMenu != null && itemLabel.equals(SHOW) && isShowIOMenu){
+                    showIOMenuButton.select(index);
+                    break;
+                }
+                if (isShowIOMenu != null && itemLabel.equals(DO_NOT_SHOW) && !isShowIOMenu){
+                    showIOMenuButton.select(index);
+                    break;
+                }
+                index++;
+            }
+
+            showIOMenuButton.addSelectionListener(this);
+
+
+            if (isAdminPreference){
+                allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
+                allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
+                        setApply(true);
+                    }
+                });
+                allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
+
+            }
+            if(!isAdminPreference){
+                if (!isAllowOverrideShowIOMenu){
+                    showIOMenuButton.setEnabled(false);
+                }
+            }
+        }
+        return composite;
+
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+
+        if (isAllowOverrideShowIOMenu){
+            if (isShowIOMenu != null){
+                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
+            }
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), isOverrideShowIOMenu);
+        }
+
+
+
+       return true;
+   }
+
+    @Override
+    protected void getValues(){
+        isAdminPreference = false;
+
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        isOverrideShowIOMenu = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true) != null?
+                PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true): false;
+        if (isOverrideShowIOMenu){
+            isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), true);
+        }
+
+
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
+        showIOMenuPref = cache.findBestMatching(key);
+        if (showIOMenuPref != null){
+            isAllowOverrideShowIOMenu = showIOMenuPref.isAllowOverride();
+        }else{
+            isAllowOverrideShowIOMenu = true;
+        }
+    }
+
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        setApply(true);
+        if (e.getSource().equals(this.showIOMenuButton)) {
+            String text = showIOMenuButton.getText();
+            if (text.startsWith(Messages.Preference_Use_Default)){
+                isOverrideShowIOMenu = false;
+                isShowIOMenu = null;
+
+            }else if (text.equals(SHOW)){
+                isShowIOMenu = true;
+                isOverrideShowIOMenu = true;
+
+            }else{
+                isShowIOMenu = false;
+                isOverrideShowIOMenu = true;
+            }
+        }
+    }
+
+    @Override
+    protected void performDefaults() {
+        isOverrideShowIOMenu = false;
+        isShowIOMenu = null;
+        setSelections();
+        setApply(true);
+    }
+
+    protected void setSelections(){
+        if (isShowIOMenu == null || (!isOverrideShowIOMenu && !isAdminPreference)){
+            showIOMenuButton.select(0);
+        }else{
+            if (isShowIOMenu){
+                showIOMenuButton.select(1);
+            }else{
+                showIOMenuButton.select(2);
+            }
+        }
+        if (isAdminPreference){
+            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
+        }
+    }
+
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
+
+}
index 8a6f4730682552b9ccc14a6d257ada97a547dd97..780267e980defa341d08f726c98bd7c6b1247d00 100755 (executable)
@@ -10,11 +10,21 @@ package eu.etaxonomy.taxeditor.preference;
 
 
 import java.awt.Toolkit;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
 import java.net.URL;
+import java.util.ArrayList;
 
 import javax.swing.event.DocumentEvent;
 
 import org.apache.commons.lang.StringUtils;
+import org.eclipse.equinox.internal.p2.ui.misc.StringMatcher;
+import org.eclipse.jface.fieldassist.ComboContentAdapter;
+import org.eclipse.jface.fieldassist.ContentProposalAdapter;
+import org.eclipse.jface.fieldassist.IContentProposal;
+import org.eclipse.jface.fieldassist.IContentProposalProvider;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
@@ -25,11 +35,15 @@ import org.eclipse.swt.events.MouseListener;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.List;
 import org.eclipse.swt.widgets.Text;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
@@ -51,12 +65,13 @@ public class ListComponent implements ModifyListener
     private static final String noProvider = Messages.ListComponent_NO_PROVIDER_AVAILABLE;
     private static final String serverSidePreference = "Server Side Preference:";
     private Button removeButton;
-    private Text providerURI;
+    private Combo providerURI;
     protected Label labelException;
     boolean isAdmin = false;
     CdmPreferencePage preferencePage;
     CdmPreference providerListPreference;
     String providerList;
+    String[] items;
 
 
     public CdmPreference getProviderListPreference() {
@@ -129,12 +144,92 @@ public class ListComponent implements ModifyListener
         list.setLayoutData(dataList);
 
 
-        providerURI = new Text(parent, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
+        providerURI = new Combo(parent, SWT.BORDER);
+
+        URL url;
+        String response = null;
+        try {
+            url = new URL("https://www.biocase.org/whats_biocase/gbif_biocase.cgi");
+
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            conn.setRequestProperty("Accept", "application/json");
+    //        conn.setConnectTimeout(TIMEOUT*9);
+    //        conn.setReadTimeout(TIMEOUT*9);
+
+            if (conn.getResponseCode() != 200) {
+                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
+            }
+            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
+
+            StringBuilder  builder = new StringBuilder();
+            String line;
+            while ((line = br.readLine()) != null) {
+                builder.append(line);
+            }
+            conn.disconnect();
+            response = builder.toString();
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        JSONArray jsonResponseArray;
+        try {
+            jsonResponseArray =new JSONArray(response);
+
+            int i = 0;
+            String service_url = null;
+            items = new String[jsonResponseArray.length()];
+            while (i<jsonResponseArray.length()){
+                JSONObject object = jsonResponseArray.getJSONObject(i);
+                service_url = (String) object.get("service_url");
+                if (service_url != null){
+                    providerURI.add(service_url);
+                    items[i] = service_url;
+                }
+                i++;
+            }
+
+        } catch (JSONException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+
         GridData dataProviderUri = new GridData();
         dataProviderUri.horizontalAlignment = GridData.FILL;
         dataProviderUri.horizontalSpan = 3;
         providerURI.setLayoutData(dataProviderUri);
-        providerURI.addModifyListener(this);
+      //  providerURI.setVisible(false);
+
+        ContentProposalAdapter adapter = new ContentProposalAdapter(providerURI, new ComboContentAdapter(), getProposalProvider(), null, null);
+        adapter.setPropagateKeys(true);
+        adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
+//        String[] proposals = new String[providerURI.getItems().length];
+//
+//        for (int i = 0; i < providerURI.getItems().length; i++) {
+//            proposals[i] = providerURI.getItem(i);
+//        }
+//
+//        ComboViewer comboViewer = new ComboViewer(parent, SWT.NONE);
+//        comboViewer.setContentProvider(new ArrayContentProvider());
+//        comboViewer.setLabelProvider(new LabelProvider(){
+//            @Override
+//            public String getText(final Object element){
+//              if(element instanceof String){
+//                return (String) element;
+//              }
+//              return element.toString();
+//            }
+//        });
+//        comboViewer.setInput(proposals);
+//        // additionally, configure the comboViewer arbitrary
+//        AutoCompleteField field = new AutoCompleteField(comboViewer.getCombo(), new ComboContentAdapter(), proposals);
+
+
+
+
+        //providerURI.addModifyListener(this);
         labelException = new Label(parent, SWT.NULL);
         labelException.setText("");
 
@@ -152,6 +247,69 @@ public class ListComponent implements ModifyListener
     }
 
 
+    /**
+     * @return
+     */
+    IContentProposalProvider getProposalProvider() {
+        return new IContentProposalProvider() {
+            @Override
+            public IContentProposal[] getProposals(String contents, int position) {
+                //String[] items = getStringItems();
+                if (contents.length() == 0 || items.length == 0) {
+                    return new IContentProposal[0];
+                }
+                StringMatcher matcher = new StringMatcher("*" + contents + "*", true, false); //$NON-NLS-1$ //$NON-NLS-2$
+                ArrayList<String> matches = new ArrayList<String>();
+                for (int i = 0; i < items.length; i++) {
+                    if (matcher.match(items[i])) {
+                        matches.add(items[i]);
+                    }
+                }
+
+                // We don't want to autoactivate if the only proposal exactly matches
+                // what is in the combo.  This prevents the popup from
+                // opening when the user is merely scrolling through the combo values or
+                // has accepted a combo value.
+                if (matches.size() == 1 && matches.get(0).equals(providerURI.getText())) {
+                    return new IContentProposal[0];
+                }
+
+                if (matches.isEmpty()) {
+                    return new IContentProposal[0];
+                }
+
+                // Make the proposals
+                IContentProposal[] proposals = new IContentProposal[matches.size()];
+                for (int i = 0; i < matches.size(); i++) {
+                    final String proposal = matches.get(i);
+                    proposals[i] = new IContentProposal() {
+
+                        @Override
+                        public String getContent() {
+                            return proposal;
+                        }
+
+                        @Override
+                        public int getCursorPosition() {
+                            return proposal.length();
+                        }
+
+                        @Override
+                        public String getDescription() {
+                            return null;
+                        }
+
+                        @Override
+                        public String getLabel() {
+                            return null;
+                        }
+                    };
+                }
+                return proposals;
+            }
+        };
+    }
+
     public boolean isAdmin() {
         return isAdmin;
     }
@@ -276,7 +434,7 @@ public class ListComponent implements ModifyListener
             //User didn't type in a unique name...
             if (name.equals("") || alreadyInList(name) || !StringUtils.isBlank(labelException.getText())) { //$NON-NLS-1$
                 Toolkit.getDefaultToolkit().beep();
-                providerURI.selectAll();
+                //providerURI.selectAll();
                 return;
             }
 
@@ -312,7 +470,7 @@ public class ListComponent implements ModifyListener
         for (String item: list.getItems()){
             if (item.equals(noProvider) || item.equals(serverSidePreference)){
                 //do nothing
-            }else if (first || allProviderString == null || allProviderString == ""){ //$NON-NLS-1$
+            }else if (first || StringUtils.isBlank(allProviderString)){ //$NON-NLS-1$
                 allProviderString = item.trim();
                 first = false;
             }else {
index acdf255cfed4f45d0e967eca7c62fd97ea0e2fd4..ccef7c3df9aada9633eecb19de889dbafcc61bef 100644 (file)
@@ -57,7 +57,6 @@ import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
-import eu.etaxonomy.cdm.model.metadata.IKeyLabel;
 import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
@@ -232,44 +231,74 @@ public class PreferencesUtil implements IPreferenceKeys {
         String overrideKey =  createPreferenceString(createOverridePreferenceString(name));
         boolean override = getPreferenceStore().getBoolean(overrideKey);
 
-        if (local || pref == null || (pref != null && pref.isAllowOverride() && override)){
+
+        if (local || (pref == null && override)|| (pref != null && pref.isAllowOverride() && override)){
+            //local preference
             String dbSpecific = prefKey(name);
             if (getPreferenceStore().contains(dbSpecific)){
-                prefValue = getPreferenceStore().getString(dbSpecific);
-            }else{
-                prefValue = getPreferenceStore().
-                        getString(name);
+                return getPreferenceStore().getString(dbSpecific);
             }
-            if (StringUtils.isBlank(prefValue) || (pref == null && !override)){
-                IPreferencePredicate pred = PreferencePredicate.getByKey(name);
-                if (pred != null){
-                    if (pred.getDefaultValue() instanceof String){
-                        return (String)pred.getDefaultValue();
-                    }else if (pred.getDefaultValue() != null){
-                        return pred.getDefaultValue().toString();
-                    }
-                }
-                return prefValue;
+         }else if (pref != null){
+             //db preference
+             if (pref.getValue() == null){
+                 Object result = PreferencePredicate.getByKey(pref.getPredicate()).getDefaultValue();
+                 if (result instanceof String){
+                     return (String)result;
+                 }else{
+                     return result.toString();
+                 }
+             }
+            return pref.getValue();
+        }
+        //no override but default value
+        IPreferencePredicate pred = PreferencePredicate.getByKey(name);
+        if (pred != null){
+            if (pred.getDefaultValue() instanceof String){
+                return (String)pred.getDefaultValue();
+            }else if (pred.getDefaultValue() != null){
+                return pred.getDefaultValue().toString();
             }
+        }
+        return null;
 
-       }else if (pref != null){
-           if (pref.getValue() == null){
-               Object result = PreferencePredicate.getByKey(pref.getPredicate()).getDefaultValue();
-               if (result instanceof String){
-                   return (String)result;
-               }else{
-                   if (result == null){
-                       return null;
-                   }
-                   if (result instanceof IKeyLabel){
-                       return ((IKeyLabel)result).getKey();
-                   }
-                   return result.toString();
-               }
-           }
-           prefValue = pref.getValue();
-       }
-        return prefValue;
+//        if (local || (pref == null && override) || (pref != null && pref.isAllowOverride() && override)){
+//            String dbSpecific = prefKey(name);
+//            if (getPreferenceStore().contains(dbSpecific)){
+//                prefValue = getPreferenceStore().getString(dbSpecific);
+//            }else{
+//                prefValue = getPreferenceStore().
+//                        getString(name);
+//            }
+//            if (StringUtils.isBlank(prefValue) || (pref == null && !override)){
+//                IPreferencePredicate pred = PreferencePredicate.getByKey(name);
+//                if (pred != null){
+//                    if (pred.getDefaultValue() instanceof String){
+//                        return (String)pred.getDefaultValue();
+//                    }else if (pred.getDefaultValue() != null){
+//                        return pred.getDefaultValue().toString();
+//                    }
+//                }
+//                return prefValue;
+//            }
+//
+//       }else if (pref != null){
+//           if (pref.getValue() == null){
+//               Object result = PreferencePredicate.getByKey(pref.getPredicate()).getDefaultValue();
+//               if (result instanceof String){
+//                   return (String)result;
+//               }else{
+//                   if (result == null){
+//                       return null;
+//                   }
+//                   if (result instanceof IKeyLabel){
+//                       return ((IKeyLabel)result).getKey();
+//                   }
+//                   return result.toString();
+//               }
+//           }
+//           prefValue = pref.getValue();
+//       }
+//        return prefValue;
 
     }
 
@@ -309,13 +338,9 @@ public class PreferencesUtil implements IPreferenceKeys {
         }catch(NumberFormatException e){
             logger.debug("Preference value of " + name + " is not a number");
         }
-
         String overrideKey =  createPreferenceString(createOverridePreferenceString(name));
-        boolean override = true;
-        if (getPreferenceStore().contains(overrideKey)){
-            override = getPreferenceStore().getBoolean(overrideKey);
-        }
-        if (local || pref == null || (pref != null && pref.isAllowOverride() && override)){
+        boolean override = getPreferenceStore().getBoolean(overrideKey);
+        if (local || (pref == null && override) || (pref != null && pref.isAllowOverride() && override)){
             String dbSpecific = prefKey(name);
             if (getPreferenceStore().contains(dbSpecific)){
                 result = getPreferenceStore().getInt(dbSpecific);
@@ -350,26 +375,17 @@ public class PreferencesUtil implements IPreferenceKeys {
     public static Boolean getBooleanValue(String name, boolean local) {
         if (CdmStore.isActive()){
             CdmPreference pref = getDBPreferenceValue(name);
-
             String overrideKey =  createPreferenceString(createOverridePreferenceString(name));
             boolean override = getPreferenceStore().getBoolean(overrideKey);
 
-            if (local || pref == null || (pref != null && pref.isAllowOverride() && override)){
+            if (local || (pref == null && override)|| (pref != null && pref.isAllowOverride() && override)){
+                //local preference
                 String dbSpecific = prefKey(name);
                 if (getPreferenceStore().contains(dbSpecific)){
                     return getPreferenceStore().getBoolean(dbSpecific);
-                }else{
-                    IPreferencePredicate pred = PreferencePredicate.getByKey(name);
-                    if (pred != null){
-                        if (pred.getDefaultValue() instanceof Boolean){
-                            return (Boolean)pred.getDefaultValue();
-                        }else if (pred.getDefaultValue() != null){
-                            return Boolean.valueOf(pred.getDefaultValue().toString());
-                        }
-                    }
-                    return null;
                 }
-             }else{
+             }else if (pref != null){
+                 //db preference
                  if (pref.getValue() == null){
                      Object result = PreferencePredicate.getByKey(pref.getPredicate()).getDefaultValue();
                      if (result instanceof Boolean){
@@ -380,8 +396,18 @@ public class PreferencesUtil implements IPreferenceKeys {
                  }
                 return Boolean.valueOf(pref.getValue());
             }
-
+            //no override but default value
+            IPreferencePredicate pred = PreferencePredicate.getByKey(name);
+            if (pred != null){
+                if (pred.getDefaultValue() instanceof Boolean){
+                    return (Boolean)pred.getDefaultValue();
+                }else if (pred.getDefaultValue() != null){
+                    return Boolean.valueOf(pred.getDefaultValue().toString());
+                }
+            }
+            return null;
         }else{
+            // no connection to db, use local preference
             return getPreferenceStore().getBoolean(name);
         }
 
index 9a993e3b1ededeaadc2fd4959b16a9c756e7a079..4b135047561431912ea177a5d227522e02c9b862 100755 (executable)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.preference.menu;
 
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
@@ -29,10 +30,12 @@ public class CommonNameLanguagePreferences extends GeneralTermPreferencePage {
         * <p>Constructor for LanguageMenuPreferences.</p>
         */
        public CommonNameLanguagePreferences() {
-           super();
+           super(Messages.CommonNameLanguages_Title);
+
         isAdminPreference = false;
         setPredicate(PreferencePredicate.CommonNameLanguages);
         type = TermType.Language;
+
        }
 
 
index 1b60ac2941baa1fe0a8c940e60b3950bb66d9c2d..86a7977a4c1e7b4d9f63e2b01e0ac5f578ac0d0d 100644 (file)
@@ -142,7 +142,7 @@ public class LanguageMenuPreferences extends GeneralTermPreferencePage {
             String text = multiLanguageEditing.getText();
             if(text.startsWith(Messages.Preference_Use_Default)){
                 isMultilanguageTextEditingCapability = null;
-                treeComposite.setEnabled(multiLangugeActivatedPref == null? true: multiLangugeActivatedPref.getValue() != null?Boolean.parseBoolean(multiLangugeActivatedPref.getValue().toString()): true);
+                treeComposite.setEnabled(multiLangugeActivatedPref == null? true: multiLangugeActivatedPref.getValue() != null?Boolean.valueOf(multiLangugeActivatedPref.getValue().toString()): true);
                 if (!isAdminPreference) {
                     overrideActivated = false;
                 }
@@ -159,7 +159,7 @@ public class LanguageMenuPreferences extends GeneralTermPreferencePage {
             if (isMultilanguageTextEditingCapability != null){
                 treeComposite.setEnabled(isMultilanguageTextEditingCapability);
             }else{
-                treeComposite.setEnabled(multiLangugeActivatedPref == null? true: multiLangugeActivatedPref.getValue() != null?Boolean.parseBoolean(multiLangugeActivatedPref.getValue().toString()): true);
+                treeComposite.setEnabled(multiLangugeActivatedPref == null? true: multiLangugeActivatedPref.getValue() != null?Boolean.valueOf(multiLangugeActivatedPref.getValue().toString()): true);
             }
 
         }
index 0748f4edf6a45cc323e0f36d1da43526822f1163..fcbe53b1646c3e4bebf5f1120c42e99cff02d079 100755 (executable)
@@ -138,6 +138,7 @@ public class AvailableDistributionPage extends AbstractTermSelectionWizardPage<T
                 vocs.add(new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType()));
             }
 
+
         }
         return vocs;
     }
index 538e4c6bf6e71de82103352ebbd5340bc4f9ab0d..cd1f2623d2f650b3e7071f0e22cd173ddee8bb5c 100755 (executable)
@@ -111,11 +111,14 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
         activateCheckButton.addSelectionListener(new SelectionAdapter(){
             @Override
             public void widgetSelected(SelectionEvent e) {
-                actualPref.setAllowOverride(overrideButton.getSelection());
-                override = overrideButton.getSelection();
+                if (actualPref != null){
+                   actualPref.setAllowOverride(activateCheckButton.getSelection());
+                }
+                override = activateCheckButton.getSelection();
 
             }
         });
+
          return activateCheckButton;
      }
 
@@ -250,6 +253,7 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
        String checkedValues = null;
        if (actualArea == null){
            checkedValues = pref.getValue();
+           override = pref.isAllowOverride();
        }else{
            if (actualPref == null){
                PrefKey key = newAreaSpecificStatusPreference();
@@ -293,7 +297,7 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
         }
         if (actualArea == null){
             CdmPreference savePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
-            savePref.setAllowOverride(pref.isAllowOverride());
+            savePref.setAllowOverride(override);
             pref = savePref;
         }else{
             PrefKey key = newAreaSpecificStatusPreference();
index 8e78b2e4ddf9784751b85a69886665866aa68fab..01d2505b80fbd255564e0ccd8efe15497edab367 100755 (executable)
@@ -46,8 +46,9 @@ public class AvailableDistributionStatusPage extends TermSelectionWizardPage {
         }
         overrideButton = createAllowOverrideButton(parent);
 
-        super.createControl(parent);
 
+        super.createControl(parent);
+        overrideButton.setSelection(override);
     }
 
     @Override