ref #8385: better handling of distr preferences and term related preferences
authorKatja Luther <k.luther@bgbm.org>
Fri, 13 Sep 2019 09:07:43 +0000 (11:07 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 13 Sep 2019 09:07:43 +0000 (11:07 +0200)
28 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/fragment.e4xmi
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CommonNameVocabularyAdminPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionStatusAdminPreference.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionStatusAndNamedAreaVocabulariesAdminPreference.java with 65% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NamedAreaVocabularyAdminPreferencePage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java [deleted file]
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/AbstractVocabularySelectionPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CommonNameVocabularyPreference.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CommonNameVocabularySelection.java with 59% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusPreferencePage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusAndNamedAreaVocabularies.java with 73% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NamedAreaVocabularyPreferencePage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalStatusTypePreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/RankPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameFeatureMenuPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameTypeDesignationStatusMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/SpecimenTypeDesignationStatusMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableAreaVocabulariesPage.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/AvailableDistributionPerAreaStatusWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/GeneralVocabularyPreferencePage.java [new file with mode: 0755]

index 1299e3064027f4c6f89df677b68299936d4d117a..1d29d8fd40ef1fbe5e51e907c7ee6d6c66d6f464 100644 (file)
@@ -278,7 +278,8 @@ handledmenuitem.label.22 = OWL Term Export
 handledmenuitem.label.23 = Owl Import\r
 \r
 page.name.104 = Distribution Data\r
-page.name.105 = Vocabularies and Status
+page.name.105 = Status\r
+page.name.106 = Named area vocabularies
 \r
 page.name.sources = Sources
 partdescriptor.label.4 = Character Tree Editor
index e98ac84503938d43220e6d74349e61e212643fb6..24d8885d4374507d22c1ab6407a82810dddf346b 100644 (file)
@@ -203,7 +203,7 @@ page.name.47 = Trivialnamen
 page.name.48 = Auswahldialoge
 command.name.111 = \u00d6ffne Admin Verbreitungsstatus-Wizard
 command.name.112 = \u00d6ffne Admin Common Name Area-Wizard
-command.name.112 = \u00d6ffne Common Name Area-Wizard
+command.name.120 = \u00d6ffne Common Name Area-Wizard
 handledmenuitem.label.1 = Neu
 handledmenuitem.label.2 = Term als Kind hinzufügen
 handledmenuitem.label.3 = Term hinzufügen
@@ -278,8 +278,8 @@ handledmenuitem.label.22 = OWL Term Export
 handledmenuitem.label.23 = Owl Import
 
 page.name.104 = Verbreitungsdaten
-page.name.105 = Vokabulare und Status
-
+page.name.105 = Status
+page.name.106 = Gebietsvokabulare
 page.name.sources = Quellen
 partdescriptor.label.4 = Character-Baum-Editor
 partdescriptor.label.5 = Struktur-Baum-Editor
index d8574ee4ee47ad527ee0b7c957fd2ad806068d53..99468a7a743cab27797c59521e9368fb4ec065f2 100644 (file)
     <elements xsi:type="commands:Command" xmi:id="_FTpC0MVSEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler" commandName="%command.name.11"/>
     <elements xsi:type="commands:Command" xmi:id="_Vs75kMVfEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler" commandName="%command.name.110"/>
     <elements xsi:type="commands:Command" xmi:id="_tPtdwMiIEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardAdminHandler" commandName="%command.name.111"/>
-    <elements xsi:type="commands:Command" xmi:id="_tRsg8MrcEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.store.open.OpenCommonNameAreaWizardAdminHandler" commandName="%command.name.112"/>
+    <elements xsi:type="commands:Command" xmi:id="_tRsg8MrcEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardHandler" commandName="%command.name.112"/>
     <elements xsi:type="commands:Command" xmi:id="_nP0XMNhHEeijwMElCRdOhg" elementId="org.eclipse.ui.file.restartWorkbench" commandName="%command.commandname.10"/>
     <elements xsi:type="commands:Command" xmi:id="_cMyQ4NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.copyFeature" commandName="%command.commandname.11"/>
     <elements xsi:type="commands:Command" xmi:id="_xDk5kNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.pasteFeature" commandName="%command.commandname.12"/>
     <elements xsi:type="commands:Command" xmi:id="_lJi2sGZvEemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionPerAreaStatusWizardHandler" commandName="%command.commandname.18"/>
     <elements xsi:type="commands:Command" xmi:id="_QnWnMGZ-Eemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionAreaWizardHandler" commandName="%command.commandname.19"/>
     <elements xsi:type="commands:Command" xmi:id="_WISF0H1LEem6uMX-L-maww" elementId="eu.etaxonomy.taxeditor.store.command.export.term.owl" commandName="%command.commandname.21"/>
+    <elements xsi:type="commands:Command" xmi:id="_sKIVINL6Eem35L6JVBxwwA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" commandName="%command.name.120"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_swGH0GhvEee3K4uKJljEYg" featurename="handlers" parentElementId="xpath:/">
     <elements xsi:type="commands:Handler" xmi:id="_rVEdIGcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_zdDe8BWNEeiazYUJirF0Pw" elementId="eu.etaxonomy.taxeditor.handler.update.UpdateHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.update.UpdateHandler" command="_jSJrsBWPEeiazYUJirF0Pw"/>
     <elements xsi:type="commands:Handler" xmi:id="_4owEkMVREeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionEditorWizardHandlerAdminE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionEditorWizardHandlerAdminE4" command="_Vs75kMVfEeiKErB3UVzQug"/>
     <elements xsi:type="commands:Handler" xmi:id="_VBYX4MiQEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStausWizardAdminHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusWizardAdminHandler" command="_tPtdwMiIEeiKErB3UVzQug"/>
-    <elements xsi:type="commands:Handler" xmi:id="_jnQb8MrcEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" command="_tRsg8MrcEeiKErB3UVzQug"/>
+    <elements xsi:type="commands:Handler" xmi:id="_jnQb8MrcEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" command="_tRsg8MrcEeiKErB3UVzQug"/>
     <elements xsi:type="commands:Handler" xmi:id="_H_c_EEq2EeeN-dEYnw7m3g" elementId="eu.etaxonomy.taxeditor.featuretree.handler.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_LlbAMEq2EeeN-dEYnw7m3g"/>
     <elements xsi:type="commands:Handler" xmi:id="_hPTxMBezEeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" command="_aPYxsBezEeiXusClKZjycQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_i-FlkNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_e-sBgGZwEemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusPerAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionPerAreaStatusWizardHandler" command="_lJi2sGZvEemew5ARzf3JfA"/>
     <elements xsi:type="commands:Handler" xmi:id="_XxpDoGZ-Eemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionAreaWizardHandler" command="_QnWnMGZ-Eemew5ARzf3JfA"/>
     <elements xsi:type="commands:Handler" xmi:id="_nhGLwH1LEem6uMX-L-maww" elementId="eu.etaxonomy.taxeditor.io.e4.out.owl.OpenOwlTermExportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.out.owl.OpenOwlTermExportWizard" command="_WISF0H1LEem6uMX-L-maww"/>
+    <elements xsi:type="commands:Handler" xmi:id="_3AxAINL9Eem35L6JVBxwwA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" command="_sKIVINL6Eem35L6JVBxwwA"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_qT4hgIfTEeecZ4F2Y9Z0Og" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.window" positionInList="before:eu.etaxonomy.taxeditor.application.windowMenu.last">
     <elements xsi:type="menu:Menu" xmi:id="_LT3P8IfcEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.termeditor" label="%menu.label.1">
index 3e626d74962a2d00213ce42768951e864aafc9a6..af07e083636e9b88061f64cc0edcddb67f03d2b4 100755 (executable)
    </page>
     <page
          category="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
-         class="eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabularies"
-         id="eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabulariesPage"
+         class="eu.etaxonomy.taxeditor.preference.DistributionStatusPreferencePage"
+         id="eu.etaxonomy.taxeditor.preference.DistributionStatusPreferencePage"
          name="%page.name.105">
    </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+         class="eu.etaxonomy.taxeditor.preference.NamedAreaVocabularyPreferencePage"
+         id="eu.etaxonomy.taxeditor.preference.NamedAreaVocabularyPreferencePage"
+         name="%page.name.106">
+   </page>
    <page
          category="eu.etaxonomy.taxeditor.preferences.general"
          class="eu.etaxonomy.taxeditor.preference.LanguageEditorPreferencePage"
    </page>
    <page 
          category="eu.etaxonomy.taxeditor.store.Distribution"
-         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionStatusAndNamedAreaVocabulariesAdminPreference"
+         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionStatusAdminPreference"
          id="eu.etaxonomy.taxeditor.store.distributionVocabulariesAndStatus"
          name="%page.name.105">
    </page>
+   <page 
+         category="eu.etaxonomy.taxeditor.store.Distribution"
+         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NamedAreaVocabularyAdminPreferencePage"
+         id="eu.etaxonomy.taxeditor.store.distributionNamedAreaVocabularies"
+         name="%page.name.106">
+   </page>
    <page
          category="eu.etaxonomy.taxeditor.store.abcdImportPreference"
          class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.AbcdImportProviderAdminPreferencePage"
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CommonNameVocabularyAdminPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CommonNameVocabularyAdminPreference.java
new file mode 100755 (executable)
index 0000000..76730b6
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+* Copyright (C) 2018 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 java.util.List;
+import java.util.UUID;
+
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.CommonNameVocabularyPreference;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since 05.10.2018
+ *
+ */
+public class CommonNameVocabularyAdminPreference extends CommonNameVocabularyPreference implements IE4AdminPreferencePage {
+
+
+
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        PreferencesUtil.setPreferenceToDB(pref);
+        PreferencesUtil.updateDBPreferences();
+
+        return true;
+
+    }
+
+    @Override
+    protected void performDefaults() {
+        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameAreaVocabularies, null);
+        pref.setAllowOverride(true);
+
+        super.performDefaults();
+    }
+
+    @Override
+    public void getValues() {
+        this.isAdminPreference = true;
+        setPreferenceStore(PreferencesUtil.getPreferenceStore());
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CommonNameAreaVocabularies);
+        if (pref != null){
+            allowOverride = pref.isAllowOverride();
+            if (pref.getValue() != null){
+                List<UUID> uuids = PreferencesUtil.createUuidList(pref.getValue());
+                vocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuids(uuids);
+            }else{
+                vocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(TermType.NamedArea);
+            }
+
+        }else{
+            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameAreaVocabularies, "");
+            allowOverride = true;
+            vocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(TermType.NamedArea);
+        }
+    }
+}
@@ -8,22 +8,21 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabularies;
+import eu.etaxonomy.taxeditor.preference.DistributionStatusPreferencePage;
 
 /**
  * @author k.luther
  * @since 02.07.2019
  *
  */
