private ListItem[] createAnnotationTypeListModel(MarkerAnnotationPreferences preferences) {
ArrayList<ListItem> listModelItems= new ArrayList<>();
Iterator<AnnotationPreference> e= preferences.getAnnotationPreferences().iterator();
while (e.hasNext()) {
AnnotationPreference info= e.next();
if (info.isIncludeOnPreferencePage()) {
String label= info.getPreferenceLabel();
if (containsMoreThanOne(preferences.getAnnotationPreferences().iterator(), label))
label += " (" + info.getAnnotationType() + ")";
Image image= getImage(info);
listModelItems.add(new ListItem(label, image, info.getColorPreferenceKey(), info.getTextPreferenceKey(), info.getOverviewRulerPreferenceKey(), info.getHighlightPreferenceKey(), info
.getVerticalRulerPreferenceKey(), info.getTextStylePreferenceKey(), info.getIsGoToNextNavigationTargetKey()));
}
}
Comparator<ListItem> comparator= new Comparator<ListItem>() {
@Override
public int compare(ListItem o1, ListItem o2) {
String label1= o1.label;
String label2= o2.label;
return Collator.getInstance().compare(label1, label2);
}
};
Collections.sort(listModelItems, comparator);
ListItem[] items= new ListItem[listModelItems.size()];
listModelItems.toArray(items);
return items;
}