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);