}
protected IAdaptable getInitialInput() {
- Comparator<TaxonNodeDto> comparator;
- NavigatorOrderEnum orderValue = NavigatorOrderEnum.RankAndNameOrder;
- try{
- orderValue = PreferencesUtil.getSortNodes();
- }catch(IllegalArgumentException e){
-
- }
-
- if (orderValue.equals(NavigatorOrderEnum.NaturalOrder)){
- comparator = new TaxonNodeDtoNaturalComparator();
- } else if (orderValue.equals(NavigatorOrderEnum.AlphabeticalOrder)){
- comparator = new TaxonNodeDtoByNameComparator();
- }else {
- comparator = new TaxonNodeDtoByRankAndNameComparator();
- }
-
+ Comparator<TaxonNodeDto> comparator = PreferencesUtil.getNodeComparator();
+
TaxonNodeNavigatorComparator viewerComparator = new TaxonNodeNavigatorComparator(comparator);
viewer.setComparator(viewerComparator);
viewer.setComparer(new IElementComparer() {
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByRankAndNameComparator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoNaturalComparator;
import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.FieldMatcher;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
public static NavigatorOrderEnum getSortNodes() {
return NavigatorOrderEnum.valueOf(getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
}
-
+
public static boolean isNodesSortedNaturally() {
NavigatorOrderEnum value = NavigatorOrderEnum.valueOf(getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
return value.equals(NavigatorOrderEnum.NaturalOrder);
NavigatorOrderEnum value = NavigatorOrderEnum.valueOf(getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
return value.equals(NavigatorOrderEnum.RankAndNameOrder);
}
+
+ public static Comparator<TaxonNodeDto> getNodeComparator() {
+ Comparator<TaxonNodeDto> comparator;
+ NavigatorOrderEnum orderValue = NavigatorOrderEnum.RankAndNameOrder;
+ try{
+ orderValue = PreferencesUtil.getSortNodes();
+ }catch(IllegalArgumentException e){
+
+ }
+
+ if (orderValue.equals(NavigatorOrderEnum.NaturalOrder)){
+ comparator = new TaxonNodeDtoNaturalComparator();
+ } else if (orderValue.equals(NavigatorOrderEnum.AlphabeticalOrder)){
+ comparator = new TaxonNodeDtoByNameComparator();
+ }else {
+ comparator = new TaxonNodeDtoByRankAndNameComparator();
+ }
+ return comparator;
+ }
public static boolean isStoreNavigatorState() {
return getBooleanValue(RESTORE_NAVIGATOR_STATE);
package eu.etaxonomy.taxeditor.util;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
import org.eclipse.jface.viewers.ITreeContentProvider;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByRankAndNameComparator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoNaturalComparator;
+import eu.etaxonomy.taxeditor.preference.NavigatorOrderEnum;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
// HHH_9751_Util.removeAllNull(childrenSet);
// children = childrenSet.toArray();
// }
-
+ List<TaxonNodeDto> childrenList = null;
+
if(parentElement instanceof TaxonNode){
- children = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNode)parentElement).toArray();
+ childrenList = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNode)parentElement);
}else {
- children = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNodeDto)parentElement).toArray();
+ childrenList = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNodeDto)parentElement);
}
-
+ Comparator<TaxonNodeDto> comparator = PreferencesUtil.getNodeComparator();
+ Collections.sort(childrenList, comparator);
+ children = childrenList.toArray();
return children != null ? children : NO_CHILDREN;
}
+
+
@Override
public Object getParent(Object element) {
if (taxonNodeService == null){