-public class DistributionStatusAndNamedAreaVocabulariesAdminPreference
-        extends DistributionStatusAndNamedAreaVocabularies {
+public class DistributionStatusAdminPreference
+        extends DistributionStatusPreferencePage {
 
 
     @Override
     public void getValues() {
         super.getValues();
         isAdminPreference = true;
-        commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler";
         commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionPerAreaStatusWizardHandler";
     }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NamedAreaVocabularyAdminPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NamedAreaVocabularyAdminPreferencePage.java
new file mode 100755 (executable)
index 0000000..4825046
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+* Copyright (C) 2019 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.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
+import eu.etaxonomy.taxeditor.preference.NamedAreaVocabularyPreferencePage;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author k.luther
+ * @since 12.09.2019
+ */
+public class NamedAreaVocabularyAdminPreferencePage extends NamedAreaVocabularyPreferencePage {
+
+    public NamedAreaVocabularyAdminPreferencePage(){
+        isAdminPreference = true;
+        setPredicate(PreferencePredicate.AvailableDistributionAreaVocabularies);
+        type = TermType.NamedArea;
+
+    }
+    @Override
+    public void getValues() {
+       type = TermType.NamedArea;
+       isAdminPreference = true;
+       CdmPreferenceCache cache = CdmPreferenceCache.instance();
+       cache.getAllTaxEditorDBPreferences();
+       pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
+       if (pref == null){
+           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue() != null ?  PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue().toString(): null);
+       }
+
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java
deleted file mode 100755 (executable)
index 8cebe2a..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
-* Copyright (C) 2018 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 org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
-import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
-
-/**
- * @author k.luther
- * @since 05.10.2018
- *
- */
-public class VocabularyAdminPreferences extends CdmPreferencePage implements IE4AdminPreferencePage {
-
-    boolean allowOverride;
-    CdmPreference pref = null;
-
-    @Override
-    protected Control createContents(Composite parent) {
-        this.isAdminPreference = true;
-        Composite composite = createComposite(parent);
-        //pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CommonNameAreaVocabularies);
-
-
-        final CLabel commonNameAreaLabel = new CLabel(composite, SWT.NULL);
-        commonNameAreaLabel.setText(Messages.VokabularyAdminPreferences_SELECT_VOCABULARY_TEXT);
-
-        GridData gridData = new GridData();
-        gridData.horizontalSpan = 2;
-        commonNameAreaLabel.setLayoutData(gridData);
-
-        final CommandHandlerButton button_opencommonNameAreaWizard = new CommandHandlerButton(composite, SWT.PUSH,
-                "eu.etaxonomy.taxeditor.store.open.OpenCommonNameAreaWizardAdminHandler"); //$NON-NLS-1$
-
-        button_opencommonNameAreaWizard.setText(Messages.GeneralPreference_open_common_name_area_selection);
-//        final Button allowOverrideCommonNameAreaCheckButton = createAllowOverrideButton(composite);
-//
-//        if (pref != null){
-//            allowOverride = pref.isAllowOverride();
-//            allowOverrideCommonNameAreaCheckButton.setSelection(allowOverride);
-//        }
-//        else{
-//            allowOverrideCommonNameAreaCheckButton.setSelection(true);
-//        }
-//
-//        allowOverrideCommonNameAreaCheckButton.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                setApply(true);
-//                allowOverride = allowOverrideCommonNameAreaCheckButton.getSelection();
-//
-//            }
-//        });
-
-        return composite;
-    }
-
-    @Override
-    public boolean performOk() {
-        if (!isApply()){
-            return true;
-        }
-        PreferencesUtil.setPreferenceToDB(pref);
-        PreferencesUtil.updateDBPreferences();
-
-        return true;
-
-    }
-
-    @Override
-    protected void performDefaults() {
-        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameAreaVocabularies, null);
-        pref.setAllowOverride(true);
-
-        super.performDefaults();
-    }
-}
index 2d47940c75d0b02c1b162e0a9c6b9e8e5600124d..8dbd7856f8ef7b9799419dd7d88f2c46a17d8d6e 100644 (file)
@@ -465,7 +465,6 @@ public class Messages extends NLS {
     public static String AbcdImportPreference_reuse_descriptive_group_tooltip;
     public static String AbcdImportPreference_reuse_existing_taxa;
     public static String AbcdImportPreference_reuse_existing_taxa_tooltip;
-    public static String AbcdImportPreference_allow_override;
     public static String AbcdImportPreference_allow_override_tooltip;
     public static String AbcdImportPreference_override;
     public static String AbcdImportPreference_override_tooltip;
@@ -679,6 +678,9 @@ public class Messages extends NLS {
 
     public static String DatabasePreferncesPage_NamedAreaSearchField;
 
+    public static String Preference_allow_override;
+    public static String Delete;
+
 
 
 
index 317e9bf3a034990b62814b25b16e70054cc23179..c130c20667ae3194d80d9053160ba188ca5104b7 100644 (file)
@@ -368,7 +368,7 @@ AbcdImportPreference_reuse_descriptive_group=Reuse existing descriptive group
 AbcdImportPreference_reuse_descriptive_group_tooltip=Reuse one of the existing descriptive groups or create a new one for every import
 AbcdImportPreference_reuse_existing_taxa=Reuse existing taxa when possible
 AbcdImportPreference_reuse_existing_taxa_tooltip=Reuse existing taxa when the name matches the identified name of the specimen
-AbcdImportPreference_allow_override=Allow override
+Preference_allow_override=Allow override
 AbcdImportPreference_allow_override_tooltip=It is allowed to change this preference locally.
 AbcdImportPreference_override=Use local preference
 AbcdImportPreference_override_tooltip=Use local preference for ABCD import configurator.
@@ -516,3 +516,4 @@ SupplementalDataSourcePreferences_SHOW_ID=Show ID in Source
 SupplementalDataSourcePreferences_SHOW_NAMESPACE=Show ID Namespace
 
 OrderPreferencePage_NotAllowed=The DB preference does not allow to edit this preference locally
+Delete=Delete
index 4d89f70adb17fbfdb1f77ce2130b0bb6a548b923..027fecd188e6cc3ed54fea21ad52b71ab2984d28 100644 (file)
@@ -368,7 +368,7 @@ AbcdImportPreference_reuse_descriptive_group=Existierende Fakten verwenden
 AbcdImportPreference_reuse_descriptive_group_tooltip=Bei Taxa, die bereits Faktendaten besitzen, werden die Individual Associations in die bereits existierenden Faktengruppen integriert, sonst wird für jeden Import eine neue Faktengruppe erzeugt.
 AbcdImportPreference_reuse_existing_taxa=Existierende Taxa wieder verwenden
 AbcdImportPreference_reuse_existing_taxa_tooltip=Wenn Taxa schon existieren, dann werden die Individual Associations an diese angehängt.
-AbcdImportPreference_allow_override=Erlaube Überschreiben
+Preference_allow_override=Erlaube Überschreiben
 AbcdImportPreference_allow_override_tooltip=Es dürfen lokale Änderungen an den Präferenzen vorgenommen werden.
 AbcdImportPreference_override=Nutze lokale Präferenzen
 AbcdImportPreference_override_tooltip=Die lokale Präferenzen für den ABCD Import Konfigurator sollen verwendet werden.
@@ -516,3 +516,4 @@ SupplementalDataSourcePreferences_SHOW_ID=ID in Quelle anzeigen
 SupplementalDataSourcePreferences_SHOW_NAMESPACE=ID-Namensraum anzeigen
 
 OrderPreferencePage_NotAllowed=Die Datenbank Präferenz erlaub kein Editieren
+Delete=Löschen
index 923be22d1dff1c94e64a25555722d41e26be59e3..291bdb822c827eb0696cc49d3d077db12b95630f 100755 (executable)
@@ -267,7 +267,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         checkAllowOverride = new Button(composite, SWT.CHECK);
         if (isAdminPreference){
             checkAllowOverride.setSelection(allowOverride);
-            checkAllowOverride.setText(Messages.AbcdImportPreference_allow_override);
+            checkAllowOverride.setText(Messages.Preference_allow_override);
             checkAllowOverride
                 .setToolTipText(Messages.AbcdImportPreference_allow_override_tooltip);
         }else{
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractVocabularySelectionPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractVocabularySelectionPreference.java
new file mode 100755 (executable)
index 0000000..5b31f96
--- /dev/null
@@ -0,0 +1,77 @@
+/**
+* Copyright (C) 2019 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 java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since 30.08.2019
+ */
+public abstract class AbstractVocabularySelectionPreference extends CdmPreferencePage {
+    protected Table table;
+
+    protected CdmPreference pref;
+    protected TermType type;
+    protected List<CdmPreference> prefsToDelete = new ArrayList<>();
+    protected List<TermVocabularyDto> vocabularies;
+    protected boolean override;
+
+    @Override
+    protected Control createContents(Composite parent) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /**
+    *
+    */
+   protected void refresh() {
+       //getValues();
+       table.removeAll();
+       if (pref != null){
+           createTableRow(pref);
+       }
+       table.redraw();
+       table.pack();
+
+   }
+
+   public abstract void createTableRow(CdmPreference pref) ;
+  // public abstract String getUUIDFromSubject(CdmPreference pref);
+
+   protected void fillVocabularies(CdmPreference vocPref){
+       List<UUID> uuids = null;
+       if (isAdminPreference){
+           uuids = PreferencesUtil.createUuidList(vocPref.getValue());
+       }else{
+           uuids = PreferencesUtil.createUUIDListFromStringPref(vocPref.getPredicate(), false);
+       }
+       if (uuids == null || uuids.isEmpty()){
+           vocabularies = new ArrayList();
+           vocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
+       }else{
+           vocabularies =  CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuids(uuids);
+       }
+   }
+
+}
similarity index 59%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CommonNameVocabularySelection.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CommonNameVocabularyPreference.java
index 6809bbc5da3c601098e57e5022437e79acf0f1f9..13b88db5c01db9d11e1134b45e63af84864d7a17 100755 (executable)
@@ -10,19 +10,19 @@ package eu.etaxonomy.taxeditor.preference;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
 
 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.PreferencePredicate;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
 
@@ -31,18 +31,20 @@ import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
  * @since 05.10.2018
  *
  */
-public class CommonNameVocabularySelection extends CdmPreferencePage implements IE4PreferencePage {
+public class CommonNameVocabularyPreference extends AbstractVocabularySelectionPreference implements IE4PreferencePage {
+
+    protected boolean allowOverride;
+    protected CdmPreference pref = null;
 
-    boolean allowOverride;
-    CdmPreference pref = null;
 
     @Override
     protected Control createContents(Composite parent) {
 
         Composite composite = createComposite(parent);
-       getValues();
-
-
+        getValues();
+        final CLabel commonNameAreaSelectionLabel = new CLabel(composite, SWT.NULL);
+        commonNameAreaSelectionLabel.setText("Actually selected vocabularies, for editing the selection use the button below");
+        createTable(composite);
         final CLabel commonNameAreaLabel = new CLabel(composite, SWT.NULL);
         commonNameAreaLabel.setText(Messages.VokabularyAdminPreferences_SELECT_VOCABULARY_TEXT);
 
@@ -51,27 +53,12 @@ public class CommonNameVocabularySelection extends CdmPreferencePage implements
         commonNameAreaLabel.setLayoutData(gridData);
 
         final CommandHandlerButton button_opencommonNameAreaWizard = new CommandHandlerButton(composite, SWT.PUSH,
-                "eu.etaxonomy.taxeditor.store.open.OpenCommonNameAreaWizardHandler"); //$NON-NLS-1$
+                "eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardHandler"); //$NON-NLS-1$
 
-        button_opencommonNameAreaWizard.setText(Messages.GeneralPreference_open_common_name_area_selection);
-        final Button allowOverrideCommonNameAreaCheckButton = createAllowOverrideButton(composite);
-
-        if (pref != null){
-            allowOverride = pref.isAllowOverride();
-            allowOverrideCommonNameAreaCheckButton.setSelection(allowOverride);
-        }
-        else{
-            allowOverrideCommonNameAreaCheckButton.setSelection(true);
-        }
 
-        allowOverrideCommonNameAreaCheckButton.addSelectionListener(new SelectionAdapter(){
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                setApply(true);
-                allowOverride = allowOverrideCommonNameAreaCheckButton.getSelection();
+        button_opencommonNameAreaWizard.setEnabled(true);
+        button_opencommonNameAreaWizard.setText(Messages.GeneralPreference_open_common_name_area_selection);
 
-            }
-        });
 
         return composite;
     }
@@ -91,7 +78,11 @@ public class CommonNameVocabularySelection extends CdmPreferencePage implements
                 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameAreaVocabularies, "");
             }
             pref.setAllowOverride(allowOverride);
-            service.set(pref);
+            if ( pref.getValue() == null && allowOverride){
+                service.remove(pref.getKey());
+            }else{
+                service.set(pref);
+            }
 
             PreferencesUtil.updateDBPreferences();
         }
@@ -99,28 +90,71 @@ public class CommonNameVocabularySelection extends CdmPreferencePage implements
 
     }
 
+
+
+    @Override
+    protected void performDefaults() {
+        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameAreaVocabularies, null);
+        allowOverride = true;
+
+        super.performDefaults();
+    }
+    @Override
+    public void createTableRow(CdmPreference pref) {
+        String namedAreaString = null;
+
+        for (TermVocabularyDto voc: vocabularies){
+            TableItem item = new TableItem(table, SWT.NONE);
+            item.setText(0, voc.getRepresentations().iterator().next().getLabel());
+        }
+
+
+//
+    }
+
+
+    @Override
+    public boolean isApply() {
+
+        return super.isApply();
+    }
+
+    public void createTable(Composite composite) {
+        table = new Table(
+                composite, SWT.BORDER /*| SWT.CHECK */| SWT.FULL_SELECTION | SWT.SINGLE
+        );
+
+        table.setLinesVisible(true);
+        table.setHeaderVisible(true);
+        GridData tableGrid = createTextGridData();
+        table.setLayoutData(tableGrid);
+
+
+        TableColumn column = new TableColumn(table, SWT.NONE);
+        column.setText("Vocabulary");
+        column.setWidth(500);
+
+        if (pref.getValue() != null){
+            createTableRow(pref);
+        }
+
+
+    }
+
     @Override
     public void getValues() {
         this.isAdminPreference = false;
-        setPreferenceStore(PreferencesUtil.getPreferenceStore());
         pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CommonNameAreaVocabularies);
 
