Class SwingTextTerminal

    • Field Detail

      • DEFAULT_PANE_BACKGROUND

        public static final java.awt.Color DEFAULT_PANE_BACKGROUND
      • DEFAULT_PROMPT_COLOR

        public static final java.awt.Color DEFAULT_PROMPT_COLOR
      • DEFAULT_INPUT_COLOR

        public static final java.awt.Color DEFAULT_INPUT_COLOR
    • Constructor Detail

      • SwingTextTerminal

        public SwingTextTerminal()
    • Method Detail

      • getFrame

        public javax.swing.JFrame getFrame()
      • getTextPane

        public javax.swing.JTextPane getTextPane()
      • getScrollPane

        public javax.swing.JScrollPane getScrollPane()
      • getDocument

        public javax.swing.text.StyledDocument getDocument()
      • appendToInput

        public void appendToInput​(java.lang.String message,
                                  boolean preserveCaretPosition)
      • replaceInput

        public void replaceInput​(java.lang.String message,
                                 boolean preserveCaretPosition)
      • getPartialInput

        public java.lang.String getPartialInput()
      • read

        public java.lang.String read​(boolean masking)
        Description copied from interface: TextTerminal
        Reads a line of text
        Parameters:
        masking - true, if the input should be masked (for example to enter a password)
        Returns:
        the entered text
      • println

        public void println()
        Description copied from interface: TextTerminal
        Terminates the current line by writing the line separator string.
      • rawPrint

        public void rawPrint​(java.lang.String message)
        Description copied from interface: TextTerminal
        Prints the message in its raw form. This method expects a single line of text. The behavior is undefined if the string contains line separators.
      • resetLine

        public boolean resetLine()
        Description copied from interface: TextTerminal
        Clears the current line of text. Since not all terminals support this feature, the default implementation calls TextTerminal.println() and returns false.
        Returns:
        true, if the terminal supports this feature and the current line has been successfully cleared.
      • moveToLineStart

        public boolean moveToLineStart()
        Description copied from interface: TextTerminal
        Moves the cursor to the start of the current line of text in order to allow overwriting the current line. Since not all terminals support this feature, the default implementation calls TextTerminal.println() and returns false.
        Returns:
        true, if the terminal supports this feature and the cursor has been moved to the start of the current line.
      • setBookmark

        public boolean setBookmark​(java.lang.String bookmark)
        Description copied from interface: TextTerminal
        Sets a bookmark with the given name at the current position. The bookmark name can be subsequently used in a call to TextTerminal.resetToBookmark(String) in order to clear the text after this bookmark. If a bookmark with this name already exists, it will be overwritten. Since not all terminals support this feature, the default implementation does nothing and returns false.
        Returns:
        true, if the terminal supports bookmarking and the bookmark has been successfully set.
      • resetToBookmark

        public boolean resetToBookmark​(java.lang.String bookmark)
        Description copied from interface: TextTerminal
        Clears the text after the given bookmark. The bookmark name can be subsequently used in a call to TextTerminal.resetToBookmark(String) in order to clear the text after this bookmark. Since not all terminals support this feature, the default implementation calls TextTerminal.println() and returns false.
        Returns:
        true, if the terminal supports bookmarking, the given bookmark exists and the text after it has been successfully cleared.
      • getBookmarkOffset

        public int getBookmarkOffset​(java.lang.String bookmark)
      • resetToOffset

        public boolean resetToOffset​(int offset)
      • display

        public void display()
      • dispose

        public void dispose​(java.lang.String resultData)
        Description copied from interface: TextTerminal
        This method is typically called at the end of a text-based input/output session in order to allow the terminal to release its screen resources. The terminal should be able to rebuild the released resources when a print or read method is subsequently called. The default implementation does nothing.
        Parameters:
        resultData - stringified information about the outcome of the input/output session; may be null,
      • abort

        public void abort()
        Description copied from interface: TextTerminal
        This method is typically called when a text-based input/output session has been aborted by the user or when a severe error occurred. The default implementation does nothing.
      • registerUserInterruptHandler

        public boolean registerUserInterruptHandler​(java.util.function.Consumer<SwingTextTerminal> handler,
                                                    boolean abortRead)
        Description copied from interface: TextTerminal
        Registers a handler that will be called in response to a user interrupt. The event that triggers a user interrupt is usually Ctrl+C, but in general it is terminal specific. For example, a Swing based terminal may send a user interrupt when the X close button of its window is hit. Since not all terminals support this feature, the default implementation just returns false.
        Parameters:
        handler - the action to be performed in response to a user interrupt.
        abortRead - true, if the current read operation should be aborted on user interrupt.
        Returns:
        true, if the terminal supports this feature and the handler has been registered; false, otherwise.
      • setUserInterruptKey

        public void setUserInterruptKey​(javax.swing.KeyStroke keyStroke)
      • setUserInterruptKey

        public void setUserInterruptKey​(java.lang.String keyStroke)
      • registerHandler

        public boolean registerHandler​(java.lang.String keyStroke,
                                       java.util.function.Function<SwingTextTerminal,​ReadHandlerData> handler)
        Description copied from interface: TextTerminal
        Associates a key combination to a handler. Since not all terminals support this feature, the default implementation just returns false.
        Parameters:
        keyStroke - the key combination associated with the handler. It should have the same format as the argument of KeyStroke.getKeyStroke(String).
        handler - the action to be performed when the keyStroke is detected during a read operation.
        Returns:
        true, if the terminal supports this feature and the handler has been associated with the given key combination; false, otherwise.
      • getStyle

        public java.lang.String getStyle​(org.beryx.textio.swing.SwingTextTerminal.StyleData styleData)
      • setPromptColor

        public void setPromptColor​(java.lang.String colorName)
      • setPromptBackgroundColor

        public void setPromptBackgroundColor​(java.lang.String colorName)
      • setPromptFontFamily

        public void setPromptFontFamily​(java.lang.String fontFamily)
      • setPromptFontSize

        public void setPromptFontSize​(int fontSize)
      • setPromptBold

        public void setPromptBold​(boolean bold)
      • setPromptItalic

        public void setPromptItalic​(boolean italic)
      • setPromptUnderline

        public void setPromptUnderline​(boolean underline)
      • setPromptSubscript

        public void setPromptSubscript​(boolean subscript)
      • setPromptSuperscript

        public void setPromptSuperscript​(boolean superscript)
      • setInputColor

        public void setInputColor​(java.lang.String colorName)
      • setInputBackgroundColor

        public void setInputBackgroundColor​(java.lang.String colorName)
      • setInputFontFamily

        public void setInputFontFamily​(java.lang.String fontFamily)
      • setInputFontSize

        public void setInputFontSize​(int fontSize)
      • setInputBold

        public void setInputBold​(boolean bold)
      • setInputItalic

        public void setInputItalic​(boolean italic)
      • setInputUnderline

        public void setInputUnderline​(boolean underline)
      • setInputSubscript

        public void setInputSubscript​(boolean subscript)
      • setInputSuperscript

        public void setInputSuperscript​(boolean superscript)
      • setPaneBackgroundColor

        public void setPaneBackgroundColor​(java.lang.String colorName)
      • setPaneTitle

        public void setPaneTitle​(java.lang.String newTitle)
      • setPaneIconUrl

        public void setPaneIconUrl​(java.lang.String url)
      • setPaneIconFile

        public void setPaneIconFile​(java.lang.String filePath)
      • setPaneIconResource

        public void setPaneIconResource​(java.lang.String res)
      • updateScrollPaneSize

        protected void updateScrollPaneSize​(boolean pack)
      • getColor

        public static java.util.Optional<java.awt.Color> getColor​(java.lang.String colorName)