fix preferences and term issues
authorKatja Luther <k.luther@bgbm.org>
Wed, 4 Sep 2019 07:40:29 +0000 (09:40 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 4 Sep 2019 07:40:29 +0000 (09:40 +0200)
21 files changed:
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/DynamicFeatureMenuE4.java
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/FeatureAdminMenuPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameFeatureAdminMenuPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameFeatureMenuAdminPreference.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/TaxonNodeOrderAdminPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/TermEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainerTree.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ListComponent.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/OrderPreferences.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/FeatureMenuPreferences.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/store/TermManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NomenclaturalStatusElement.java

index 1aea7f0ef24a54bc5a4233ec02ecd17702b20341..24280ae3fca241394f3fddd796f16880ef0baf76 100644 (file)
@@ -134,10 +134,10 @@ public class DynamicFeatureMenuE4 {
                }
 
                if (featureTree == null) {
-                   featureTree = TermEditorInput.getDefaultFeatureTree();
+                   featureTree = TermEditorInput.getPreferredTaxonFeatureTree(false);
                }
                if (description instanceof TaxonNameDescription){
-                   featureTree = TermEditorInput.getPreferredNameFeatureTree();
+                   featureTree = TermEditorInput.getPreferredNameFeatureTree(false);
 
                }
 
index de8a9b3c4eda952f7fdc3a9d708502a4e7ab018a..1299e3064027f4c6f89df677b68299936d4d117a 100644 (file)
@@ -270,6 +270,7 @@ command.commandname.19 = Open Area Wizard
 \r
 page.name.59 = Name Features\r
 page.name.60 = Name Features\r
+page.name.160 = Taxon Features\r
 page.name.61 = Name Details View
 command.commandname.20 = Structure Tree (OWL)
 command.commandname.21 = OWL Term Export
index bc54fd6fe96456459d569ae6eed5d03b9ae37978..e98ac84503938d43220e6d74349e61e212643fb6 100644 (file)
@@ -270,6 +270,7 @@ command.commandname.19 = 
 
 page.name.59 = Namensmerkmale
 page.name.60 = Namensmerkmale
+page.name.160 = Taxon Merkmale
 page.name.61 = Name Details View
 command.commandname.20 = Struktur-Baum (OWL)
 command.commandname.21 = OWL-Term-Export
index a298c917c7471a325b109a8dd632befb77d28052..be851e1a5b5bda5765837d9c9d7a2de35a35692e 100755 (executable)
          id="eu.etaxonomy.taxeditor.preferences.feature"
          name="%page.name.1">
    </page>
-    <page
+    <!--<page
          category="eu.etaxonomy.taxeditor.preferences.description"
          class="eu.etaxonomy.taxeditor.preference.menu.NameFeatureMenuPreferences"
          id="eu.etaxonomy.taxeditor.preferences.nameFeature"
          name="%page.name.59">
-   </page>
+   </page>-->
    <!--<page
          category="eu.etaxonomy.taxeditor.preferences.description"
          class="eu.etaxonomy.taxeditor.preference.menu.PresenceAbsenceMenuPreferences"
          id="eu.etaxonomy.taxeditor.preferences.defaultFeatureTreePreferenecs"
          name="%page.name.22">
    </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.description"
+            class="eu.etaxonomy.taxeditor.preference.CommonNameVocabularyPreference"
+            id="eu.etaxonomy.taxeditor.store.vocabularyPreference"
+            name="%page.name.47">
+      </page>
    <page
          category="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
          class="eu.etaxonomy.taxeditor.preference.LanguageRepresentationPreferencePage"
             id="eu.etaxonomy.taxeditor.preferences.description"
             name="%page.name.0">
       </page>
+      
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
-            class="eu.etaxonomy.taxeditor.preference.menu.FeatureMenuAdminPreferences"
-            id="eu.etaxonomy.taxeditor.preferences.feature"
-            name="%page.name.1">
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NameFeatureAdminMenuPreference"
+            id="eu.etaxonomy.taxeditor.preferences.nameAdminFeature"
+            name="%page.name.59">
       </page>
-      <page
+       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
-            class="eu.etaxonomy.taxeditor.preference.menu.NameFeatureMenuAdminPreferences"
-            id="eu.etaxonomy.taxeditor.preferences.nameFeature"
-            name="%page.name.59">
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.FeatureAdminMenuPreference"
+            id="eu.etaxonomy.taxeditor.preferences.adminFeature"
+            name="%page.name.1">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
          name="%page.name.41">
    </page>
    <page
-         category="eu.etaxonomy.taxeditor.preferences.general"
-         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.VocabularyAdminPreferences"
+         category="eu.etaxonomy.taxeditor.preferences.description"
+         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.CommonNameVocabularyAdminPreference"
          id="eu.etaxonomy.taxeditor.store.vocabularyAdminPreference"
          name="%page.name.47">
    </page>
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/FeatureAdminMenuPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/FeatureAdminMenuPreference.java
new file mode 100755 (executable)
index 0000000..f675a6b
--- /dev/null
@@ -0,0 +1,39 @@
+/**
+* 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.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.menu.FeatureMenuPreferences;
+
+/**
+ * @author k.luther
+ * @since 03.09.2019
+ */
+public class FeatureAdminMenuPreference extends FeatureMenuPreferences {
+    /**
+     * <p>Constructor for FeatureMenuPreference.</p>
+     */
+    public FeatureAdminMenuPreference() {
+        super();
+        setLocalPref(false);
+        setPredicate(PreferencePredicate.TaxonFeatures);
+        type = TermType.Feature;
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        return performOkAdmin();
+    }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameFeatureAdminMenuPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameFeatureAdminMenuPreference.java
new file mode 100755 (executable)
index 0000000..50a5f68
--- /dev/null
@@ -0,0 +1,47 @@
+/**
+* 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.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.menu.NameFeatureMenuPreference;
+
+/**
+ * @author k.luther
+ * @since 03.09.2019
+ */
+public class NameFeatureAdminMenuPreference extends NameFeatureMenuPreference {
+
+    /**
+     * <p>Constructor for NameFeatureMenuPreference.</p>
+     */
+    public NameFeatureAdminMenuPreference() {
+        super();
+        setLocalPref(false);
+        setPredicate(PreferencePredicate.NameFeatures);
+        type = TermType.Feature;
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+       boolean result = performOkAdmin();
+       if (result){
+           if (result){
+               PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+           }
+       }
+       return result;
+    }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameFeatureMenuAdminPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameFeatureMenuAdminPreference.java
deleted file mode 100755 (executable)
index 7ed673a..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
-* 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 java.util.ArrayList;
-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.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.NameFeatureMenuPreference;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author k.luther
- * @since 13.08.2019
- */
-public class NameFeatureMenuAdminPreference extends NameFeatureMenuPreference implements IE4AdminPreferencePage {
-
-    @Override
-    public boolean performOk() {
-        if (!isApply()){
-            return true;
-        }
-        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
-        List<UUID> listUIIDChecked = new ArrayList<>();
-        List<DefinedTermBase> 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()));
-            }
-        }
-        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
-        if (StringUtils.isBlank(saveCheckedElements)){
-            saveCheckedElements = null;
-        }
-        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();
-        PreferencesUtil.firePreferencesChanged(this.getClass());
-        return true;
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/TaxonNodeOrderAdminPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/TaxonNodeOrderAdminPreference.java
new file mode 100755 (executable)
index 0000000..25dbdce
--- /dev/null
@@ -0,0 +1,19 @@
+/**
+* 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.taxeditor.preference.OrderPreferences;
+
+/**
+ * @author k.luther
+ * @since 04.09.2019
+ */
+public class TaxonNodeOrderAdminPreference extends OrderPreferences {
+
+}
index 8a43b16d02a3545a79d7b908d35e928851c051ba..9f89a62d4dad7020b47d2b6b86ee77e72856ff7b 100644 (file)
@@ -102,7 +102,8 @@ public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm>
     public static TermTree getDefaultFeatureTree() {
         if(defaultFeatureTree == null) {
             List<Feature> features = TermStore.getTerms(Feature.class);
-            List<Feature> nameFeatures = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null);
+            TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
+            List<Feature> nameFeatures = new ArrayList(voc.getTerms());
             List<Feature> copy = new ArrayList(features);
             for (Feature feature: copy){
                 if (nameFeatures.contains(feature)){
@@ -116,9 +117,10 @@ public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm>
 
     public static TermTree getDefaultNameFeatureTree() {
         if(defaultNameFeatureTree == null) {
-
-            List<Feature> nameFeatures = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null);
-
+            TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
+            List<Feature> nameFeatures = new ArrayList(voc.getTerms());
+            nameFeatures.remove(Feature.PROTOLOGUE());
+          //List<Feature> nameFeatures = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null);
             defaultNameFeatureTree = TermTree.NewInstance(nameFeatures);
         }
         return defaultNameFeatureTree;
@@ -128,9 +130,15 @@ public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm>
     /**
      * @return
      */
-    public static TermTree<?> getPreferredNameFeatureTree() {
+    public static TermTree<?> getPreferredNameFeatureTree(boolean createNew) {
+
+        return PreferencesUtil.getPreferredFeatureTreeForNameDescription(createNew);
+
+    }
+
+    public static TermTree<?> getPreferredTaxonFeatureTree(boolean createNew) {
 
-        return PreferencesUtil.getPreferredFeatureTreeForNameDescription();
+        return PreferencesUtil.getPreferredFeatureTreeForTaxonDescription(createNew);
 
     }
 }
index d34ef1c6da2e0dedd22d0cfbcba23ad9c46f9a90..98785ed13436098231f35e9da2d0377e65b67554 100644 (file)
@@ -70,10 +70,6 @@ public class FeatureNodeContainerTree {
        public void buildTree(){
                List<TermNode> children = featureTree.getRootChildren();
 
-//             if(description.getElements().isEmpty()){
-//                     return;
-//             }
-
                for(TermNode featureNode : children){
                        root.findLeaves(featureNode);
                }
index 04625e0135f056f8909186fd585c77431355f181..b2181c72eb0ba2fc6156e2f9d9b50a90e73f6bd0 100755 (executable)
@@ -26,7 +26,6 @@ import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.TermStore;
 
 /**
  * @author k.luther
@@ -146,7 +145,7 @@ public class CdmPreferenceCache {
                 }
 
                 List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                CdmStore.getTermManager().setPreferredTerms(definedTermBases, TermStore.getTerms(TermType.PresenceAbsenceTerm, null));
+                CdmStore.getTermManager().setPreferredTermsByType(definedTermBases, TermType.PresenceAbsenceTerm);
             }
         }
          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableRanks);
@@ -168,7 +167,7 @@ public class CdmPreferenceCache {
                 }
 
                 List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                CdmStore.getTermManager().setPreferredTerms(definedTermBases, TermStore.getTerms(TermType.Rank, null));
+                CdmStore.getTermManager().setPreferredTermsByType(definedTermBases, TermType.Rank);
             }
         }
 
@@ -191,7 +190,7 @@ public class CdmPreferenceCache {
                 }
 
                 List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                CdmStore.getTermManager().setPreferredTerms(definedTermBases, TermStore.getTerms(TermType.NomenclaturalStatusType, null));
+                CdmStore.getTermManager().setPreferredTermsByType(definedTermBases, TermType.NomenclaturalStatusType);
             }
         }
     }
index f22aabb995c361e41df6739664af5a21f9a68fe2..5518bd038a7a1cf45324ecc769d36cebae6d72e6 100755 (executable)
@@ -45,7 +45,6 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.TermStore;
 
 /**
  * @author k.luther
@@ -212,7 +211,9 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
         if (listValue.isEmpty()){
             List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
             for (DefinedTermBase term: terms){
-                termlist.add(TermDto.fromTerm(term, true));
+                if (!(term instanceof eu.etaxonomy.cdm.model.description.Character)){
+                    termlist.add(TermDto.fromTerm(term, true));
+                }
             }
         }
 
@@ -324,9 +325,39 @@ abstract public class GeneralTermPreference extends CdmPreferencePage implements
         if (vocabularies.size() == 1){
             CdmStore.getTermManager().setPreferredTermsByDto(preferredTermDtos, vocabularies.get(0));
         }else{
-            CdmStore.getTermManager().setPreferredTerms(preferredTerms, TermStore.getTerms(type, null));
+            CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, type);
+        }
+        PreferencesUtil.firePreferencesChanged(this.getClass());
+        return true;
+    }
+
+    protected boolean performOkAdmin() {
+        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
+        List<UUID> listUIIDChecked = new ArrayList<>();
+        List<DefinedTermBase> 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()));
+            }
+        }
+        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+        if (StringUtils.isBlank(saveCheckedElements)){
+            saveCheckedElements = null;
+        }
+        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();
         PreferencesUtil.firePreferencesChanged(this.getClass());
         return true;
     }
+
 }
index 291153bf9ac679e9010e0f713bac2f6db787b4bf..ca9ba7995b6062974a302f84ddb02cde97078e95 100755 (executable)
@@ -72,7 +72,7 @@ public class ListComponent implements ModifyListener
         this.isAdmin= isAdmin;
         this.preferencePage = parentPage;
         providerListPreference = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.BioCaseProvider);
-        if (!isAdmin && !providerListPreference.isAllowOverride()){
+        if (!isAdmin && providerListPreference != null && !providerListPreference.isAllowOverride()){
             Label editingNotAllowed = new Label(parent, style);
             editingNotAllowed.setText(Messages.AbcdImportProvider_description_not_available);
             return ;
index b6810bd7295baaf51fca300eff54c2af2d88518d..bc169b319945f48d0d544ad07fb5b0c8e7cd4c3c 100644 (file)
@@ -95,7 +95,7 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
 \r
                @Override\r
                public boolean performOk() {\r
-                   if (this.orderActivated != null){\r
+                   if (isApply()){\r
                    PreferencesUtil.setSortNodes(this.orderActivated);\r
                PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);\r
                MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);\r
index f41625a2f2336663086a505af21433f797fb0131..8decd9b078e87efd3ad30851abb8814ecdf75651 100644 (file)
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 import java.util.StringTokenizer;
 import java.util.UUID;
 
@@ -65,12 +66,15 @@ import eu.etaxonomy.cdm.model.term.IDefinedTerm;
 import eu.etaxonomy.cdm.model.term.ISimpleTerm;
 import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.FieldMatcher;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.cdm.strategy.match.MatchMode;
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
@@ -98,7 +102,9 @@ public class PreferencesUtil implements IPreferenceKeys {
     public static final String P2_REPOSITORY_FIELDS_DELIM = ";";
     public static final String SUBJECT_DELIM = "/";
 
-    private static TermTree preferredNameFeatureTree;
+    private static TermTree<Feature> preferredNameFeatureTree;
+
+    private static TermTree<Feature> preferredTaxonFeatureTree;
 
     private final static Logger logger = Logger.getLogger(PreferencesUtil.class);
 
@@ -248,18 +254,18 @@ public class PreferencesUtil implements IPreferenceKeys {
         CdmPreference pref = null;
 //
         pref = cache.get(name);
-        if (pref == null ){
-            //get default value for Predicate
-            IPreferencePredicate pred = PreferencePredicate.getByKey(name);
-            if (pred != null){
-                if (pred.getDefaultValue() != null){
-                    pref = CdmPreference.NewTaxEditorInstance(pred, pred.getDefaultValue().toString());
-                }else{
-                    pref = CdmPreference.NewTaxEditorInstance(pred, null);
-                }
-                pref.setAllowOverride(true);
-            }
-        }
+//        if (pref == null ){
+//            //get default value for Predicate
+//            IPreferencePredicate pred = PreferencePredicate.getByKey(name);
+//            if (pred != null){
+//                if (pred.getDefaultValue() != null){
+//                    pref = CdmPreference.NewTaxEditorInstance(pred, pred.getDefaultValue().toString());
+//                }else{
+//                    pref = CdmPreference.NewTaxEditorInstance(pred, null);
+//                }
+//                pref.setAllowOverride(true);
+//            }
+//        }
         return pref;
     }
 
@@ -480,7 +486,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         String preferredCode;
         if(pref == null || (pref.isAllowOverride() && getBooleanValue(prefOverrideKey(PreferencePredicate.NomenclaturalCode.getKey())))){
             preferredCode = getStringValue(
-                    PreferencePredicate.NomenclaturalCode.getKey(), true);
+                    PreferencePredicate.NomenclaturalCode.getKey());
 
         }else{
             preferredCode = pref.getValue();
@@ -982,7 +988,8 @@ public class PreferencesUtil implements IPreferenceKeys {
         }
         TermTree tree = CdmStore.getService(
                 ITermTreeService.class).load(UUID.fromString(uuidString));
-        if (tree.getId() == 0) {
+
+        if (tree == null || tree.getId() == 0) {
             return null;
         }
         return tree;
@@ -1764,8 +1771,8 @@ public class PreferencesUtil implements IPreferenceKeys {
     /**
      *
      */
-    public static TermTree getPreferredFeatureTreeForNameDescription() {
-        if(preferredNameFeatureTree != null){
+    public static TermTree getPreferredFeatureTreeForNameDescription(boolean createNew) {
+        if(preferredNameFeatureTree != null && !createNew){
             return preferredNameFeatureTree;
         }
         createPreferredFeatureTreeForNameDescription();
@@ -1779,17 +1786,38 @@ public class PreferencesUtil implements IPreferenceKeys {
         CdmPreference pref = cache.get(PreferencePredicate.NameFeatures.getKey());
         List<Feature> terms;
         boolean override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NameFeatures.getKey()));
-        if (pref != null ){
-            List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(pref.getValue());
+        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(pref.getPredicate());
+        if (uuids != null && !uuids.isEmpty()){
+
             terms = CdmStore.getTermManager().getTerms(uuids, Feature.class);
-        }else if (override){
-            terms = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()));
+//        }else if (override){
+//            List<TermDto>  termDtos= CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()));
+//            List<UUID> uuidList = new ArrayList<>();
+//
+//            for (Object term: termDtos){
+//                if (term instanceof TermDto){
+//                    uuidList.add(((TermDto)term).getUuid());
+//                }
+//            }
+//            if (!uuidList.isEmpty()){
+//                terms = CdmStore.getTermManager().getTerms(uuidList, Feature.class);
+//            }else{
+//                terms = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()));
+//            }
+//
+
+
         }else{
             terms = new ArrayList();
             terms.addAll(TermStore.getTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null));
+
         }
         terms.remove(Feature.PROTOLOGUE());
-        preferredNameFeatureTree = TermTree.NewInstance(terms);
+        if (terms.isEmpty()){
+            preferredNameFeatureTree = TermEditorInput.getDefaultNameFeatureTree();
+        }else{
+            preferredNameFeatureTree = TermTree.NewInstance(terms);
+        }
 
 
     }
@@ -1810,6 +1838,51 @@ public class PreferencesUtil implements IPreferenceKeys {
 
     }
 
+    /**
+     * @return
+     */
+    public static TermTree<?> getPreferredFeatureTreeForTaxonDescription(boolean createNew) {
+        if(preferredTaxonFeatureTree != null && !createNew){
+            return preferredTaxonFeatureTree;
+        }
+        createPreferredFeatureTreeForTaxonDescription();
+        return preferredTaxonFeatureTree;
+
+    }
+
+    public static void createPreferredFeatureTreeForTaxonDescription() {
+
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        CdmPreference pref = cache.get(PreferencePredicate.TaxonFeatures.getKey());
+        List<Feature> terms;
+        boolean override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonFeatures.getKey()));
+        if (pref != null && !override){
+            List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(pref.getValue());
+            terms = CdmStore.getTermManager().getTerms(uuids, Feature.class);
+        }else if (override){
+            terms= CdmStore.getTermManager().getPreferredTerms(TermType.Feature);
+            TermVocabulary nameVocabulary = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
+            Set<Feature> nameFeature = nameVocabulary.getTerms();
+            terms.removeAll(nameFeature);
+
+        }else{
+            terms= CdmStore.getTermManager().getPreferredTerms(TermType.Feature);
+            TermVocabulary nameVocabulary = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
+            Set<Feature> nameFeature = nameVocabulary.getTerms();
+            terms.removeAll(nameFeature);
+
+        }
+
+        if (terms.isEmpty()){
+            preferredTaxonFeatureTree = TermEditorInput.getDefaultFeatureTree();
+        }else{
+            preferredTaxonFeatureTree = TermTree.NewInstance(terms);
+        }
+
+
+    }
+
+
 
 
 }
index 9f077eb2f6c5ab7e8c7c26a117784bfecba2e80c..f1c367dd354f5766074f73a87af0476d0507758f 100755 (executable)
@@ -22,7 +22,6 @@ 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.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.TermStore;
 
 /**
  * @author k.luther
@@ -87,7 +86,7 @@ public class RankPreference extends GeneralTermPreference {
             PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableRanks.getKey()), true);
         }
 
-        CdmStore.getTermManager().setPreferredTerms(preferredTerms, TermStore.getTerms(TermType.Rank, null));
+        CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, TermType.Rank);
         PreferencesUtil.firePreferencesChanged(this.getClass());
         return true;
 
index b63d38705547e4ecb55b90ccb81303316981caad..9e637c45ea06a16fe1bd4fe0bd2438ad843c937b 100644 (file)
@@ -8,9 +8,17 @@
 */
 package eu.etaxonomy.taxeditor.preference.menu;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.taxeditor.l10n.Messages;
+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.store.CdmStore;
 
 /**
  * <p>FeatureMenuPreferences class.</p>
@@ -20,26 +28,47 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
  * @created 17.09.2008
  * @version 1.0
  */
-public class FeatureMenuPreferences extends AbstractMenuPreferences<Feature> {
-
-       /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
-       public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.feature"; //$NON-NLS-1$
-
-       /**
-        * <p>Constructor for FeatureMenuPreferences.</p>
-        */
-       public FeatureMenuPreferences() {
-               super("Feature Preferences", //$NON-NLS-1$
-                               Messages.FeatureMenuPreferences_display,
-                               false);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected TermType getTermType() {
-               return TermType.Feature;
-       }
+public class FeatureMenuPreferences extends GeneralTermPreference{
+
+    /** 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$
+
+    /**
+     * <p>Constructor for FeatureMenuPreference.</p>
+     */
+    public FeatureMenuPreferences() {
+        super();
+        setLocalPref(true);
+        setPredicate(PreferencePredicate.TaxonFeatures);
+        type = TermType.Feature;
+    }
+
+    @Override
+    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean performOk(){
+        boolean result = super.performOk();
+        if (result){
+            TermEditorInput.getPreferredTaxonFeatureTree(true);
+        }
+        return true;
+
+    }
+
+    @Override
+    protected void initialiseVocabularies() {
+
+       super.initialiseVocabularies();
+       List<TermVocabularyDto> vocs = new ArrayList<>();
+       vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
+       this.getVocabularies().removeAll(vocs);
+
+    }
+
+
+
 }
index aac0361f0a29a5a9de3c8a0fce3c79b0aff899d2..cd591c9993a8e7884487d922bcf830d997b19811 100644 (file)
@@ -9,9 +9,12 @@
 
 package eu.etaxonomy.taxeditor.preference.menu;
 
+import java.util.List;
+
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
-import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
 
 /**
  * <p>NameTypeDesignationStatusMenuPreferences class.</p>
@@ -21,23 +24,23 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
  * @version 1.0
  */
 public class NameTypeDesignationStatusMenuPreferences extends
-               AbstractMenuPreferences<NameTypeDesignationStatus> {
-       /**
-        * <p>Constructor for NameTypeDesignationStatusMenuPreferences.</p>
-        */
-       public NameTypeDesignationStatusMenuPreferences() {
-               super("Name Type Designation Status Preferences", //$NON-NLS-1$
-                               Messages.NameTypeDesignationStatusMenuPreferences_configure,
-                               false);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected TermType getTermType() {
-               return TermType.NameTypeDesignationStatus;
-       }
+               GeneralTermPreference {
+    /**
+     * <p>Constructor for NameTypeDesignationStatusMenuPreferences.</p>
+     */
+    public NameTypeDesignationStatusMenuPreferences() {
+        super();
+        setLocalPref(true);
+        setPredicate(PreferencePredicate.NameTypeDesignationStatus);
+        type = TermType.NameTypeDesignationStatus;
+    }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }
index 38e8b8453856b15525c5d7174c495f05bd4cb7c0..611cc0b8096ed900bdec85ccc57bd910c0219948 100644 (file)
@@ -9,9 +9,22 @@
 
 package eu.etaxonomy.taxeditor.preference.menu;
 
+import java.util.ArrayList;
+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.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
-import eu.etaxonomy.taxeditor.l10n.Messages;
+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;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * <p>SpecimenTypeDesignationStatusMenuPreferences class.</p>
@@ -21,23 +34,57 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
  * @version 1.0
  */
 public class SpecimenTypeDesignationStatusMenuPreferences extends
-               AbstractMenuPreferences<SpecimenTypeDesignationStatus> {
-       /**
-        * <p>Constructor for SpecimenTypeDesignationStatusMenuPreferences.</p>
-        */
-       public SpecimenTypeDesignationStatusMenuPreferences() {
-               super("Specimen Type Designation Status Preferences", //$NON-NLS-1$
-                               Messages.SpecimenTypeDesignationStatusMenuPreferences_configure,
-                               false);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected TermType getTermType() {
-               return TermType.SpecimenTypeDesignationStatus;
-       }
+               GeneralTermPreference {
+    /**
+    * <p>Constructor for SpecimenTypeDesignationStatusMenuPreferences.</p>
+    */
+   public SpecimenTypeDesignationStatusMenuPreferences() {
+       super();
+       setLocalPref(true);
+       setPredicate(PreferencePredicate.SpecimenTypeDesignationStatus);
+       type = TermType.SpecimenTypeDesignationStatus;
+   }
+
+
+
+   /**
+    * {@inheritDoc}
+    */
+   @Override
+   protected List<TermVocabularyDto> getVocabulariesFromPreference() {
+       // TODO Auto-generated method stub
+       return null;
+   }
+
+
+   @Override
+   public boolean performOk() {
+       if (!isApply()){
+           return true;
+       }
+       Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
+       List<UUID> listUIIDChecked = new ArrayList<>();
+       List<DefinedTermBase> 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()));
+           }
+       }
+       String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+
+       PreferencesUtil.setStringValue(PreferencePredicate.SpecimenTypeDesignationStatus.getKey(), saveCheckedElements);
+       String text = this.useLocalOrAdmin.getText();
+       if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())){
+           PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.SpecimenTypeDesignationStatus.getKey()), false);
+       }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
+           PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.SpecimenTypeDesignationStatus.getKey()), true);
+       }
+
+       CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, TermType.SpecimenTypeDesignationStatus);
+       PreferencesUtil.firePreferencesChanged(this.getClass());
+       return true;
 