-
         if (pref != null){
             allowOverride = pref.isAllowOverride();
         }else{
             pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameAreaVocabularies, "");
             allowOverride = true;
         }
-    }
+        fillVocabularies(pref);
 
-    @Override
-    protected void performDefaults() {
-
-        super.performDefaults();
     }
 
 
-
-
 }
@@ -21,6 +21,7 @@ import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.di.UIEventTopic;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.custom.TableEditor;
@@ -41,10 +42,11 @@ import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceResolver;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.ImageResources;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionPerAreaStatusWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
 
@@ -53,18 +55,13 @@ import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
  * @since 02.07.2019
  *
  */
-public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePage implements IPropertyChangeListener{
+public class DistributionStatusPreferencePage extends AbstractVocabularySelectionPreference implements IPropertyChangeListener{
 
-    protected String commandHandlerString;
     protected String commandHandlerStringStatus;
 
     protected List<CdmPreference> prefStatus;
     protected List<CdmPreference> prefStatusToDelete = new ArrayList<>();
 
-    protected CdmPreference prefAreaVoc;
-
-    private CommandHandlerButton button_openSelectAreaVocabularies;
-
     private CommandHandlerButton button_openStatusWizard;
 
     private Map<UUID, NamedArea> namedAreaUUIDMap = new HashMap();
@@ -87,13 +84,19 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
             final CLabel labelPerAreaStatus = new CLabel(composite, SWT.NULL);
             labelPerAreaStatus.setText(Messages.DistributionAdminPreferences_PER_AREA_STATUS);
             labelPerAreaStatus.setLayoutData(textGrid);
-            createTable(composite);
+
+        }else{
+            final CLabel labelPerAreaStatus = new CLabel(composite, SWT.NULL);
+            labelPerAreaStatus.setText("Actual status selection, the area specific selection is only available for serverside preferences.\n"
+                    + "For editing the general status selection use the button below");
+            labelPerAreaStatus.setLayoutData(textGrid);
+
         }
+        createStatusTable(composite);
 
-        final CLabel labelStatus = new CLabel(composite, SWT.NULL);
-        labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
-        labelStatus.setLayoutData(textGrid);
         composite.pack ();
+
+
         button_openStatusWizard = new CommandHandlerButton(composite, SWT.PUSH, commandHandlerStringStatus);
 
         button_openStatusWizard.setText(Messages.Distribution_status_selection);
@@ -108,26 +111,13 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
             }
         });
 
