Class CommandLine.Help.Ansi.Text

  • All Implemented Interfaces:
    java.lang.Cloneable
    Enclosing class:
    CommandLine.Help.Ansi

    public class CommandLine.Help.Ansi.Text
    extends java.lang.Object
    implements java.lang.Cloneable
    Encapsulates rich text with styles and colors. Text objects may be constructed with Strings containing markup like @|bg(red),white,underline some text|@, and this class converts the markup to ANSI escape codes.

    Internally keeps both an enriched and a plain text representation to allow layout components to calculate text width while remaining unaware of the embedded ANSI escape codes.

    • Constructor Detail

      • Text

        public Text​(int maxLength)
        Constructs a Text with the specified max length (for use in a TextTable Column).
        Parameters:
        maxLength - max length of this text
      • Text

        public Text​(java.lang.String input)
        Constructs a Text with the specified String, which may contain markup like @|bg(red),white,underline some text|@.
        Parameters:
        input - the string with markup to parse
    • Method Detail

      • clone

        public java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object
      • substring

        public CommandLine.Help.Ansi.Text substring​(int start)
        Returns a new Text instance that is a substring of this Text. Does not modify this instance!
        Parameters:
        start - index in the plain text where to start the substring
        Returns:
        a new Text instance that is a substring of this Text
      • substring

        public CommandLine.Help.Ansi.Text substring​(int start,
                                                    int end)
        Returns a new Text instance that is a substring of this Text. Does not modify this instance!
        Parameters:
        start - index in the plain text where to start the substring
        end - index in the plain text where to end the substring
        Returns:
        a new Text instance that is a substring of this Text
      • append

        public CommandLine.Help.Ansi.Text append​(java.lang.String string)
        Returns a new Text instance with the specified text appended. Does not modify this instance!
        Parameters:
        string - the text to append
        Returns:
        a new Text instance
      • getStyledChars

        public void getStyledChars​(int from,
                                   int length,
                                   CommandLine.Help.Ansi.Text destination,
                                   int offset)
        Copies the specified substring of this Text into the specified destination, preserving the markup.
        Parameters:
        from - start of the substring
        length - length of the substring
        destination - destination Text to modify
        offset - indentation (padding)
      • plainString

        public java.lang.String plainString()
        Returns the plain text without any formatting.
        Returns:
        the plain text without any formatting
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Returns a String representation of the text with ANSI escape codes embedded, unless ANSI is CommandLine.Help.Ansi.enabled() not enabled}, in which case the plain text is returned.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a String representation of the text with ANSI escape codes embedded (if enabled)