+   }
 }
index 75ba476f2029d448192b8e856855513c4cea83f4..83706704b98f4d47d3153bba227d7a0922e53eef 100644 (file)
@@ -13,6 +13,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
@@ -91,11 +92,31 @@ public class TermManager {
            comp = new DefaultTermComparator<T>();
        }
        List terms = cachedTermMap.get(termVocabulary.getUuid());
+       List<T> termBaseList = new ArrayList();
        if(terms==null){
            terms = getFilteredTerms(new ArrayList<T>(TermStore.getTerms(termVocabulary,comp)));
            cachedTermMap.put(termVocabulary.getUuid(), terms);
+       }else{
+           Iterator iterator = terms.iterator();
+           DefinedTermBase termBase = null;
+           List<UUID> uuids = new ArrayList();
+           while (iterator.hasNext()){
+               Object term = iterator.next();
+               if (term instanceof TermDto){
+                   TermDto dto = (TermDto)term;
+                   uuids.add(dto.getUuid());
+               }else {
+                   termBaseList.add((T)term);
+               }
+
+           }
+           if (!uuids.isEmpty()){
+               termBaseList.addAll(this.getTerms(uuids, DefinedTermBase.class));
+           }
+
        }
-       terms.sort(comp);
+       termBaseList.sort(comp);
+       terms = termBaseList;
        return terms;
    }
        /**
@@ -137,6 +158,9 @@ public class TermManager {
                                filteredTerms.add(term);
                        }
                }
+               if (filteredTerms.isEmpty()){
+                   return initialTerms;
+               }
 
                return filteredTerms;
        }
@@ -191,8 +215,36 @@ public class TermManager {
                }
                clearTermMapForTermVoc(voc.getUuid());
 
+
+
        }
 
+
+          /**
+     * Generic method to set term preferences
+     *
+     * @param preferredTerms a {@link java.util.List} object.
+     * @param initialTerms a {@link java.util.List} object.
+     * @param <T> a T object.
+     */
+    public <T extends DefinedTermBase> void setPreferredTermsByType(Collection<T> preferredTerms, TermType type){
+
+
+        Collection<UUID> undesiredTermUuids = new ArrayList<UUID>();
+        List<DefinedTermBase> oldValues = getPreferredTerms(type);
+        for (DefinedTermBase term: oldValues){
+            PreferencesUtil.setBooleanValue(getPrefName(term), false);
+        }
+        for(TermBase term : preferredTerms){
+           PreferencesUtil.setBooleanValue(getPrefName(term), true);
+
+        }
+
+        clearTermMapForTermType(type);
+
+
+
+    }
        /**
      * Generic method to set term preferences
      *
@@ -205,7 +257,7 @@ public class TermManager {
 
         Collection<UUID> undesiredTermUuids = new ArrayList<UUID>();
 
-        for(TermDto term : vocDto.getTerms()){
+        for(TermDto term : preferredTerms){
             if(!preferredTerms.contains(term)){
                 undesiredTermUuids.add(term.getUuid());
                 PreferencesUtil.setBooleanValue(getPrefNameByDto(term), false);
@@ -215,6 +267,8 @@ public class TermManager {
         }
         //if (initialTerms.iterator().hasNext()){
             clearTermMapForTermVoc(vocDto.getUuid());
+            List<TermDto> list = new ArrayList<>(preferredTerms);
+            cachedTermMap.put(vocDto.getUuid(), list);
         //}
 
     }
index 0a980efc5e944870e27f0c73b9f1bd33f6752892..3d850d620b931b479f0ec43750955211b3cea344 100644 (file)
@@ -13,12 +13,9 @@ import java.util.Comparator;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.cdm.model.term.VocabularyEnum;
-import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -50,7 +47,7 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
-           TermVocabulary vocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.NomenclaturalStatusType.getUuid());
+           //TermVocabulary vocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.NomenclaturalStatusType.getUuid());
 
            Comparator<NomenclaturalStatusType> termComparator= new Comparator<NomenclaturalStatusType>() {
 
@@ -79,7 +76,7 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
             }
         };
 
-               nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(vocabulary, this, "Status", null,true, style, true);
+               nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(TermType.NomenclaturalStatusType, this, "Status", null,true, style, true);
                nomenclaturalStatusTypeCombo.setTermComparator(termComparator);
                ruleConsideredText = formFactory.createTextWithLabelElement(this, "Rule Considered", "", style);