fix #9168: checkedElements should be of type FeatureDto, after changing pref, preferr...
authorKatja Luther <k.luther@bgbm.org>
Wed, 29 Jul 2020 13:12:25 +0000 (15:12 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 29 Jul 2020 13:12:25 +0000 (15:12 +0200)
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/preference/menu/NameFeatureMenuPreference.java

index df9416700f165a081600eda69a30d3233cbcc0a8..f5a27aef2d84b1006959f07506be936e9ad69d77 100644 (file)
@@ -21,7 +21,6 @@ import eu.etaxonomy.cdm.model.term.DefinedTerm;
 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.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -117,18 +116,31 @@ public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm>
         return defaultFeatureTree;
     }
 
+    public static void resetDefaultFeatureTree(){
+        defaultFeatureTree = null;
+    }
     public static TermTree getDefaultNameFeatureTree() {
         if(defaultNameFeatureTree == null) {
-            TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
-            List<Feature> nameFeatures = new ArrayList(voc.getTerms());
-            nameFeatures.remove(Feature.PROTOLOGUE());
+//            List<TermVocabularyDto> vocs = new ArrayList<>();
+//            Set<CdmClass> availableFor = new HashSet<>();
+//            availableFor.add(CdmClass.TAXON_NAME);
+//            vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
+//            TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
+//            List<Feature> nameFeatures = new ArrayList(voc.getTerms());
+//            nameFeatures.remove(Feature.PROTOLOGUE());
+            PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+            defaultNameFeatureTree = PreferencesUtil.getPreferredFeatureTreeForNameDescription(true);
           //List<Feature> nameFeatures = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null);
-            defaultNameFeatureTree = TermTree.NewInstance(nameFeatures);
+//            defaultNameFeatureTree = TermTree.NewInstance(nameFeatures);
         }
         return defaultNameFeatureTree;
 
     }
 
+    public static void resetDefaultNameFeatureTree(){
+        defaultNameFeatureTree = null;
+    }
+
     /**
      * @return
      */
index 3bc5624c3fc141f89ba8741dae48e18d32e5802a..9cabb81b8459b86d3f67e56d7478624967375cab 100755 (executable)
@@ -9,10 +9,13 @@
 package eu.etaxonomy.taxeditor.preference.menu;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.layout.GridData;
@@ -21,14 +24,17 @@ import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.common.CdmClass;
 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.editor.definedterm.DefinedTermSorter;
 import eu.etaxonomy.taxeditor.editor.definedterm.FeatureDtoContentProvider;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
@@ -121,6 +127,7 @@ public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
             boolean result = super.performOk();
             if (result){
                 PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+                TermEditorInput.resetDefaultNameFeatureTree();
             }
         }
         return true;
@@ -141,6 +148,28 @@ public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
         setVocabularies(vocs);
     }
 
+    @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.findFeatureByUUIDsAsDto(uuidList);
+        }
+
+        if (listValue == null || listValue.isEmpty() ){
+            termlist = termService.findFeatureByTitleAsDto("");
+
+        }
+
+        return new ArrayList(termlist);
+    }
 
 
 }