- 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());
+ }
+ }