Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/ItemAuthorBean.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/ItemAuthorBean.java (revision 108415) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/ItemAuthorBean.java (working copy) @@ -34,6 +34,9 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.text.ParseException; +import java.text.RuleBasedCollator; +import java.text.Collator; import javax.faces.context.FacesContext; import javax.faces.context.ExternalContext; @@ -840,7 +843,12 @@ public int compare(Object o1, Object o2) { SelectItem i1 = (SelectItem) o1; SelectItem i2 = (SelectItem) o2; - return i1.getLabel().compareToIgnoreCase(i2.getLabel()); + RuleBasedCollator collator_ini = (RuleBasedCollator)Collator.getInstance(); + try { + RuleBasedCollator collator= new RuleBasedCollator(collator_ini.getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); + return collator.compare(i1.getLabel(), i2.getLabel()); + } catch (ParseException e) {} + return Collator.getInstance().compare(i1.getLabel(), i2.getLabel()); } } Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/questionpool/QuestionPoolBean.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/questionpool/QuestionPoolBean.java (revision 108415) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/questionpool/QuestionPoolBean.java (working copy) @@ -28,6 +28,9 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.text.Collator; +import java.text.ParseException; +import java.text.RuleBasedCollator; import java.util.Date; import java.util.HashMap; import java.util.Iterator; @@ -229,7 +232,12 @@ if (i2 == null && i1 == null) { return 0; } - return i1.getTitle().compareToIgnoreCase(i2.getTitle()); + RuleBasedCollator collator_ini = (RuleBasedCollator)Collator.getInstance(); + try { + RuleBasedCollator collator= new RuleBasedCollator(collator_ini.getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); + return collator.compare(i1.getTitle(), i2.getTitle()); + } catch (ParseException e) {} + return Collator.getInstance().compare(i1.getTitle(), i2.getTitle()); } } Index: samigo-app/src/java/org/sakaiproject/tool/assessment/util/BeanSortComparator.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/util/BeanSortComparator.java (revision 108415) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/util/BeanSortComparator.java (working copy) @@ -27,6 +27,9 @@ import java.util.Comparator; import java.util.Map; import java.util.HashMap; +import java.text.Collator; +import java.text.ParseException; +import java.text.RuleBasedCollator; import org.apache.commons.beanutils.BeanUtils; @@ -117,8 +120,12 @@ String finalS1 = s1.replaceAll("<.*?>", ""); String finalS2 = s2.replaceAll("<.*?>", ""); - int result = finalS1.toLowerCase().compareTo(finalS2.toLowerCase()); - return result; + RuleBasedCollator collator_ini = (RuleBasedCollator)Collator.getInstance(); + try { + RuleBasedCollator collator= new RuleBasedCollator(collator_ini.getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); + return collator.compare(finalS1.toLowerCase(), finalS2.toLowerCase()); + } catch (ParseException e) {} + return Collator.getInstance().compare(finalS1.toLowerCase(), finalS2.toLowerCase()); } /**