Sichtbarkeit der Annotationen ändern (Aus- / Einblenden)

Aus- / Einblenden von Annotationstypen
  // Aktuelle AnnotationRenderSettings holen
  final AnnotationRenderSettings annoRenderHints = getPageView().getDocumentControls().getSettings(AnnotationRenderSettings.class);

  // Annotationstypen anhand des Namens ermitteln:
  // "*" = alle Typen
  // "BaseText,BaseArrow" = Nur Text- und Pfeil-Annotationen
  // "BaseText" = Nur Text-Annotation
  final Collection<AnnotationType> types = getAnnotationTypes("BaseText");

  // Annotationstypen an- / ausschalten
  for (final AnnotationType annotationType : types) {

    // Sichtbarkeit für ausgewählte Annotationstypen umschalten
    final boolean visible = annoRenderHints.isAnnotationRenderingEnabled(annotationType);

    // Parameter: Annotationstyp, Flag (false = nicht sichtbar, true = sichtbar)
    annoRenderHints.setAnnotationRenderingEnabled(annotationType, !visible);
  }

  getPageView().repaint();
Auflösen von Annotationstypnamen nach AnnotationType-Instanzen
  /**
   * Resolves annotation type name(s) to corresponding annotation type instance(s).
   *
   * @param annotationTypeName List of annotation type names.
   * @return Collection containing annotation types
   */
  protected Collection<AnnotationType> getAnnotationTypes(String annotationTypeName) {
    final String[] typeNames = annotationTypeName.split("\\s*,\\s*");
    final AnnotationProfile ap = getAnnotationProfile();
    final List<AnnotationType> result = new ArrayList<AnnotationType>();

    if (typeNames == null)
      return result;

    for (final String typeName : typeNames) {
      if (typeName.equals("*"))
        result.addAll(ap.getTypes());
      else {
        final AnnotationType type = ap.getType(typeName);
        if (type == null)
          System.err.println("Invalid annotation type " + Arrays.toString(typeNames)
              + ". No annotation creation provided.");
        else
          result.add(type);
      }
    }
    return result;
  }
Aktuelles Annotationsprofil ermitteln
  /**
   * Returns the current annotation profile.
   *
   * @return Annotation profile
   */
  protected AnnotationProfile getAnnotationProfile() {
    // AnnotationPageSegment holen, wenn vorhanden
	AnnotationProfile ap = AnnotationProfile.get(getPageView().getCurrentPage());
    if (null == ap) {
      // Wenn nicht vorhanden, Annotationsprofil aus Dokument holen
      ap = AnnotationProfile.get(getPageView().getDocument());
    }
    if (null == ap) {
      // Wenn nicht vorhanden, Standardannotationsprofil holen
      ap = AnnotationProfile.getDefaultProfile();
    }
    return ap;
  }