Class TextPresentation


  • public class TextPresentation
    extends Object
    Describes the presentation styles for a section of an indexed text such as a document or string. A text presentation defines a default style for the whole section and in addition style differences for individual subsections. Text presentations can be narrowed down to a particular result window. All methods are result window aware, i.e. ranges outside the result window are always ignored.

    All iterators provided by a text presentation assume that they enumerate non overlapping, consecutive ranges inside the default range. Thus, all these iterators do not include the default range. The default style range must be explicitly asked for using getDefaultStyleRange.

    • Constructor Detail

      • TextPresentation

        public TextPresentation()
        Creates a new empty text presentation.
      • TextPresentation

        public TextPresentation​(int sizeHint)
        Creates a new empty text presentation. sizeHint tells the expected size of this presentation.
        Parameters:
        sizeHint - the expected size of this presentation, must be positive
      • TextPresentation

        public TextPresentation​(IRegion extent,
                                int sizeHint)
        Creates a new empty text presentation with the given extent. sizeHint tells the expected size of this presentation.
        Parameters:
        extent - the extent of the created TextPresentation
        sizeHint - the expected size of this presentation, must be positive
        Since:
        3.0
    • Method Detail

      • applyTextPresentation

        public static void applyTextPresentation​(TextPresentation presentation,
                                                 StyledText text)
        Applies the given presentation to the given text widget. Helper method.
        Parameters:
        presentation - the style information
        text - the widget to which to apply the style information
        Since:
        2.0
      • setResultWindow

        public void setResultWindow​(IRegion resultWindow)
        Sets the result window for this presentation. When dealing with this presentation all ranges which are outside the result window are ignored. For example, the size of the presentation is 0 when there is no range inside the window even if there are ranges outside the window. All methods are aware of the result window.
        Parameters:
        resultWindow - the result window
      • setDefaultStyleRange

        public void setDefaultStyleRange​(StyleRange range)
        Set the default style range of this presentation. The default style range defines the overall area covered by this presentation and its style information.
        Parameters:
        range - the range describing the default region
      • getDefaultStyleRange

        public StyleRange getDefaultStyleRange()
        Returns this presentation's default style range. The returned StyleRange is relative to the start of the result window.
        Returns:
        this presentation's default style range
      • addStyleRange

        public void addStyleRange​(StyleRange range)
        Add the given range to the presentation. The range must be a subrange of the presentation's default range.
        Parameters:
        range - the range to be added
      • replaceStyleRange

        public void replaceStyleRange​(StyleRange range)
        Replaces the given range in this presentation. The range must be a subrange of the presentation's default range.
        Parameters:
        range - the range to be added
        Since:
        3.0
      • mergeStyleRange

        public void mergeStyleRange​(StyleRange range)
        Merges the given range into this presentation. The range must be a subrange of the presentation's default range.
        Parameters:
        range - the range to be added
        Since:
        3.0
      • replaceStyleRanges

        public void replaceStyleRanges​(StyleRange[] ranges)
        Replaces the given ranges in this presentation. Each range must be a subrange of the presentation's default range. The ranges must be ordered by increasing offset and must not overlap (but may be adjacent).
        Parameters:
        ranges - the ranges to be added
        Since:
        3.0
      • mergeStyleRanges

        public void mergeStyleRanges​(StyleRange[] ranges)
        Merges the given ranges into this presentation. Each range must be a subrange of the presentation's default range. The ranges must be ordered by increasing offset and must not overlap (but may be adjacent).
        Parameters:
        ranges - the ranges to be added
        Since:
        3.0
      • getNonDefaultStyleRangeIterator

        public Iterator<StyleRange> getNonDefaultStyleRangeIterator()
        Returns an iterator which enumerates all style ranged which define a style different from the presentation's default style range. The default style range is not enumerated.
        Returns:
        a style range iterator
      • getAllStyleRangeIterator

        public Iterator<StyleRange> getAllStyleRangeIterator()
        Returns an iterator which enumerates all style ranges of this presentation except the default style range. The returned StyleRanges are relative to the start of the presentation's result window.
        Returns:
        a style range iterator
      • isEmpty

        public boolean isEmpty()
        Returns whether this collection contains any style range including the default style range.
        Returns:
        true if there is no style range in this presentation
      • getDenumerableRanges

        public int getDenumerableRanges()
        Returns the number of style ranges in the presentation not counting the default style range.
        Returns:
        the number of style ranges in the presentation excluding the default style range
      • getFirstStyleRange

        public StyleRange getFirstStyleRange()
        Returns the style range with the smallest offset ignoring the default style range or null if the presentation is empty.
        Returns:
        the style range with the smallest offset different from the default style range
      • getLastStyleRange

        public StyleRange getLastStyleRange()
        Returns the style range with the highest offset ignoring the default style range.
        Returns:
        the style range with the highest offset different from the default style range
      • getCoverage

        public IRegion getCoverage()
        Returns the coverage of this presentation as clipped by the presentation's result window.
        Returns:
        the coverage of this presentation
      • getExtent

        public IRegion getExtent()
        Returns the extent of this presentation clipped by the presentation's result window.
        Returns:
        the clipped extent
        Since:
        3.0
      • clear

        public void clear()
        Clears this presentation by resetting all applied changes.
        Since:
        2.0