Class WebTextTerminal

    • Field Detail

      • DEFAULT_TIMEOUT_NOT_EMPTY

        public static final long DEFAULT_TIMEOUT_NOT_EMPTY
        See Also:
        Constant Field Values
      • DEFAULT_TIMEOUT_HAS_ACTION

        public static final long DEFAULT_TIMEOUT_HAS_ACTION
        See Also:
        Constant Field Values
      • DEFAULT_TIMEOUT_DATA_CLEARED

        public static final long DEFAULT_TIMEOUT_DATA_CLEARED
        See Also:
        Constant Field Values
    • Constructor Detail

      • WebTextTerminal

        public WebTextTerminal()
    • Method Detail

      • setTimeoutNotEmpty

        public void setTimeoutNotEmpty​(long timeoutNotEmpty)
      • setTimeoutHasAction

        public void setTimeoutHasAction​(long timeoutHasAction)
      • setTimeoutDataCleared

        public void setTimeoutDataCleared​(long timeoutDataCleared)
      • 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.
        Specified by:
        dispose in interface TextTerminal<WebTextTerminal>
        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.
        Specified by:
        abort in interface TextTerminal<WebTextTerminal>
      • 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.
        Specified by:
        resetLine in interface TextTerminal<WebTextTerminal>
        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.
        Specified by:
        moveToLineStart in interface TextTerminal<WebTextTerminal>
        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.
        Specified by:
        setBookmark in interface TextTerminal<WebTextTerminal>
        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.
        Specified by:
        resetToBookmark in interface TextTerminal<WebTextTerminal>
        Returns:
        true, if the terminal supports bookmarking, the given bookmark exists and the text after it has been successfully cleared.
      • setOnDispose

        public void setOnDispose​(java.lang.Runnable onDispose)
      • setOnAbort

        public void setOnAbort​(java.lang.Runnable onAbort)
      • read

        public java.lang.String read​(boolean masking)
        Description copied from interface: TextTerminal
        Reads a line of text
        Specified by:
        read in interface TextTerminal<WebTextTerminal>
        Parameters:
        masking - true, if the input should be masked (for example to enter a password)
        Returns:
        the entered text
      • 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.
        Specified by:
        rawPrint in interface TextTerminal<WebTextTerminal>
      • registerUserInterruptHandler

        public boolean registerUserInterruptHandler​(java.util.function.Consumer<WebTextTerminal> 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.
        Specified by:
        registerUserInterruptHandler in interface TextTerminal<WebTextTerminal>
        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.
      • registerHandler

        public boolean registerHandler​(java.lang.String keyStroke,
                                       java.util.function.Function<WebTextTerminal,​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.
        Specified by:
        registerHandler in interface TextTerminal<WebTextTerminal>
        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.
      • postUserInput

        public void postUserInput​(java.lang.String newInput,
                                  boolean userInterrupt,
                                  java.lang.String handlerId)
      • postUserInput

        public void postUserInput​(java.lang.String newInput)
        Description copied from interface: DataApi
        This method is called by the web component to post the user input
        Specified by:
        postUserInput in interface DataApi
      • postUserInterrupt

        public void postUserInterrupt​(java.lang.String partialInput)
        Description copied from interface: DataApi
        This method is called by the web component in response to a user interrupt (typically triggered by typing Ctrl+Q).
        Specified by:
        postUserInterrupt in interface DataApi
        Parameters:
        partialInput - the partially entered input when the user interrupt occurred.
      • postHandlerCall

        public void postHandlerCall​(java.lang.String handlerId,
                                    java.lang.String partialInput)
        Description copied from interface: DataApi
        This method is called by the web component in response to a handler call (triggered by typing its associated key combination).
        Specified by:
        postHandlerCall in interface DataApi
        Parameters:
        handlerId - the id of the handler to be called.
        partialInput - the partially entered input when the hander call occurred.
      • setUserInterruptKey

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

        public void addSetting​(java.lang.String key,
                               java.lang.Object value)
      • setUserInterruptKey

        public void setUserInterruptKey​(int code,
                                        boolean ctrl,
                                        boolean shift,
                                        boolean alt)