-        final CLabel label = new CLabel(composite, SWT.NULL);
-        label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
-        label.setLayoutData(textGrid);
-
-        button_openSelectAreaVocabularies = new CommandHandlerButton(composite, SWT.PUSH, commandHandlerString);
-        button_openSelectAreaVocabularies
-                .setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
 
-        if (!isAdminPreference){
-            if (prefAreaVoc != null && !prefAreaVoc.isAllowOverride()) {
-                button_openSelectAreaVocabularies.setButtonEnabled(false);
-            }
-//            if (prefStatus != null && !prefStatus.isAllowOverride()) {
-//                button_openStatusWizard.setButtonEnabled(false);
-//            }
-        }
         return composite;
     }
 
-    public void createTable(Composite composite) {
+
+
+    public void createStatusTable(Composite composite) {
         table = new Table(
                 composite, SWT.BORDER /*| SWT.CHECK */| SWT.FULL_SELECTION | SWT.SINGLE
         );
@@ -140,18 +130,19 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
         CdmPreference pref;
         TableColumn column = new TableColumn(table, SWT.NONE);
         column.setText("Predicate/Subject");
-        column.setWidth(500);
-        column = new TableColumn(table, SWT.NONE);
+        column.setWidth(300);
+
         if (isAdminPreference){
-            column.setText("Allow Override");
-        }else{
-            column.setText("Use Default");
+            column = new TableColumn(table, SWT.NONE);
+            column.setText(Messages.Preference_allow_override);
+            column.setWidth(100);
+            column = new TableColumn(table, SWT.NONE);
+            column.setText(Messages.Delete);
+            column.setWidth(100);
+            column = new TableColumn(table, SWT.NONE);
+            column.setText("Status");
+            column.setWidth(100);
         }
-        column.setWidth(100);
-        column = new TableColumn(table, SWT.NONE);
-        column.setText("Delete");
-        column.setWidth(100);
-
 
 
         while (prefIterator.hasNext()){
@@ -163,20 +154,21 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
         }
     }
 
+    @Override
     public void createTableRow(CdmPreference pref) {
         TableItem item = new TableItem(table, SWT.NONE);
-        for (int col = 0; col < 3; col ++) {
-            String namedAreaString = null;
+        String uuidString = getUUIDFromSubject(pref);
+        String namedAreaString = null;
+        if (uuidString != null){
+            try{
+            UUID uuid = UUID.fromString(uuidString);
+            namedAreaString = namedAreaUUIDMap.get(UUID.fromString(uuidString)).getLabel();
+            }catch(IllegalArgumentException e){
+                // no UUID
+            }
+        }
+        for (int col = 0; col < 4; col ++) {
             if (col == 0){
-               String uuidString = getUUIDFromSubject(pref);
-               if (uuidString != null){
-                   try{
-                   UUID uuid = UUID.fromString(uuidString);
-                   namedAreaString = namedAreaUUIDMap.get(UUID.fromString(uuidString)).getLabel();
-                   }catch(IllegalArgumentException e){
-                       // no UUID
-                   }
-               }
                if (namedAreaString != null){
                    String subjectString = pref.getSubjectString().replace(pref.getSubject().getLastPart(), namedAreaString);
                    item.setText(col, pref.getPredicate() +subjectString);
@@ -184,7 +176,7 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
                    item.setText(col, pref.getPredicate() +pref.getSubjectString());
                }
 
-            }else if (col == 1) {
+            }else if (col == 1 && isAdminPreference) {
                 Button allowOverrideButton = new Button(table, SWT.CHECK);
                 allowOverrideButton.setData(pref);
                 TableEditor editor = new TableEditor(table);
@@ -192,6 +184,7 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
                 editor.grabHorizontal = true;
                 editor.setEditor(allowOverrideButton, item, col);
                 allowOverrideButton.setSelection(pref.isAllowOverride());
+
                 allowOverrideButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e){
@@ -206,7 +199,7 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
                         }
                     }
                   });
-            } else if (col == 2){
+            } else if (col == 2 && isAdminPreference){
                 Button delButton = new Button(table, SWT.PUSH);
                 delButton.setImage(ImageResources
                         .getImage(ImageResources.TRASH_ICON));
@@ -231,19 +224,57 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
                 editor.setEditor(delButton, item, col);
 
             }
