Class Element

  • All Implemented Interfaces:
    java.lang.Iterable<Node>, Sequence<Node>
    Direct Known Subclasses:
    Block, List.Item, TextSpan

    public abstract class Element
    extends Node
    implements Sequence<Node>, java.lang.Iterable<Node>
    Abstract base class for elements.

    TODO Add style properties.

    TODO Add style class property.

    • Constructor Detail

      • Element

        public Element()
      • Element

        public Element​(Element element,
                       boolean recursive)
    • Method Detail

      • insertRange

        public void insertRange​(Node range,
                                int offset)
        Description copied from class: Node
        Inserts a range into the node. Note that the contents of the range, rather than the range itself, is added to the node.
        Specified by:
        insertRange in class Node
        Parameters:
        range - The node containing the text to insert.
        offset - Offset relative to this node.
      • removeRange

        public Node removeRange​(int offset,
                                int charCount)
        Description copied from class: Node
        Removes a range from the node.
        Specified by:
        removeRange in class Node
        Parameters:
        offset - Offset relative to this node.
        charCount - Count of characters to remove.
        Returns:
        The removed range. This will be a copy of the node structure relative to this node.
      • getRange

        public Element getRange​(int offset,
                                int charCount)
        Description copied from class: Node
        Returns a range from the node.
        Specified by:
        getRange in class Node
        Parameters:
        offset - Offset relative to this node.
        charCount - Count of characters to get.
        Returns:
        A node containing a copy of the node structure spanning the given range, relative to this node.
      • duplicate

        public abstract Element duplicate​(boolean recursive)
        Description copied from class: Node
        Creates a copy of this node.
        Specified by:
        duplicate in class Node
        Parameters:
        recursive - Whether to duplicate the children also.
        Returns:
        A copy of the current node.
      • getCharacterAt

        public char getCharacterAt​(int offset)
        Specified by:
        getCharacterAt in class Node
        Parameters:
        offset - Offset relative to this node.
        Returns:
        The character at the given offset.
      • getCharacterCount

        public int getCharacterCount()
        Specified by:
        getCharacterCount in class Node
        Returns:
        The number of characters in this node.
      • getText

        public java.lang.String getText()
      • getCharacters

        public java.lang.CharSequence getCharacters()
        Specified by:
        getCharacters in class Node
        Returns:
        The character sequence in this node.
      • add

        public int add​(Node node)
        Description copied from interface: Sequence
        Adds an item to the sequence.
        Specified by:
        add in interface Sequence<Node>
        Parameters:
        node - The item to be added to the sequence.
        Returns:
        The index at which the item was added, or -1 if the item was not added to the sequence.
      • insert

        public void insert​(Node node,
                           int index)
        Description copied from interface: Sequence
        Inserts an item into the sequence at a specific index.
        Specified by:
        insert in interface Sequence<Node>
        Parameters:
        node - The item to be added to the sequence.
        index - The index at which the item should be inserted. Must be a value between 0 and getLength().
      • update

        @UnsupportedOperation
        public Node update​(int index,
                           Node node)
        Description copied from interface: Sequence
        Updates the item at the given index.
        Specified by:
        update in interface Sequence<Node>
        Parameters:
        index - The index of the item to update.
        node - The item that will replace any existing value at the given index.
        Returns:
        The item that was previously stored at the given index.
      • remove

        public int remove​(Node node)
        Description copied from interface: Sequence
        Removes the first occurrence of the given item from the sequence.
        Specified by:
        remove in interface Sequence<Node>
        Parameters:
        node - The item to remove.
        Returns:
        The index of the item that was removed, or -1 if the item could not be found.
        See Also:
        Sequence.remove(int, int)
      • remove

        public Sequence<Node> remove​(int index,
                                     int count)
        Description copied from interface: Sequence
        Removes one or more items from the sequence.
        Specified by:
        remove in interface Sequence<Node>
        Parameters:
        index - The starting index to remove.
        count - The number of items to remove, beginning with index.
        Returns:
        A sequence containing the items that were removed.
      • get

        public Node get​(int index)
        Description copied from interface: Sequence
        Retrieves the item at the given index.
        Specified by:
        get in interface Sequence<Node>
        Parameters:
        index - The index of the item to retrieve.
        Returns:
        The item at this index in the sequence.
      • indexOf

        public int indexOf​(Node node)
        Description copied from interface: Sequence
        Returns the index of an item in the sequence.
        Specified by:
        indexOf in interface Sequence<Node>
        Parameters:
        node - The item to locate.
        Returns:
        The index of first occurrence of the item if it exists in the sequence; -1, otherwise.
      • getLength

        public int getLength()
        Description copied from interface: Sequence
        Returns the length of the sequence.
        Specified by:
        getLength in interface Sequence<Node>
        Returns:
        The number of items in the sequence.
      • getNodeAt

        public int getNodeAt​(int offset)
        Determines the index of the child node at a given offset.
        Parameters:
        offset - The text offset to search for.
        Returns:
        The index of the child node at the given offset.
      • getPathAt

        public Sequence<java.lang.Integer> getPathAt​(int offset)
        Determines the path of the descendant node at a given offset.
        Parameters:
        offset - The text offset to search for.
        Returns:
        The path to the descendant node at the given offset.
      • getDescendantAt

        public Node getDescendantAt​(int offset)
        Determines the descendant node at a given offset.
        Parameters:
        offset - The text offset to search for.
        Returns:
        The descendant node at the given offset.
      • rangeInserted

        protected void rangeInserted​(int offset,
                                     int charCount)
        Description copied from class: Node
        Called to notify parent nodes and other listeners for the node that a range has been inserted. All parents are notified first.

        Note: The offset used to notify parents is the given offset added to the offset of this node (that is, it will be parent-relative). Therefore the topmost node will be given the offset into the whole document. Listeners for this node will just be given the offset relative to this node.

        Overrides:
        rangeInserted in class Node
        Parameters:
        offset - Offset relative to this node.
        charCount - Count of characters inserted.
      • rangeRemoved

        protected void rangeRemoved​(Node originalNode,
                                    int offset,
                                    int charCount,
                                    java.lang.CharSequence removedChars)
        Description copied from class: Node
        Called to notify parent nodes and other listeners for the node that a range has been removed. All parents are notified first.

        Note: The offset used to notify parents is the given offset added to the offset of this node (that is, it will be parent-relative). Therefore the topmost node will be given the offset into the whole document. Listeners for this node will just be given the offset relative to this node.

        Overrides:
        rangeRemoved in class Node
        Parameters:
        originalNode - The original node (that is, NOT the parent) where the range was removed.
        offset - Offset relative to the current node.
        charCount - Count of characters removed.
        removedChars - The optional actual characters removed (only in the case of direct removal from a text node).
      • iterator

        public java.util.Iterator<Node> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Node>
      • getFont

        public final java.awt.Font getFont()
      • setFont

        public final void setFont​(java.awt.Font font)
      • setFont

        public final void setFont​(java.lang.String font)
      • setFont

        public final void setFont​(java.lang.String name,
                                  int style,
                                  int size)
      • getForegroundColor

        public final java.awt.Color getForegroundColor()
        Returns:
        The current foreground color, or null if no color is foreground.
      • setForegroundColor

        public final void setForegroundColor​(java.awt.Color foregroundColor)
        Sets the current foreground color.
        Parameters:
        foregroundColor - The foreground color, or null to specify no selection.
      • setForegroundColor

        public final void setForegroundColor​(java.lang.String foregroundColor)
        Sets the current foreground color.
        Parameters:
        foregroundColor - The foreground color.
      • getBackgroundColor

        public final java.awt.Color getBackgroundColor()
        Returns:
        The current background color, or null if no color is background.
      • setBackgroundColor

        public final void setBackgroundColor​(java.awt.Color backgroundColor)
        Sets the current background color.
        Parameters:
        backgroundColor - The background color, or null to specify no selection.
      • setBackgroundColor

        public final void setBackgroundColor​(java.lang.String backgroundColor)
        Sets the current background color.
        Parameters:
        backgroundColor - The background color.
      • isUnderline

        public final boolean isUnderline()
      • setUnderline

        public final void setUnderline​(boolean underline)
      • isStrikethrough

        public final boolean isStrikethrough()
      • setStrikethrough

        public final void setStrikethrough​(boolean strikethrough)