Class SimpleViewOnlyStyledModel


public class SimpleViewOnlyStyledModel extends StyledTextModelViewOnlyBase
A simple, view-only, in-memory, styled text model.
Since:
24
  • Constructor Details

    • SimpleViewOnlyStyledModel

      public SimpleViewOnlyStyledModel()
      The constructor.
  • Method Details

    • of

      public static SimpleViewOnlyStyledModel of(String text) throws IOException
      Creates the model from the supplied text string by breaking it down into individual text segments, by splitting on newline characters.
      Parameters:
      text - the input multi-line text
      Returns:
      the new instance
      Throws:
      IOException - if an I/O error occurs
    • size

      public int size()
      Description copied from class: StyledTextModel
      Returns the number of paragraphs in the model.
      Specified by:
      size in class StyledTextModel
      Returns:
      number of paragraphs
    • getPlainText

      public String getPlainText(int index)
      Description copied from class: StyledTextModel
      Returns the plain text string for the specified paragraph. The returned text string cannot be null and must not contain any control characters other than TAB. The callers must ensure that the value of index is within the valid document range, since doing otherwise might result in an exception or undetermined behavior.
      Specified by:
      getPlainText in class StyledTextModel
      Parameters:
      index - the paragraph index in the range (0...StyledTextModel.size())
      Returns:
      the non-null paragraph text string
    • getParagraph

      public RichParagraph getParagraph(int index)
      Description copied from class: StyledTextModel
      Returns a RichParagraph at the given model index. The callers must ensure that the value of index is within the valid document range, since doing otherwise might result in an exception or undetermined behavior.

      This method makes no guarantees that the same paragraph instance will be returned for the same model index.

      Specified by:
      getParagraph in class StyledTextModel
      Parameters:
      index - the paragraph index in the range (0...StyledTextModel.size())
      Returns:
      the instance of RichParagraph
    • addSegment

      public SimpleViewOnlyStyledModel addSegment(String text)
      Appends a text segment to the last paragraph. The caller must ensure that the text does not contain newline symbols, as the behavior is undefined in this case.

      This convenience method is equivalent to calling addSegment(text, StyleAttributeMap.EMPTY);

      Parameters:
      text - the text to append, must not contain newline symbols, cannot be null
      Returns:
      this model instance
    • addWithInlineAndStyleNames

      public SimpleViewOnlyStyledModel addWithInlineAndStyleNames(String text, String style, String... css)
      Appends a text segment styled with both the inline style and the stylesheet style names. The text cannot contain newline (\n) symbols.
      Parameters:
      text - the text to append, must not contain \n, cannot be null
      style - the inline style (example "-fx-fill:red;")
      css - the stylesheet style names
      Returns:
      this model instance
    • addWithStyleNames

      public SimpleViewOnlyStyledModel addWithStyleNames(String text, String... css)
      Appends a text segment styled with the stylesheet style names. The text cannot contain newline (\n) symbols.
      Parameters:
      text - the text to append, must not contain \n, cannot be null
      css - the stylesheet style names
      Returns:
      this model instance
    • addWithInlineStyle

      public SimpleViewOnlyStyledModel addWithInlineStyle(String text, String style)
      Appends a text segment styled with the inline style. The text cannot contain newline (\n) symbols.
      Parameters:
      text - the text to append, must not contain \n, cannot be null
      style - the inline style (example "-fx-fill:red;"), or null
      Returns:
      this model instance
    • addSegment

      public SimpleViewOnlyStyledModel addSegment(String text, StyleAttributeMap a)
      Appends a text segment styled with the specified style attributes.
      Parameters:
      text - the text to append, must not contain control symbols other than TAB.
      a - the style attributes
      Returns:
      this model instance
    • highlight

      public SimpleViewOnlyStyledModel highlight(int start, int length, Color c)
      Adds a highlight of the given color to the specified range within the last paragraph.
      Parameters:
      start - the start offset
      length - the length of the highlight
      c - the highlight color
      Returns:
      this model instance
    • addWavyUnderline

      public SimpleViewOnlyStyledModel addWavyUnderline(int start, int length, Color c)
      Adds a wavy underline (typically used as a spell checker indicator) to the specified range within the last paragraph.
      Parameters:
      start - the start offset
      length - the length of the highlight
      c - the highlight color
      Returns:
      this model instance
    • addImage

      public SimpleViewOnlyStyledModel addImage(InputStream in)
      Adds a paragraph containing an image. The image will be reduced in size as necessary to fit into the available area if wrapText property is set. This method does not close the input stream.
      Parameters:
      in - the input stream providing the image.
      Returns:
      this model instance
    • addParagraph

      public SimpleViewOnlyStyledModel addParagraph(Supplier<Region> generator)
      Adds a paragraph containing a Region.

      The supplied generator must not cache or keep reference to the created Region, but the created Region can keep a reference to the model or a property therein.

      For example, a bidirectional binding between an inline control and some property in the model would synchronize the model with all the views that use it.

      Parameters:
      generator - the supplier of the paragraph content
      Returns:
      this model instance
    • addNodeSegment

      public SimpleViewOnlyStyledModel addNodeSegment(Supplier<Node> generator)
      Adds an inline Node to the last paragraph.

      The supplied generator must not cache or keep reference to the created Node, but the created Node can keep a reference to the model or a property therein.

      For example, a bidirectional binding between an inline control and some property in the model would synchronize the model with all the views that use it.

      Parameters:
      generator - the supplier of the embedded Node
      Returns:
      this model instance
    • nl

      Adds a new paragraph (as if inserting a newline symbol into the text). This convenience method invokes nl(int) with a value of 1.
      Returns:
      this model instance
    • nl

      public SimpleViewOnlyStyledModel nl(int count)
      Adds n new paragraphs (as if inserting a newline symbol into the text n times).
      Parameters:
      count - the number of paragraphs to append
      Returns:
      this model instance
    • getStyleAttributeMap

      public StyleAttributeMap getStyleAttributeMap(StyleResolver r, TextPos pos)
      Description copied from class: StyledTextModel
      Returns the StyleAttributeMap of the character at the specified position's charIndex. When at the end of the document, returns the attributes of the last character.
      Specified by:
      getStyleAttributeMap in class StyledTextModel
      Parameters:
      r - the style resolver
      pos - the text position
      Returns:
      the style attributes, non-null
    • setParagraphAttributes

      public SimpleViewOnlyStyledModel setParagraphAttributes(StyleAttributeMap a)
      Sets the last paragraph's attributes.
      Parameters:
      a - the paragraph attributes
      Returns:
      this model instance