+            else if (col == 3 && isAdminPreference){
+                Button listButton = new Button(table, SWT.PUSH);
+                listButton.setImage(ImageResources
+                        .getImage(ImageResources.EDIT_ICON));
+                listButton.setData(pref);
+                listButton.pack();
+                listButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e){
+                        Button thisButton= (Button) e.widget;
+                        AvailableDistributionPerAreaStatusWizard wizard = new AvailableDistributionPerAreaStatusWizard();
+                        CdmPreference actualPref = CdmPreferenceCache.instance().findBestMatching(pref.getKey());
+                        wizard.setActualPref(actualPref);
+                        String uuidString = getUUIDFromSubject(actualPref);
+                        String namedAreaString = null;
+                        if (uuidString != null){
+                            try{
+                            UUID uuid = UUID.fromString(uuidString);
+                            NamedArea area = namedAreaUUIDMap.get(UUID.fromString(uuidString));
+                            wizard.setNamedArea(area);
+
+                            }catch(IllegalArgumentException ex){
+                                // no UUID
+                            }
+                        }
+
+
+                        WizardDialog dialog = new WizardDialog(null,
+                                wizard);
+
+                        dialog.open();
+                        thisButton.setData(CdmPreferenceCache.instance().findBestMatching(pref.getKey()));
+
+
+                    }
+                  });
+                TableEditor editor = new TableEditor(table);
+                editor.horizontalAlignment = SWT.LEFT;
+                editor.grabHorizontal = true;
+                editor.setEditor(listButton, item, col);
+
+            }
         }
     }
 
     @Override
     public void getValues() {
         isAdminPreference = false;
+        type = TermType.NamedArea;
         CdmPreferenceCache cache = CdmPreferenceCache.instance();
         cache.getAllTaxEditorDBPreferences();
-        prefAreaVoc = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
-        if (prefAreaVoc == null){
-            prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue() != null ?  PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue().toString(): null);
-        }
-
 
         prefStatus = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
         if (prefStatus == null){
@@ -253,7 +284,6 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
         }
         createNamedAreaUUIDMap();
 
