Class BasicTextModel

java.lang.Object
jfx.incubator.scene.control.richtext.model.StyledTextModel
jfx.incubator.scene.control.richtext.model.BasicTextModel
Direct Known Subclasses:
CodeTextModel

public class BasicTextModel extends StyledTextModel
A StyledTextModel based on plain text paragraphs.

This class provides no styling. Subclasses might override getParagraph(int) to provide syntax highlighting based on the model content.

This model supports custom content storage mechanism via BasicTextModel.Content. By default, the model provides an in-memory storage via its BasicTextModel.InMemoryContent implementation.

Since:
24
  • Constructor Details

    • BasicTextModel

      public BasicTextModel(BasicTextModel.Content c)
      Constructs an empty model with the specified Content.
      Parameters:
      c - the content to use
    • BasicTextModel

      public BasicTextModel()
      Constructs an empty model with the in-memory Content.
  • Method Details

    • insertText

      public void insertText(TextPos p, String text)
      Inserts text at the specified position. This is a convenience shortcut for StyledTextModel.replace(StyleResolver, TextPos, TextPos, String, boolean).
      Parameters:
      p - the insertion position
      text - the text to insert
      Throws:
      NullPointerException - if the model is null
      UnsupportedOperationException - if the model is not writable
    • 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
    • isWritable

      public final boolean isWritable()
      Determines whether the model is writable.

      This method calls BasicTextModel.Content.isWritable().

      Specified by:
      isWritable in class StyledTextModel
      Returns:
      true if the model is writable
    • insertTextSegment

      protected int insertTextSegment(int index, int offset, String text, StyleAttributeMap attrs)
      Description copied from class: StyledTextModel
      This method is called to insert a single styled text segment at the given position.
      Specified by:
      insertTextSegment in class StyledTextModel
      Parameters:
      index - the paragraph index
      offset - the insertion offset within the paragraph
      text - the text to insert
      attrs - the style attributes
      Returns:
      the number of characters inserted
    • insertLineBreak

      protected void insertLineBreak(int index, int offset)
      Description copied from class: StyledTextModel
      Inserts a line break at the specified position.
      Specified by:
      insertLineBreak in class StyledTextModel
      Parameters:
      index - the model index
      offset - the text offset
    • removeRange

      protected void removeRange(TextPos start, TextPos end)
      Description copied from class: StyledTextModel
      Removes the specified text range. This method gets called only if the model is editable. The caller guarantees that start precedes end.
      Specified by:
      removeRange in class StyledTextModel
      Parameters:
      start - the start of the range to be removed
      end - the end of the range to be removed, expected to be greater than the start position
    • insertParagraph

      protected void insertParagraph(int index, Supplier<Region> generator)
      Description copied from class: StyledTextModel
      Inserts a paragraph that contains a single Region.

      The model should not cache or otherwise retain references to the created Regions, as they might be requested multiple times during the lifetime of the model, or by different views.

      This method allows for embedding Controls that handle user input. In this case, the model should declare necessary properties and provide bidirectional bindings between the properties in the model and the corresponding properties in the control, as well as handle copy, paste, writing to and reading from I/O streams.

      Specified by:
      insertParagraph in class StyledTextModel
      Parameters:
      index - model index
      generator - code that will be used to create a Node instance
    • getStyleAttributeMap

      public StyleAttributeMap getStyleAttributeMap(StyleResolver resolver, 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:
      resolver - the style resolver
      pos - the text position
      Returns:
      the style attributes, non-null
    • setParagraphStyle

      protected final void setParagraphStyle(int index, StyleAttributeMap a)
      Description copied from class: StyledTextModel
      Replaces the paragraph styles in the specified paragraph.
      Specified by:
      setParagraphStyle in class StyledTextModel
      Parameters:
      index - the paragraph index
      a - the paragraph attributes
    • applyStyle

      protected final void applyStyle(int index, int start, int end, StyleAttributeMap a, boolean merge)
      Description copied from class: StyledTextModel
      Applies style to the specified text range within a single paragraph. The new attributes override any existing attributes. The end argument may exceed the paragraph length, in which case the outcome should be the same as supplying the paragraph length value.
      Specified by:
      applyStyle in class StyledTextModel
      Parameters:
      index - the paragraph index
      start - the start offset
      end - the end offset
      a - the character attributes
      merge - determines whether to merge with or overwrite the existing attributes