1 31 32 package org.opencms.workplace.list; 33 34 import java.text.Collator ; 35 import java.util.Comparator ; 36 import java.util.Locale ; 37 38 52 public class CmsListItemNumericalComparator implements I_CmsListItemComparator { 53 54 57 public CmsListItemNumericalComparator() { 58 59 } 61 62 65 public Comparator getComparator(final String columnId, final Locale locale) { 66 67 final Collator collator = Collator.getInstance(locale); 68 return new Comparator () { 69 70 73 public int compare(Object o1, Object o2) { 74 75 Comparable c1 = (Comparable )((CmsListItem)o1).get(columnId); 76 Comparable c2 = (Comparable )((CmsListItem)o2).get(columnId); 77 if (c1 instanceof String && c2 instanceof String ) { 78 return collator.compare(c1, c2); 79 } else if (c1 != null) { 80 if (c2 == null) { 81 return 1; 82 } 83 return c1.compareTo(c2); 84 } else if (c2 != null) { 85 return -1; 86 } 87 return 0; 88 } 89 }; 90 } 91 } | Popular Tags |