Interface IAnnotationAccessExtension

  • All Known Implementing Classes:
    DefaultMarkerAnnotationAccess

    public interface IAnnotationAccessExtension
    Extension interface for IAnnotationAccess.

    This interface replaces the methods of IAnnotationAccess.

    This interface provides

    • a label for the annotation type of a given annotation
    • the paint layer of a given annotation
    • means to paint a given annotation
    • information about the type hierarchy of the annotation type of a given annotation
    Since:
    3.0
    See Also:
    IAnnotationAccess
    • Field Detail

      • DEFAULT_LAYER

        static final int DEFAULT_LAYER
        The default annotation layer.
        See Also:
        Constant Field Values
    • Method Detail

      • getTypeLabel

        String getTypeLabel​(Annotation annotation)
        Returns the label for the given annotation's type.
        Parameters:
        annotation - the annotation
        Returns:
        the label the given annotation's type or null if no such label exists
      • getLayer

        int getLayer​(Annotation annotation)
        Returns the layer for given annotation. Annotations are considered being located at layers and are considered being painted starting with layer 0 upwards. Thus an annotation at layer 5 will be drawn on top of all co-located annotations at the layers 4 - 0.
        Parameters:
        annotation - the annotation
        Returns:
        the layer of the given annotation
      • paint

        void paint​(Annotation annotation,
                   GC gc,
                   Canvas canvas,
                   Rectangle bounds)
        Draws a graphical representation of the given annotation within the given bounds.

        Note that this method is not used when drawing annotations on the editor's text widget. This is handled trough a AnnotationPainter.IDrawingStrategy.

        Parameters:
        annotation - the given annotation
        gc - the drawing GC
        canvas - the canvas to draw on
        bounds - the bounds inside the canvas to draw on
      • isPaintable

        boolean isPaintable​(Annotation annotation)
        Returns true if painting annotation will produce something meaningful, false if not. E.g. if no image is available.

        Note that this method is not used when drawing annotations on the editor's text widget. This is handled trough a AnnotationPainter.IDrawingStrategy.

        Parameters:
        annotation - the annotation to check whether it can be painted
        Returns:
        true if painting annotation will succeed
      • isSubtype

        boolean isSubtype​(Object annotationType,
                          Object potentialSupertype)
        Returns true if the given annotation is of the given type or false otherwise.
        Parameters:
        annotationType - the annotation type
        potentialSupertype - the potential super annotation type
        Returns:
        true if annotation type is a sub-type of the potential annotation super type
      • getSupertypes

        Object[] getSupertypes​(Object annotationType)
        Returns the list of super types for the given annotation type. This does not include the type itself. The index in the array of super types indicates the length of the path in the hierarchy graph to the given annotation type.
        Parameters:
        annotationType - the annotation type to check
        Returns:
        the super types for the given annotation type