private static Collection<Annotation> getSelectableAnnotations() {
    AnnotationFactory factory = DefaultAnnotationFactory.getInstance();
    List<Annotation> annotations = new ArrayList<Annotation>();

    annotations.addAll(factory.getSubclassInstances(StringAnnotation.class));
    annotations.add(factory.ofClass(Charge.class));

    // display name order
    Collections.sort(
        annotations,
        new Comparator<Annotation>() {
          @Override
          public int compare(Annotation o1, Annotation o2) {
            return name(o1).compareTo(name(o2));
          }

          private String name(Annotation a) {
            return a.getBrief() != null ? a.getBrief() : a.getClass().getSimpleName();
          }
        });

    // displayed as: -- select annotation --
    annotations.add(0, null);

    return annotations;
  }