-        commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";
         commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";
        // setApply(true);
     }
@@ -282,6 +312,7 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
 
     }
 
+
     public String getUUIDFromSubject(CdmPreference pref) {
         String lastPart = pref.getSubject().getLastPart();
         lastPart = lastPart.replace("NamedArea[", "");
@@ -291,15 +322,8 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
 
     @Override
     protected void performDefaults() {
-        if (!isAdminPreference){
-            if (!prefAreaVoc.isAllowOverride()) {
-                button_openSelectAreaVocabularies.setButtonEnabled(false);
-            }
-
-        }
 
         prefStatus = null;
-        prefAreaVoc = null;
         refresh();
         setApply(true);
 
@@ -315,10 +339,7 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
             List<CdmPreference> prefsToDelete =cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
             PreferencesUtil.removeFromDB(prefsToDelete);
         }
-        if (prefAreaVoc == null){
-            List<CdmPreference> prefsToDelete =cache.getAllForPredicate(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
-            PreferencesUtil.removeFromDB(prefsToDelete);
-        }
+
         List<CdmPreference> toDelete = new ArrayList<>();
         for (CdmPreference pref:prefStatusToDelete){
             CdmPreference prefToDelete = CdmPreference.NewInstance(pref.getKey(), null);
@@ -352,23 +373,10 @@ public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePag
         }
     }
 
-    /**
-     *
-     */
-    private void refresh() {
-        //getValues();
-        table.removeAll();
-        if (prefStatus != null){
-            Iterator<CdmPreference> prefIterator = prefStatus.iterator();
-            CdmPreference pref;
-            while (prefIterator.hasNext()){
-                pref = prefIterator.next();
-                createTableRow(pref);
 
-            }
-        }
-        table.redraw();
-        table.pack();
 
-    }
+
+
+
+
 }
