ref #8568: performance issues for term and voc preference pages
authorKatja Luther <k.luther@bgbm.org>
Thu, 26 Sep 2019 11:03:43 +0000 (13:03 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 26 Sep 2019 11:03:43 +0000 (13:03 +0200)
27 files changed:
eu.etaxonomy.taxeditor.store/fragment.e4xmi
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/OpenCommonNameAreaWizardAdminHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractGeneralTermPreference.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreference.java with 85% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreferencePage.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/PreferencesUtil.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/CommonNameLanguagePreferences.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/LanguageMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/MarkerTypeMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/MeasurementUnitMenuPreferences.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/NameRelationshipTypeMenuPreferences.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/NamedAreaTypeMenuPreferences.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/menu/StageMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/TaxonRelationshipTypeMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractAdminTermSelectionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractTermSelectionWizardPage.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/AvailableDistributionPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableVocabularyWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/CheckBoxTreeComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/GeneralVocabularyPreferencePage.java

index 99468a7a743cab27797c59521e9368fb4ec065f2..5237b7da5bd320f84330c0ba18fe50ffbb7c8b83 100644 (file)
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_pVVyEJFJEeeDJpjGQES7gw" featurename="addons" parentElementId="xpath:/">
     <elements xsi:type="application:Addon" xmi:id="_q4JBkJFJEeeDJpjGQES7gw" elementId="eu.etaxonomy.taxeditor.event.EventUtility" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.event.EventUtility"/>
+    <elements xsi:type="application:Addon" xmi:id="_g-rRcNhtEemVwJVh6CEdBA" elementId="eu.etaxonomy.taxeditor.store.addon.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.preference.DistributionStatusPreferencePage"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_ITE10KkVEeejedk4mZQIGw" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.file" positionInList="before:eu.etaxonomy.taxeditor.application.filemenu.io">
     <elements xsi:type="menu:Menu" xmi:id="_z6EugKqXEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.2">
index e23c647779ae823b18a13128ef5f67f09f391ce2..4ef29d915a06fa239acc1e1b8f5898e8ed1dd1e7 100755 (executable)
@@ -35,7 +35,7 @@ public class OpenCommonNameAreaWizardAdminHandler {
         if (pref == null){
             pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameAreaVocabularies, null);
         }
-        AvailableVocabularyWizard wizard = new AvailableVocabularyWizard(false, pref, Messages.OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES, false);
+        AvailableVocabularyWizard wizard = new AvailableVocabularyWizard(false, pref, Messages.OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES);
 
         WizardDialog dialog = new WizardDialog(shell,
                 wizard);
similarity index 85%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreference.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractGeneralTermPreference.java
index ca8c753dc7288e2ac8514008e3c89a0c7f1364d4..65d4b92102a49bb1ae542c9b951b5c81de75a4a5 100755 (executable)
@@ -34,7 +34,6 @@ import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate;
 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.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
@@ -51,7 +50,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 05.06.2019
  *
  */
-abstract public class GeneralTermPreference extends CdmPreferencePage implements ISelectionChangedListener, SelectionListener{
+abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> extends CdmPreferencePage implements ISelectionChangedListener, SelectionListener{
     protected CheckBoxTreeComposite treeComposite;
     protected List<TermVocabularyDto> vocabularies = new ArrayList<>();
     protected Combo useLocalOrAdmin ;
@@ -62,7 +61,7 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
     protected IPreferencePredicate predicate;
 
 
-    public GeneralTermPreference(){
+    public AbstractGeneralTermPreference(){
         super();
 
     }
@@ -119,7 +118,7 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
         }
 
 
-        treeComposite = new CheckBoxTreeComposite(container, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
+        treeComposite = new CheckBoxTreeComposite(container, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         rememberCheckedValues(getCheckedValuesFromPreferences());
 
@@ -128,7 +127,10 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
                 useLocalOrAdmin.select(1);
             }else{
                 useLocalOrAdmin.select(0);
+                treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
                 treeComposite.setEnabled(false);
+
+                //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
             }
         }else{
             if (allowOverride){
@@ -174,11 +176,11 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
             if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
-            List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(checked);
+            List<T> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
 
         }else{
-            List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
+            List<T> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
             treeComposite.getViewer().refresh();
             treeComposite.redraw();
@@ -186,36 +188,7 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
         }
     }
 
-    protected List<AbstractTermDto> getTermsFromStringValues(List<String> listValue) {
-        List<AbstractTermDto> termlist = new ArrayList<>();
-        ITermService termService = CdmStore.getService(ITermService.class);
-        for (String s : listValue) {
-            if (!StringUtils.isBlank(s)){
-                UUID uuid = UUID.fromString(s);
-
-                DefinedTermBase definedTermBase = termService.load(uuid);
-                if(definedTermBase != null){
-                    termlist.add(TermDto.fromTerm(definedTermBase, true));
-                }else{
-                    IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
-                    TermVocabulary termVocabulary = vocabularyService.load(uuid);
-                    if (termVocabulary != null){
-                        termlist.add(new TermVocabularyDto(uuid, termVocabulary.getRepresentations(), termVocabulary.getTermType()));
-                    }
-                }
-            }
-        }
-        if (listValue.isEmpty()){
-            List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
-            for (DefinedTermBase term: terms){
-                if (!(term instanceof eu.etaxonomy.cdm.model.description.Character) && term != null){
-                    termlist.add(TermDto.fromTerm(term, true));
-                }
-            }
-        }
-
-        return termlist;
-    }
+    protected abstract List<T> getTermsFromStringValues(List<String> listValue);
 
     protected void initialiseVocabularies() {
         if (getVocabularies() != null) {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreferencePage.java
new file mode 100755 (executable)
index 0000000..5bb536a
--- /dev/null
@@ -0,0 +1,55 @@
+/**
+* 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.Collection;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.lang.StringUtils;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since 26.09.2019
+ */
+public class GeneralTermPreferencePage extends AbstractGeneralTermPreference<TermDto> {
+
+    @Override
+    protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
+        Collection<TermDto> termlist = new ArrayList<>();
+        ITermService termService = CdmStore.getService(ITermService.class);
+        List<UUID> uuidList = new ArrayList();
+        for (String s : listValue) {
+            if (!StringUtils.isBlank(s)){
+                UUID uuid = UUID.fromString(s);
+                uuidList.add(uuid);
+            }
+        }
+        if (!uuidList.isEmpty()){
+            termlist = termService.findByUUIDsAsDto(uuidList);
+        }
+
+        if (listValue.isEmpty()){
+            List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
+            for (DefinedTermBase term: terms){
+                if (!(term instanceof eu.etaxonomy.cdm.model.description.Character) && term != null){
+                    termlist.add(TermDto.fromTerm(term, true));
+                }
+            }
+        }
+
+        return new ArrayList(termlist);
+    }
+}
index d6d4d93054fc90c2f21d5e53bb5988e57b40ebc6..1c3549f954ac31e9c375ecbd99851c6cda7dab2e 100644 (file)
@@ -20,7 +20,7 @@ import eu.etaxonomy.cdm.model.term.TermType;
  * @version 1.0
  */
 public class NomenclaturalStatusTypePreferences extends
-               GeneralTermPreference {
+               GeneralTermPreferencePage {
 
        /**
         * <p>Constructor for NomenclaturalStatusTypeMenuPreferences.</p>
index b0b9d53478f56290df01296ca22f5345ab2df214..0fcc7de48527e3a812193c78b7ea8c4c6d1f918d 100644 (file)
@@ -1579,16 +1579,21 @@ public class PreferencesUtil implements IPreferenceKeys {
     }
     public static Abcd206ImportConfigurator getLocalAbcdImportConfigurator(boolean skipCheckOverride){
        Abcd206ImportConfigurator config = Abcd206ImportConfigurator.NewInstance(null,null);
+       CdmPreference pref = CdmPreferenceCache.instance().get(PreferencePredicate.AbcdImportConfig.getKey());
+       if (pref.isAllowOverride()){
        String configString = PreferencesUtil.getStringValue(IPreferenceKeys.LAST_USED_ABCD_CONFIG);
-       if (StringUtils.isBlank(configString)){
-           configString = getStringValue(PreferencePredicate.AbcdImportConfig.getKey(), skipCheckOverride);
-           extractAbcdConfiguratorFromPreferenceString(config, configString);
-           if (config.getNomenclaturalCode() == null){
-               config.setNomenclaturalCode(getPreferredNomenclaturalCode());
+           if (StringUtils.isBlank(configString)){
+               configString = getStringValue(PreferencePredicate.AbcdImportConfig.getKey(), skipCheckOverride);
+               extractAbcdConfiguratorFromPreferenceString(config, configString);
+               if (config.getNomenclaturalCode() == null){
+                   config.setNomenclaturalCode(getPreferredNomenclaturalCode());
+               }
+           }else{
+               config = Abcd206ImportConfigurator.NewInstance(null, null);
+               PreferencesUtil.extractAbcdConfiguratorFromPreferenceString(config, configString);
            }
        }else{
-           config = Abcd206ImportConfigurator.NewInstance(null, null);
-           PreferencesUtil.extractAbcdConfiguratorFromPreferenceString(config, configString);
+           extractAbcdConfiguratorFromPreferenceString(config, pref.getValue());
        }
 
        return config;
index 996cfbfb0ab3278426610fbf60c798b029a84133..dc8d95199bdb28c3f881c2bb1ab985cbd5fe6073 100755 (executable)
@@ -26,7 +26,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 05.06.2019
  *
  */
-public class RankPreference extends GeneralTermPreference {
+public class RankPreference extends GeneralTermPreferencePage {
 
     public RankPreference(){
         super();
index f0e8ad599b7c6d487ee717825df09a656f616a68..9a993e3b1ededeaadc2fd4959b16a9c756e7a079 100755 (executable)
@@ -11,7 +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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
  * <p>LanguageMenuPreferences class.</p>
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @created 24.08.2009
  * @version 1.0
  */
-public class CommonNameLanguagePreferences extends GeneralTermPreference {
+public class CommonNameLanguagePreferences extends GeneralTermPreferencePage {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.preferences.lang"{trunked}</code> */
        public final static String ID = "eu.etaxonomy.taxeditor.preferences.languages"; //$NON-NLS-1$
index 0f8d02b9b85b74bdeafbb2fc3e41a71dc869abde..45b9a76d032381ceab30eac14bcc252667ba9383 100644 (file)
@@ -17,7 +17,7 @@ import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
-import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 17.09.2008
  * @version 1.0
  */
-public class FeatureMenuPreferences extends GeneralTermPreference{
+public class FeatureMenuPreferences extends GeneralTermPreferencePage{
 
     /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
     public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.nameFeature"; //$NON-NLS-1$
index 32a5364a0ff8852c9d9e86c8d618fa3d1b5552c7..ebc4e2b0335f1d30c75902476fe68658fad9bb60 100644 (file)
@@ -11,7 +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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
  * <p>LanguageMenuPreferences class.</p>
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @created 24.08.2009
  * @version 1.0
  */
-public class LanguageMenuPreferences extends GeneralTermPreference {
+public class LanguageMenuPreferences extends GeneralTermPreferencePage {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.preferences.lang"{trunked}</code> */
        public final static String ID = "eu.etaxonomy.taxeditor.preferences.languages"; //$NON-NLS-1$
index 42a38259b3307a1b7b479c0426979fe8969c6bbb..9b6939ac2cea01a32a83e927be5ec86ffe926cb4 100644 (file)
@@ -11,7 +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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
  * <p>MarkerTypeMenuPreferences class.</p>
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @created Aug 28, 2009
  * @version 1.0
  */
-public class MarkerTypeMenuPreferences extends GeneralTermPreference{
+public class MarkerTypeMenuPreferences extends GeneralTermPreferencePage{
 
        /**
         * <p>Constructor for MarkerTypeMenuPreferences.</p>
index 09009b61bc2a89780612430d8142a0b264c2bc76..e9b545a71098482fe973172a7f41d04d6c13880c 100644 (file)
@@ -5,7 +5,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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
  * <p>MeasurementUnitMenuPreferences class.</p>
@@ -13,7 +13,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @author n.hoffmann
  * @version $Id: $
  */
-public class MeasurementUnitMenuPreferences extends GeneralTermPreference {
+public class MeasurementUnitMenuPreferences extends GeneralTermPreferencePage {
 
        /**
         * <p>Constructor for MeasurementUnitMenuPreferences.</p>
index 892df4be7ecf6e1ddb6c356398e7d42399d43313..f59370d974467c8588a720a8274d2cba537d77fe 100755 (executable)
@@ -16,7 +16,7 @@ import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -25,7 +25,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 14.05.2019
  *
  */
-public class NameFeatureMenuPreference extends GeneralTermPreference {
+public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
     /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
     public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.nameFeature"; //$NON-NLS-1$
 
index c84fb65b81fb2df7cfa97ab1df71942b755a317d..ccdde23b65ad8f71ec4382379a73b4f7ab33b14d 100644 (file)
@@ -11,7 +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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
  * <p>NameRelationshipTypeMenuPreferences class.</p>
@@ -21,7 +21,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @version 1.0
  */
 public class NameRelationshipTypeMenuPreferences extends
-               GeneralTermPreference {
+               GeneralTermPreferencePage {
 
 
        /**
index ff5b03bab525fd1fb2db8eb49f8a55e32570cfca..a9ed41941263533cea89743ae8b65c2c272a6c78 100644 (file)
@@ -18,7 +18,7 @@ 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.taxeditor.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -31,7 +31,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NameTypeDesignationStatusMenuPreferences extends
-               GeneralTermPreference {
+               GeneralTermPreferencePage {
     /**
      * <p>Constructor for NameTypeDesignationStatusMenuPreferences.</p>
      */
index 5659b7f3b0231fafc83d29a4da4390c6cced0af6..b4ef0ebb8cc820d2ae5844c4f10127dc99682e7f 100644 (file)
@@ -11,7 +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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
  * <p>NamedAreaTypeMenuPreferences class.</p>
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @created May 11, 2010
  * @version 1.0
  */
-public class NamedAreaTypeMenuPreferences extends GeneralTermPreference{
+public class NamedAreaTypeMenuPreferences extends GeneralTermPreferencePage{
 
        /**
         * <p>Constructor for NamedAreaTypeMenuPreferences.</p>
index c37ad24983ea9dbc4d2f77edcf5f2d5c03c20205..57c1bb03a0dc1fb19c947ec15f28990e902dd3ea 100644 (file)
@@ -18,7 +18,7 @@ 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.taxeditor.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -31,7 +31,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class SpecimenTypeDesignationStatusMenuPreferences extends
-               GeneralTermPreference {
+               GeneralTermPreferencePage {
     /**
     * <p>Constructor for SpecimenTypeDesignationStatusMenuPreferences.</p>
     */
index 25214152afdd035798af4ba2de827762c6f12562..55346d4338eff04e85ea897e09f1869d83b8dd27 100644 (file)
@@ -11,7 +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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 
 /**
@@ -21,7 +21,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @created Jun 25, 2010
  * @version 1.0
  */
-public class StageMenuPreferences extends GeneralTermPreference {
+public class StageMenuPreferences extends GeneralTermPreferencePage {
 
        /**
         * <p>Constructor for StageMenuPreferences.</p>
index b108d698f923bf90bd1e90fad846d32bd1c4b653..efe21cdc7543eb85dc2e6cf552ddef6b6c2869d9 100644 (file)
@@ -11,7 +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.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 
 /**
  * <p>TaxonRelationshipTypeMenuPreferences class.</p>
@@ -21,7 +21,7 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
  * @version 1.0
  */
 public class TaxonRelationshipTypeMenuPreferences extends
-               GeneralTermPreference {
+               GeneralTermPreferencePage {
 
        /**
         * <p>Constructor for TaxonRelationshipTypeMenuPreferences.</p>
index afc1d96706fd501db9f52b52cf26a2aa0b2d6d84..98f00f287856d18d1884105eb0eb7cd3b123e9b6 100755 (executable)
@@ -16,6 +16,7 @@ import org.eclipse.swt.widgets.Composite;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 
@@ -24,9 +25,8 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @since 22.11.2018
  *
  */
-public abstract class AbstractAdminTermSelectionWizardPage extends AbstractTermSelectionWizardPage
-        {
-    private boolean localPrefExist = true;
+public abstract class AbstractAdminTermSelectionWizardPage<T extends AbstractTermDto> extends AbstractTermSelectionWizardPage{
+    //private boolean localPrefExist = true;
 
     /**
      * @param pageName
@@ -72,13 +72,13 @@ public abstract class AbstractAdminTermSelectionWizardPage extends AbstractTermS
             });
     }
 
-    public boolean isLocalPrefExist() {
-        return localPrefExist;
-    }
-
-    public void setLocalPrefExist(boolean localPrefExist) {
-        this.localPrefExist = localPrefExist;
-    }
+//    public boolean isLocalPrefExist() {
+//        return localPrefExist;
+//    }
+//
+//    public void setLocalPrefExist(boolean localPrefExist) {
+//        this.localPrefExist = localPrefExist;
+//    }
 
     public CdmPreference getPreference(){
         return pref;
index 4ee35e65d3b5ae3a76851744b2c030e3463b8544..4143defc60b0382bb8395d19a48a19e1aa605ece 100755 (executable)
@@ -12,23 +12,21 @@ 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.CheckboxTreeViewer;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
-import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoContentProvider;
@@ -40,18 +38,18 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 04.06.2018
  *
  */
-public abstract class AbstractTermSelectionWizardPage extends WizardPage {
+public abstract class AbstractTermSelectionWizardPage<T extends AbstractTermDto> extends WizardPage {
 
     protected CheckBoxTreeComposite treeComposite;
     private List<TermVocabularyDto> vocabularies = new ArrayList<>();
     boolean localPref;
+    protected CdmPreference pref;
+    protected boolean override;
 
     protected TermType type;
 
     protected AbstractTermSelectionWizardPage(String pageName, TermType type) {
         super(pageName);
-        // TODO check if configuration exists
-       // CdmStore.getCurrentSessionManager().bindNullSession();
         this.type = type;
 
     }
@@ -84,6 +82,10 @@ public abstract class AbstractTermSelectionWizardPage extends WizardPage {
         vocabularies = vocs;
     }
 
+    public CdmPreference getPreference() {
+        return pref;
+    }
+
     protected void rememberCheckedValues(String checkedValues) {
         initialiseVocabularies();
 
@@ -99,43 +101,16 @@ public abstract class AbstractTermSelectionWizardPage extends WizardPage {
             if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
-            List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(checked);
+            List<T> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
 
         }else{
-            List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
+            List<T> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
         }
     }
 
-    protected List<AbstractTermDto> getTermsFromStringValues(List<String> listValue) {
-        List<AbstractTermDto> termlist = new ArrayList<>();
-        ITermService termService = CdmStore.getService(ITermService.class);
-        for (String s : listValue) {
-            if (!StringUtils.isBlank(s)){
-                UUID uuid = UUID.fromString(s);
-
-                DefinedTermBase definedTermBase = termService.load(uuid);
-                if(definedTermBase != null){
-                    termlist.add(TermDto.fromTerm(definedTermBase, true));
-                }else{
-                    IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
-                    TermVocabulary termVocabulary = vocabularyService.load(uuid);
-                    if (termVocabulary != null){
-                        termlist.add(new TermVocabularyDto(uuid, termVocabulary.getRepresentations(), termVocabulary.getTermType()));
-                    }
-                }
-            }
-        }
-        if (listValue.isEmpty()){
-            List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
-            for (DefinedTermBase term: terms){
-                termlist.add(TermDto.fromTerm(term, true));
-            }
-        }
 
-        return termlist;
-    }
 
     protected void initialiseVocabularies() {
         if (getVocabularies() != null) {
@@ -149,5 +124,32 @@ public abstract class AbstractTermSelectionWizardPage extends WizardPage {
 
     protected abstract List<TermVocabularyDto> getVocabulariesFromPreference();
 
+    /**
+     * @param listValue
+     * @return
+     */
+    protected abstract List<T> getTermsFromStringValues(List<String> listValue);
+
+    protected void createAllowOverrideButton(Composite parent) {
+        final Button activateCheckButton = new Button(parent, SWT.CHECK);
+       if (localPref){
+           activateCheckButton.setText("Override");
+           activateCheckButton.setSelection(override);
+       }else{
+           activateCheckButton.setText("Allow Override");
+           activateCheckButton.setSelection(pref.isAllowOverride());
+       }
+
+
+
+        activateCheckButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    pref.setAllowOverride(activateCheckButton.getSelection());
+                    override = activateCheckButton.getSelection();
+
+                }
+            });
+    }
 
 }
index 8657b4412d8097a1436dbbbaa36e9eac37ca6f5a..711f15617b0c528326542b6b267326ed80a585b9 100755 (executable)
@@ -11,17 +11,19 @@ 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.swt.widgets.Composite;
 
+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.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.RootElementsOnlyTreeContentProvider;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
 /**
@@ -29,22 +31,23 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @since 04.06.2018
  *
  */
-public class AvailableAreaVocabulariesPage  extends AbstractAdminTermSelectionWizardPage{
+public class AvailableAreaVocabulariesPage extends AbstractTermSelectionWizardPage<TermVocabularyDto>{
 
     String featureTitle;
 
     public AvailableAreaVocabulariesPage(String pageName, boolean localPref, CdmPreference pref, String featureTitle) {
-        super(pageName, TermType.NamedArea, pref );
+        super(pageName, TermType.NamedArea);
         this.localPref = localPref;
         this.featureTitle = featureTitle;
+        this.pref = pref;
 
 
     }
 
-    public AvailableAreaVocabulariesPage(String pageName, boolean localPref, CdmPreference pref, String featureTitle, boolean localPrefExist) {
-        this(pageName, localPref, pref, featureTitle);
-        setLocalPrefExist(localPrefExist);
-    }
+//    public AvailableAreaVocabulariesPage(String pageName, boolean localPref, CdmPreference pref, String featureTitle) {
+//        this(pageName, localPref, pref, featureTitle);
+//
+//    }
 
     @Override
     public void createControl(Composite parent) {
@@ -106,7 +109,7 @@ public class AvailableAreaVocabulariesPage  extends AbstractAdminTermSelectionWi
             if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
-            List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(checked);
+            List<TermVocabularyDto> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
 
         }else{
@@ -115,6 +118,27 @@ public class AvailableAreaVocabulariesPage  extends AbstractAdminTermSelectionWi
         }
     }
 
+    @Override
+    protected List<TermVocabularyDto> getTermsFromStringValues(List<String> listValue) {
+        List<TermVocabularyDto> termlist = new ArrayList<>();
+        List<UUID> uuidList = new ArrayList<>();
+        for (String s : listValue) {
+            if (!StringUtils.isBlank(s)){
+                UUID uuid = UUID.fromString(s);
+                uuidList.add(uuid);
+            }
+        }
+        IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
+
+        termlist = vocabularyService.findVocabularyDtoByVocabularyUuids(uuidList);
+
+
+
+        return termlist;
+
+    }
+
+
 
 
 }
index 5b60cafa08e9b207a82b9df8ff3df1c718b0e760..9efcfc1ad2cbf854b001e5162cbb560d9deaefc4 100755 (executable)
@@ -20,11 +20,13 @@ import java.util.UUID;
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 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.model.term.TermVocabulary;
-import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -35,7 +37,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 21.07.2014
  *
  */
-public class AvailableDistributionPage extends AbstractTermSelectionWizardPage {
+public class AvailableDistributionPage extends AbstractTermSelectionWizardPage<TermDto> {
 
     protected AvailableDistributionPage(String pageName) {
         super(pageName, TermType.NamedArea);
@@ -75,7 +77,7 @@ public class AvailableDistributionPage extends AbstractTermSelectionWizardPage {
             if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
-            List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(checked);
+            List<TermDto> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
         }
 
@@ -147,4 +149,31 @@ public class AvailableDistributionPage extends AbstractTermSelectionWizardPage {
         setVocabularies(vocs);
     }
 
+    @Override
+    protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
+
+            List<TermDto> termlist = new ArrayList<>();
+            ITermService termService = CdmStore.getService(ITermService.class);
+            List<UUID> uuidList = new ArrayList();
+            for (String s : listValue) {
+                if (!StringUtils.isBlank(s)){
+                    UUID uuid = UUID.fromString(s);
+                    uuidList.add(uuid);
+                }
+            }
+            termlist = new ArrayList(termService.findByUUIDsAsDto(uuidList));
+
+
+            if (listValue.isEmpty()){
+                List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
+                for (DefinedTermBase term: terms){
+                    termlist.add(TermDto.fromTerm(term, true));
+                }
+            }
+
+            return termlist;
+
+
+    }
+
 }
index aaf6697c5cd53f8c49935da8fb16467142519982..c68b1bbce4229980aaf2e2bf30d95871d899b3c4 100755 (executable)
@@ -15,6 +15,7 @@ import org.eclipse.swt.widgets.Composite;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 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.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -26,12 +27,13 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @since 05.10.2018
  *
  */
-public class AvailableDistributionStatusPage extends AbstractAdminTermSelectionWizardPage {
+public class AvailableDistributionStatusPage extends AbstractTermSelectionWizardPage<TermDto> {
 
 
 
     public AvailableDistributionStatusPage(String pageName, CdmPreference pref, boolean localPref) {
-        super(pageName, TermType.PresenceAbsenceTerm, pref);
+        super(pageName, TermType.PresenceAbsenceTerm);
+        this.pref = pref;
         this.localPref = localPref;
     }
 
@@ -69,5 +71,11 @@ public class AvailableDistributionStatusPage extends AbstractAdminTermSelectionW
         return null;
     }
 
+    @Override
+    protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 
 }
index 03bf68075e49642fdc9d075aad89b451e1579c3f..bd44096e338179776a282fd0c74998057d898794 100755 (executable)
@@ -45,13 +45,13 @@ public class AvailableVocabularyWizard extends Wizard implements IConversationEn
         this.pref = pref;
         aPage = new AvailableAreaVocabulariesPage(Messages.AvailableVocabularyWizard_PAGE_TITLE, localPref, pref, featureTitle);
     }
-    public AvailableVocabularyWizard(boolean localPref, CdmPreference pref, String featureTitle, boolean localPrefExist) {
-        setWindowTitle(Messages.AvailableVocabularyWizard_WIZARD_TITLE);
-        // TODO if preferenceStore has elements checked load elements in wizard
-        this.localPref = localPref;
-        this.pref = pref;
-        aPage = new AvailableAreaVocabulariesPage(Messages.AvailableVocabularyWizard_PAGE_TITLE, localPref, pref, featureTitle, localPrefExist);
-    }
+//    public AvailableVocabularyWizard(boolean localPref, CdmPreference pref, String featureTitle) {
+//        setWindowTitle(Messages.AvailableVocabularyWizard_WIZARD_TITLE);
+//        // TODO if preferenceStore has elements checked load elements in wizard
+//        this.localPref = localPref;
+//        this.pref = pref;
+//        aPage = new AvailableAreaVocabulariesPage(Messages.AvailableVocabularyWizard_PAGE_TITLE, localPref, pref, featureTitle);
+//    }
 
     @Override
     public void addPages() {
index d3cea9eab1a380c45a269bcb1fcfe0afda3a5706..1568d2e1f96c2001fbf151f51d967871b939781d 100644 (file)
@@ -97,6 +97,7 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
                 updateItem(item);
             }
         });
+
         viewer = new CheckboxTreeViewer(tree);
         viewer.setContentProvider(contentProvider);
         viewer.setLabelProvider(labelProvider);
@@ -173,6 +174,7 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
         for (TreeItem rootItem : rootItems) {
             updateItem(rootItem);
         }
+
     }
 
     @Override
index ce28e9a8e560bae7827e8462b5609ed6606e945a..794940fa690db43d7ebbdbd981e0118dbc4f0d4b 100755 (executable)
@@ -31,7 +31,7 @@ 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.AbstractGeneralTermPreference;
 import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -40,7 +40,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author k.luther
  * @since 13.09.2019
  */
-public class GeneralVocabularyPreferencePage extends GeneralTermPreference implements ISelectionChangedListener, SelectionListener{
+public class GeneralVocabularyPreferencePage extends AbstractGeneralTermPreference<TermVocabularyDto> implements ISelectionChangedListener, SelectionListener{
 
 
     protected List<TermVocabularyDto> getVocabulariesFromPreference() {
@@ -122,11 +122,11 @@ public class GeneralVocabularyPreferencePage extends GeneralTermPreference imple
             if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
-            List<TermVocabularyDto> termsFromStringValues = getVocabulariesFromStringValues(checked);
+            List<TermVocabularyDto> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
 
         }else{
-            List<TermVocabularyDto> termsFromStringValues = getVocabulariesFromStringValues(new ArrayList<String>());
+            List<TermVocabularyDto> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
             treeComposite.getViewer().refresh();
             treeComposite.redraw();
@@ -135,7 +135,8 @@ public class GeneralVocabularyPreferencePage extends GeneralTermPreference imple
     }
 
 
-    protected List<TermVocabularyDto> getVocabulariesFromStringValues(List<String> listValue) {
+    @Override
+    protected List<TermVocabularyDto> getTermsFromStringValues(List<String> listValue) {
         List<TermVocabularyDto> vocList = new ArrayList<>();
         List<UUID> uuids = new ArrayList();
         IVocabularyService vocService = CdmStore.getService(IVocabularyService.class);