- sorting/ordering ONLY for SpecimenOrObservationType (#3736)
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 5 Nov 2013 16:55:40 +0000 (16:55 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 5 Nov 2013 16:55:40 +0000 (16:55 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java

index c73a79271dd28a31c3c9bf4ff0432fae903857f6..04f64ab05238c1e5da7357e0d7d3c9d2e4327678 100644 (file)
@@ -192,13 +192,23 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
         * populateTypes
         * </p>
         */
-       private void populateTypes(){
-           Collection<T> elementsForClass = getElementsForClass(enumType);
-        LinkedHashMap<T, String> orderedTerms = AbstractUtility.orderTerms(elementsForClass);
-               for(Entry<T, String> keyLabelPair : orderedTerms.entrySet()){
-                       elementTypeList.add(keyLabelPair.getKey());
-                       combo.add(keyLabelPair.getValue());
-               }
+    private void populateTypes(){
+        Collection<T> elementsForClass = getElementsForClass(enumType);
+        // special hierarchical order for specimens
+        if(enumType.equals(SpecimenOrObservationType.class)){
+            LinkedHashMap<T, String> orderedTerms = AbstractUtility.orderTerms(elementsForClass);
+            for(Entry<T, String> keyLabelPair : orderedTerms.entrySet()){
+                elementTypeList.add(keyLabelPair.getKey());
+                combo.add(keyLabelPair.getValue());
+            }
+        }
+        // default order
+        else{
+            for(T enumElement : getElementsForClass(enumType)){
+                elementTypeList.add(enumElement);
+                combo.add(((Enum) enumElement).name());
+            }
+        }
        }
 
        /**