Class AbstractRulerColumn

    • Constructor Detail

      • AbstractRulerColumn

        protected AbstractRulerColumn()
        Creates a new ruler.
    • Method Detail

      • getCanvasStyle

        protected int getCanvasStyle()
        Returns the SWT style bits used when creating the ruler canvas.

        The default implementation returns SWT.NO_BACKGROUND.

        Clients may reimplement this method to create a canvas with their desired style bits.

        Returns:
        the SWT style bits, or SWT.NONE if none
      • setWidth

        protected final void setWidth​(int width)
        The new width in pixels. The DEFAULT_WIDTH constant specifies the default width.
        Parameters:
        width - the new width
      • setFont

        public final void setFont​(Font font)
        Sets the font of this ruler column.
        Specified by:
        setFont in interface IVerticalRulerColumn
        Parameters:
        font - the font or null to use the default font
      • getFont

        protected final Font getFont()
        Returns the current font. If a font has not been explicitly set, the widget's font is returned.
        Returns:
        the font used to render text on the ruler.
      • setTextInset

        protected final void setTextInset​(int textInset)
        Sets the text inset (padding) used to draw text in paintLine(GC, int, int, int, int).
        Parameters:
        textInset - the new text inset
      • getTextInset

        protected final int getTextInset()
        Returns the text inset for text drawn by paintLine(GC, int, int, int, int). The DEFAULT_TEXT_INSET constant specifies the default inset in pixels.
        Returns:
        the text inset for text
      • setModel

        public void setModel​(IAnnotationModel model)
        Description copied from interface: IVerticalRulerColumn
        Associates an annotation model with this ruler column. A value null is acceptable and clears the ruler.
        Specified by:
        setModel in interface IVerticalRulerColumn
        Parameters:
        model - the new annotation model, may be null
      • setDefaultBackground

        protected final void setDefaultBackground​(Color background)
        Sets the default background color for this column. The default background is used as default implementation of computeBackground(int) and also to paint the area of the ruler that does not correspond to any lines (when the viewport is not entirely filled with lines).
        Parameters:
        background - the default background color, null to use the text widget's background
      • getDefaultBackground

        protected final Color getDefaultBackground()
        Returns the background color. May return null if the system is shutting down.
        Returns:
        the background color
      • setHover

        protected final void setHover​(IAnnotationHover hover)
        Sets the annotation hover.
        Parameters:
        hover - the annotation hover, null for no hover
      • dispose

        public void dispose()
        Disposes this ruler column.

        Subclasses may extend this method.

        Clients who created this column are responsible to call this method once the column is no longer used.

      • redraw

        protected final void redraw​(ILineRange lines)
        Marks the region covered by lines as needing to be redrawn.
        Parameters:
        lines - the lines to be redrawn in document coordinates
      • paint

        protected void paint​(GC gc,
                             ILineRange lines)
        Paints the ruler. Note that lines reference widget line indices, and that lines may not cover the entire viewport, but only the lines that need to be painted. The lines may not be entirely visible.

        Subclasses may replace or extend. The default implementation calls paintLine(GC, int, int, int, int) for every visible line.

        Parameters:
        gc - the graphics context to paint on
        lines - the lines to paint in widget coordinates
      • paintLine

        protected void paintLine​(GC gc,
                                 int modelLine,
                                 int widgetLine,
                                 int linePixel,
                                 int lineHeight)
        Paints the ruler representation of a single line.

        Subclasses may replace or extend. The default implementation draws the text obtained by computeText(int) in the foreground color and fills the entire width using the background color. The text is drawn getTextInset() pixels to the right of the left border.

        Parameters:
        gc - the graphics context to paint on
        modelLine - the model line (based on document coordinates)
        widgetLine - the line in the text widget corresponding to modelLine
        linePixel - the first y-pixel of the widget line
        lineHeight - the line height in pixels
      • computeText

        protected String computeText​(int line)
        Returns the text to be drawn for a certain line by paintLine(GC, int, int, int, int), null for no text. The default implementation returns null.

        Subclasses may replace or extend.

        Parameters:
        line - the document line number
        Returns:
        the text to be drawn for the given line, null for no text
      • computeBackground

        protected Color computeBackground​(int line)
        Returns the background color drawn for a certain line by paintLine(GC, int, int, int, int). The default implementation returns getDefaultBackground().

        Subclasses may replace or extend.

        Parameters:
        line - the document line number
        Returns:
        the background color for drawn for the given line
      • computeForeground

        protected Color computeForeground​(int line)
        Returns the foreground color drawn for a certain line by paintLine(GC, int, int, int, int). The default implementation returns a SWT.COLOR_DARK_GRAY color.

        Subclasses may replace or extend.

        Parameters:
        line - the document line number
        Returns:
        the foreground color for drawn for the given line
      • getLineOfLastMouseButtonActivity

        public final int getLineOfLastMouseButtonActivity()
        Description copied from interface: IVerticalRulerInfo
        Returns the line number of the last mouse button activity. Based on the input document of the connected text viewer.
        Specified by:
        getLineOfLastMouseButtonActivity in interface IVerticalRulerInfo
        Returns:
        the line number of the last mouse button activity or -1 if the last mouse activity does not correspond to a valid document line
      • toDocumentLineNumber

        public final int toDocumentLineNumber​(int y_coordinate)
        Description copied from interface: IVerticalRulerInfo
        Translates a y-coordinate of the ruler's SWT control into the according line number of the document of the connected text viewer.
        Specified by:
        toDocumentLineNumber in interface IVerticalRulerInfo
        Parameters:
        y_coordinate - a y-coordinate of the ruler's SWT control
        Returns:
        the line number of that coordinate or -1 if that coordinate does not correspond to a valid document line