ref #7999: if no pref exists for area vocs then use all vocs
authorKatja Luther <k.luther@bgbm.org>
Thu, 17 Jan 2019 14:06:00 +0000 (15:06 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 17 Jan 2019 14:06:37 +0000 (15:06 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.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/AvailableDistributionPage.java

index 8fc71bf5b11fe23438f67110e2ecd3092817c41b..94aff6e4a60aeaff946eb7b14cc891096a6dfbde 100755 (executable)
@@ -81,6 +81,7 @@ import eu.etaxonomy.cdm.model.common.OrderedTermComparator;
 import eu.etaxonomy.cdm.model.common.Representation;
 import eu.etaxonomy.cdm.model.common.TermIdInVocabularyComparator;
 import eu.etaxonomy.cdm.model.common.TermLanguageComparator;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;
@@ -409,6 +410,7 @@ public class DistributionEditor extends Composite {
         GridData gridData2 = new GridData();
         gridData2.horizontalSpan = 1;
         gridData2.horizontalAlignment = SWT.RIGHT;
+
         button1.setLayoutData(gridData2);
 
 
@@ -482,6 +484,7 @@ public class DistributionEditor extends Composite {
         GridData gridData2 = new GridData();
         gridData2.horizontalSpan = 1;
         gridData2.horizontalAlignment = SWT.RIGHT;
+        gridData2.horizontalIndent = 3;
         parent.setLayoutData(gridData2);
         parent.setLayout(gridLayout);
         searchText = createSearchBar(parent);
@@ -539,6 +542,9 @@ public class DistributionEditor extends Composite {
         }
 
         loadNamedAreas();
+        if (areas == null){
+            areas = new TreeSet<>();
+        }
         for (DefinedTermBase area: areas) {
             this.areaToColumnIndexMap.put(index++, (NamedArea)area);
             String areaLabel;
@@ -575,6 +581,7 @@ public class DistributionEditor extends Composite {
             String property = areaLabel;
             propertyToLabelMap.put(property, areaLabel);
         }
+
     }
 
     private SortedSet<DefinedTermBase> loadNamedAreas() {
@@ -582,40 +589,52 @@ public class DistributionEditor extends Composite {
 
         String valuesAreas = PreferencesUtil.getStringValue(EditorPreferencePredicate.AvailableDistributionAreaTerms.getKey());
         String values = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
+        Set<UUID> uuidList = new HashSet<UUID>();
+        String[] split;
+        List<String> listValue;
+        List<DefinedTermBase> termlist = new ArrayList<DefinedTermBase>();
         if (values != null && values != "") { //$NON-NLS-1$
-            String[] split = values.split(";"); //$NON-NLS-1$
-            List<String> listValue = Arrays.asList(split);
-            List<DefinedTermBase> termlist = new ArrayList<DefinedTermBase>();
-            Set<UUID> uuidList = new HashSet<UUID>();
+            split = values.split(";"); //$NON-NLS-1$
+            listValue = Arrays.asList(split);
+
+
             UUID uuid;
             for(String s : listValue){
                 uuid = UUID.fromString(s);
                 uuidList.add(uuid);
 
             }
-            IVocabularyService service =  CdmStore.getService(IVocabularyService.class);
-            List<TermVocabulary> vocs = service.find(uuidList);
-            split = valuesAreas.split(";");
-            listValue = Arrays.asList(split);
-            for (TermVocabulary voc: vocs){
-                termlist.addAll(service.getTerms(voc, null, null, null, null).getRecords());
-            }
-            List<DefinedTermBase> filteredList = new ArrayList();
-            for (DefinedTermBase area: termlist){
-                if (listValue.contains(area.getUuid().toString())) {
-                    filteredList.add(area);
-                }
+        }
 
+        List<TermVocabulary> vocs = new ArrayList<>();
+        IVocabularyService service =  CdmStore.getService(IVocabularyService.class);
+        if (uuidList.isEmpty()){
+            List<TermVocabulary<DefinedTermBase>> vocList = CdmStore.getService(IVocabularyService.class).findByTermType(TermType.NamedArea, null);
+            vocs.addAll(vocList);
+        }else{
+            vocs= service.find(uuidList);
+        }
+        split = valuesAreas.split(";");
+        listValue = Arrays.asList(split);
+        for (TermVocabulary voc: vocs){
+            termlist.addAll(service.getTerms(voc, null, null, null, null).getRecords());
+        }
+        List<DefinedTermBase> filteredList = new ArrayList();
+        for (DefinedTermBase area: termlist){
+            if (listValue.contains(area.getUuid().toString())) {
+                filteredList.add(area);
             }
 
-            if (PreferencesUtil.isSortNamedAreaByOrderInVocabulary()){
-                areas =  getTermsOrderedByVocabularyOrder(filteredList);
-            } else if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
-                areas = getTermsOrderedByIdInVocabulary(filteredList);
-            }else{
-                areas =  getTermsOrderedByLabels(filteredList, CdmStore.getDefaultLanguage());
-            }
         }
+
+        if (PreferencesUtil.isSortNamedAreaByOrderInVocabulary()){
+            areas =  getTermsOrderedByVocabularyOrder(filteredList);
+        } else if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+            areas = getTermsOrderedByIdInVocabulary(filteredList);
+        }else{
+            areas =  getTermsOrderedByLabels(filteredList, CdmStore.getDefaultLanguage());
+        }
+
         return null;
     }
 
index fa322be8986e8c9c2f0a125a5990a51b0b1b9881..7b954fc795a575588409f8cdb44f49a8fd7c6274 100755 (executable)
@@ -121,6 +121,7 @@ public abstract class AbstractTermSelectionWizardPage extends WizardPage {
                 }
             }
         }
+
         return termlist;
     }
 
index c8ee45031584adf5107433482d3b1b33c48339d4..678c4b96c7c65e1795e9b80fee461790eb4d6560 100755 (executable)
@@ -94,7 +94,10 @@ public class AvailableDistributionPage extends AbstractTermSelectionWizardPage {
             vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
         }else{
             String vocString = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
-
+            if (vocString.equals("")){
+                vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
+                return vocs;
+            }
             String[] arrayVocs = vocString.split(";"); //$NON-NLS-1$
 
             Set<UUID> uuidVocs = new HashSet<>();