index 080176f125b622127bc92ddd49a40570300da748..ccd178a2741e4a780b0489d532e544ed46119c32 100755 (executable)
@@ -53,14 +53,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 abstract public class GeneralTermPreference extends CdmPreferencePage implements ISelectionChangedListener, SelectionListener{
     protected CheckBoxTreeComposite treeComposite;
-    private List<TermVocabularyDto> vocabularies = new ArrayList<>();
+    protected List<TermVocabularyDto> vocabularies = new ArrayList<>();
     protected Combo useLocalOrAdmin ;
 
     protected boolean isOverride;
     protected boolean allowOverride;
     protected CdmPreference pref;
     protected IPreferencePredicate predicate;
-    private boolean localPref;
+    protected boolean localPref;
 
     public GeneralTermPreference(){
         super();
@@ -211,7 +211,7 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
         if (listValue.isEmpty()){
             List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
             for (DefinedTermBase term: terms){
-                if (!(term instanceof eu.etaxonomy.cdm.model.description.Character)){
+                if (!(term instanceof eu.etaxonomy.cdm.model.description.Character) && term != null){
                     termlist.add(TermDto.fromTerm(term, true));
                 }
             }
@@ -230,9 +230,6 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
         setVocabularies(vocs);
     }
 
-    protected abstract List<TermVocabularyDto> getVocabulariesFromPreference();
-
-
     protected void getPreferenceValues(){
         pref = PreferencesUtil.getPreferenceFromDB(predicate);
         this.allowOverride = pref!= null?pref.isAllowOverride():true;
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NamedAreaVocabularyPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NamedAreaVocabularyPreferencePage.java
new file mode 100755 (executable)
index 0000000..581c0fa
--- /dev/null
@@ -0,0 +1,50 @@
+/**
+* Copyright (C) 2019 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 eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.wizard.GeneralVocabularyPreferencePage;
+
+/**
+ * @author k.luther
+ * @since 12.09.2019
+ */
+public class NamedAreaVocabularyPreferencePage extends GeneralVocabularyPreferencePage {
+
+    public NamedAreaVocabularyPreferencePage(){
+        isAdminPreference = false;
+        setPredicate(PreferencePredicate.AvailableDistributionAreaVocabularies);
+        type = TermType.NamedArea;
+
+    }
+
+
+
+
+//    @Override
+//    protected void performDefaults() {
+//        if (!isAdminPreference){
+//            if (!pref.isAllowOverride()) {
+//                button_openSelectAreaVocabularies.setButtonEnabled(false);
+//            }
+//
+//        }
+//
+//        prefAreaVoc = null;
+//        refresh();
+//        setApply(true);
+//
+//    }
+
+
+
+
+
+}
index afb350af4320f054926ea64498b0f81210c7836d..a0bd1733947e1c5c8212112c4b659000d8435c6c 100644 (file)
@@ -9,11 +9,8 @@
 
 package eu.etaxonomy.taxeditor.preference;
 
-import java.util.List;
-
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 
 /**
  * <p>NomenclaturalStatusTypeMenuPreferences class.</p>
@@ -37,15 +34,6 @@ public class NomenclaturalStatusTypePreferences extends
 
 
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
 
 
 
index c1874090d205d9f2a81c11046ca645969f0bccb6..fb7d528086d9e57a47c968941358dcdae2d59e17 100755 (executable)
@@ -35,18 +35,6 @@ public class RankPreference extends GeneralTermPreference {
         type = TermType.Rank;
     }
 
-
-
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
     @Override
     protected void initialiseVocabularies() {
 
index 0cbfebed4e7ae1f85383568f376aad1a609fea9a..5954c21d92e2904d057ce7887c5abc9619d3ce9c 100644 (file)
@@ -43,11 +43,7 @@ public class FeatureMenuPreferences extends GeneralTermPreference{
         type = TermType.Feature;
     }
 
-    @Override
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
-        // TODO Auto-generated method stub
-        return null;
-    }
+
 
     @Override
     public boolean performOk(){
index 4cdc1307f78d610ba96d08433957fbbabd48c334..71edfc5255c4c90db5f013905ea94e130be8c798 100755 (executable)
@@ -39,11 +39,7 @@ public class NameFeatureMenuPreference extends GeneralTermPreference {
         type = TermType.Feature;
     }
 
-    @Override
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
-        // TODO Auto-generated method stub
-        return null;
-    }
+
 
     @Override
     public boolean performOk(){
index bb95ef9b710e61157f73314bc1cdf452ea44b1ca..a39468b87e7217948388c6a53ac6844df09e6b25 100644 (file)
@@ -18,7 +18,6 @@ import org.apache.commons.lang.StringUtils;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
 import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -43,15 +42,6 @@ public class NameTypeDesignationStatusMenuPreferences extends
         type = TermType.NameTypeDesignationStatus;
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
     @Override
     public boolean performOk() {
         if (!isApply()){
index fd97c145648a9a2fe39f55eb1ef665ec29a44590..d8944a8ca5d72e2f61607636c573b3264948aaf5 100644 (file)
@@ -18,7 +18,6 @@ import org.apache.commons.lang.StringUtils;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
 import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -45,14 +44,7 @@ public class SpecimenTypeDesignationStatusMenuPreferences extends
 
 
 
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   protected List<TermVocabularyDto> getVocabulariesFromPreference() {
-       // TODO Auto-generated method stub
-       return null;
-   }
+
 
 
    @Override
index 3a8899bfb16adb790032d3f0407ff79522570691..8657b4412d8097a1436dbbbaa36e9eac37ca6f5a 100755 (executable)
@@ -51,7 +51,7 @@ public class AvailableAreaVocabulariesPage  extends AbstractAdminTermSelectionWi
 
         setTitle(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_TITLE, featureTitle));
         setDescription(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_DESCRIPTION, featureTitle));
-        if (isLocalPrefExist()){
+        if (!localPref){
             createAllowOverrideButton(parent);
         }
 
index e952e6d323632bc26ae627ec8effb63b60b8eefd..c72f00a3856437573c3c49aced0380d7ae376756 100755 (executable)
@@ -57,6 +57,10 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
     NamedArea actualArea;
     CdmPreference actualPref;
     Text areaText;
+    String namedAreaString;
+
+
+
     Button btnSelectArea;
     Button btnRemove;
     Label status;
@@ -79,6 +83,8 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
         countTerms = CdmStore.getTermManager().getPreferredTerms(type).size();
     }
 
+
+
     @Override
     public void createControl(Composite parent) {
         setTitle(Messages.AvailableDistributionStatusPage_PAGE_TITLE);
@@ -111,6 +117,10 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
         areaText.setBackground(StoreUtil
                 .getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
         areaText.setLayoutData(textData);
+        if (actualArea != null){
+            areaText.setText(actualArea.getLabel());
+            areaText.setEnabled(false);
+        }
         btnSelectArea = new Button(toolbar, SWT.PUSH | SWT.FLAT );
         btnSelectArea.setImage(ImageResources
                 .getImage(ImageResources.BROWSE_ICON));
@@ -288,4 +298,12 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
     }
 
 
+    public void setActualPreference(CdmPreference pref){
+
+        this.actualPref = pref;
+
+
+    }
+
+
 }
index fed2884685360031a9a10dbb3b9580cb5742d73d..ad3897345709929c2f75e31b92ee38a414149295 100755 (executable)
@@ -16,6 +16,7 @@ import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
@@ -52,6 +53,15 @@ public class AvailableDistributionPerAreaStatusWizard extends Wizard implements
 
     }
 
+    public void setActualPref(CdmPreference pref){
+        this.aPage.setActualPreference(pref);
+    }
+
+    public void setNamedArea(NamedArea namedArea){
+        this.aPage.actualArea = namedArea;
+
+    }
+
     @Override
     public void addPages() {
         addPage(aPage);
index 131d2f63da0f883ab39cd1e133059453072851b2..e5808add7a325d6645c8f52bf2e639f0203781b9 100755 (executable)
@@ -18,17 +18,14 @@ import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.TermStore;
 
 /**
  * @author k.luther
@@ -51,6 +48,17 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
 
     }
 
+    public AvailableDistributionStatusWizard(CdmPreference pref) {
+        setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
+        // TODO if preferenceStore has elements checked load elements in wizard
+
+        if (pref == null) {
+            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null);
+        }
+        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref, true);
+
+    }
+
     @Override
     public void addPages() {
         addPage(aPage);
@@ -91,12 +99,12 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
         Object[] checkedElements = aPage.getViewer().getCheckedElements();
 
         List<UUID> listUIIDChecked = new ArrayList<>();
-        List<DefinedTermBase> preferredTerms = new ArrayList<>();
+        List<TermDto> preferredTerms = new ArrayList<>();
         for (Object o : checkedElements) {
             if(o instanceof TermDto){
                 TermDto termDto = (TermDto) o;
                 listUIIDChecked.add(termDto.getUuid());
-                preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
+                preferredTerms.add(termDto);
             }
         }
         String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
@@ -104,7 +112,7 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
         PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), saveCheckedElements);
         PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
 
-        CdmStore.getTermManager().setPreferredTerms(preferredTerms, TermStore.getTerms(TermType.PresenceAbsenceTerm, null));
+        CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, TermType.PresenceAbsenceTerm);
         PreferencesUtil.firePreferencesChanged(this.getClass());
         return true;
     }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/GeneralVocabularyPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/GeneralVocabularyPreferencePage.java
new file mode 100755 (executable)
index 0000000..05cd9cf
--- /dev/null
@@ -0,0 +1,197 @@
+/**
+* Copyright (C) 2019 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.wizard;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
+import eu.etaxonomy.taxeditor.editor.definedterm.RootElementsOnlyTreeContentProvider;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since 13.09.2019
+ */
+public class GeneralVocabularyPreferencePage extends GeneralTermPreference implements ISelectionChangedListener, SelectionListener{
+
+
+    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
+
+        return null;
+    }
+
+    @Override
+    protected Control createContents(Composite parent) {
+        Composite container = new Composite(parent, SWT.NULL);
+       // getValues();
+        getPreferenceValues();
+        if (!isAdminPreference && !allowOverride){
+            final CLabel description = new CLabel(parent, SWT.NULL);
+            description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
+            this.setDefaultButtonActivated(false);
+            return parent;
+
+        }
+        final GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 2;
+        container.setLayout(gridLayout);
+        parent.setLayout(new GridLayout());
+        useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
+        if (!isAdminPreference){
+            useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
+            useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
+
+        }else{
+            useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
+            useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
+        }
+
+
+        treeComposite = new CheckBoxTreeComposite(container, new RootElementsOnlyTreeContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
+        treeComposite.getViewer().setComparator(new DefinedTermSorter());
+        treeComposite.setAllowTopLevelSelection(true);
+        rememberCheckedValues(getCheckedValuesFromPreferences());
+
+        if (!isAdminPreference){
+            if (isOverride){
+                useLocalOrAdmin.select(1);
+            }else{
+                useLocalOrAdmin.select(0);
+                treeComposite.setEnabled(false);
+            }
+        }else{
+            if (allowOverride){
+                useLocalOrAdmin.select(0);
+            }else{
+                useLocalOrAdmin.select(1);
+            }
+        }
+        useLocalOrAdmin.addSelectionListener(this);
+
+        GridData data = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
+        data.heightHint = 300;
+        treeComposite.setLayoutData(data);
+        treeComposite.getViewer().addSelectionChangedListener(this);
+
+        return container;
+
+    }
+
+    @Override
+    protected void rememberCheckedValues(String checkedValues) {
+        initialiseVocabularies();
+        treeComposite.getViewer().getTree().deselectAll();
+        treeComposite.getViewer().refresh();
+        treeComposite.getViewer().setInput(getVocabularies());
+
+        if (checkedValues != null && checkedValues != "") { //$NON-NLS-1$
+            String[] listChecked = checkedValues.split(";"); //$NON-NLS-1$
+            String[] listCheckedComma = checkedValues.split(","); //$NON-NLS-1$
+            List<String> checked = new ArrayList<>();
+            if (listChecked != null ){
+                checked = Arrays.asList(listChecked);
+            }
+            if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
+                checked = Arrays.asList(listCheckedComma);
+            }
+            List<TermVocabularyDto> termsFromStringValues = getVocabulariesFromStringValues(checked);
+            treeComposite.setCheckedElements(termsFromStringValues.toArray());
+
+        }else{
+            List<TermVocabularyDto> termsFromStringValues = getVocabulariesFromStringValues(new ArrayList<String>());
+            treeComposite.setCheckedElements(termsFromStringValues.toArray());
+            treeComposite.getViewer().refresh();
+            treeComposite.redraw();
+
+        }
+    }
+
+
+    protected List<TermVocabularyDto> getVocabulariesFromStringValues(List<String> listValue) {
+        List<TermVocabularyDto> vocList = new ArrayList<>();
+        List<UUID> uuids = new ArrayList();
+        IVocabularyService vocService = CdmStore.getService(IVocabularyService.class);
+        for (String s : listValue) {
+            if (!StringUtils.isBlank(s)){
+                UUID uuid = UUID.fromString(s);
+                uuids.add(uuid);
+            }
+        }
+        vocList = vocService.findVocabularyDtoByVocabularyUuids(uuids);
+
+
+        if (listValue.isEmpty()){
+            vocList =vocService.findVocabularyDtoByTermType(type);
+        }
+
+        return vocList;
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
+        List<UUID> listUIIDChecked = new ArrayList<>();
+
+        for (Object o : checkedElements) {
+            if(o instanceof TermVocabularyDto){
+                TermVocabularyDto termDto = (TermVocabularyDto) o;
+                listUIIDChecked.add(termDto.getUuid());
+             }
+        }
+        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+        if (isAdminPreference){
+            CdmPreference savePref = CdmPreference.NewTaxEditorInstance(predicate, saveCheckedElements);
+            String text = this.useLocalOrAdmin.getText();
+            if (text.equals(LocalOrDefaultEnum.Database.getLabel()) ){
+                savePref.setAllowOverride(false);
+            }else if (text.equals(LocalOrDefaultEnum.AllowOverride.getLabel())){
+                savePref.setAllowOverride(true);
+            }
+            PreferencesUtil.setPreferenceToDB(savePref);
+            PreferencesUtil.updateDBPreferences();
+        }else{
+            PreferencesUtil.setStringValue(predicate.getKey(), saveCheckedElements);
+            String text = this.useLocalOrAdmin.getText();
+            if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())){
+                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()), false);
+            }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
+                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()), true);
+            }
+        }
+
+        PreferencesUtil.firePreferencesChanged(this.getClass());
+        return true;
+    }
+
+}