Class AbstractUIInputReceiver

  • All Implemented Interfaces:
    UIInputReceiver
    Direct Known Subclasses:
    AbstractUISWTInputReceiver

    public abstract class AbstractUIInputReceiver
    extends java.lang.Object
    implements UIInputReceiver
    Abstract class to make it easy for class to implement UIInputReceiver classes. The common convention is that it has all the necessary set methods needed, and all settings passed are accessible through protected attributes. Checks are made to ensure only certain methods are called at the right time.
    • Field Detail

      • prompted

        private boolean prompted
      • messages

        protected java.lang.String[] messages
      • title

        protected java.lang.String title
      • multiline_mode

        protected boolean multiline_mode
      • preentered_text

        protected java.lang.String preentered_text
      • result_recorded

        private boolean result_recorded
      • result_input_submitted

        private boolean result_input_submitted
      • result_input

        private java.lang.String result_input
      • maintain_whitespace

        protected boolean maintain_whitespace
      • allow_empty_input

        protected boolean allow_empty_input
    • Constructor Detail

      • AbstractUIInputReceiver

        public AbstractUIInputReceiver()
    • Method Detail

      • assertPrePrompt

        protected final void assertPrePrompt()
      • assertPostPrompt

        protected final void assertPostPrompt()
      • setLocalisedMessages

        public void setLocalisedMessages​(java.lang.String[] messages)
        Description copied from interface: UIInputReceiver
        Sets the message to display for the text entry input. This will normally be displayed near the position where the text will be entered - this method is usually used to present the user with an indication of what to enter.

        The value passed here will be an array of strings - each string will be usually outputted on its own line. The last value in the array will usually be the message displayed closest to the users prompt.

        Specified by:
        setLocalisedMessages in interface UIInputReceiver
      • setLocalisedTitle

        public void setLocalisedTitle​(java.lang.String title)
        Description copied from interface: UIInputReceiver
        Sets the title for the text entry input. For some interfaces, this means that a window will be presented, and the title of the window will be the value passed here.
        Specified by:
        setLocalisedTitle in interface UIInputReceiver
      • setMessage

        public void setMessage​(java.lang.String message)
        Description copied from interface: UIInputReceiver
        Sets the message to display for the text entry input. This will normally be displayed near the position where the text will be entered - this method is usually used to present the user with an indication of what to enter.

        For multiple lines, see UIInputReceiver.setMessages(java.lang.String[]).

        Specified by:
        setMessage in interface UIInputReceiver
      • setMessages

        public void setMessages​(java.lang.String[] messages)
        Description copied from interface: UIInputReceiver
        Sets the message to display for the text entry input. This will normally be displayed near the position where the text will be entered - this method is usually used to present the user with an indication of what to enter.

        The value passed here will be an array of strings - each string will be usually outputted on its own line. The last value in the array will usually be the message displayed closest to the users prompt.

        Specified by:
        setMessages in interface UIInputReceiver
      • setMultiLine

        public void setMultiLine​(boolean multiline)
        Description copied from interface: UIInputReceiver
        Indicates whether to allow multi-line input. Default behaviour is to not allow multiple lines.
        Specified by:
        setMultiLine in interface UIInputReceiver
      • setPreenteredText

        public void setPreenteredText​(java.lang.String text,
                                      boolean as_suggested)
        Description copied from interface: UIInputReceiver
        This sets a value to be displayed as pre-entered text for the input. This may be called if the caller wants to suggest a value for the user to use, or if the caller wants to provide a previous value (for example).

        The text may appear in the same location as the text should be entered (allowing it to be directly overwritten or submitted immediately) - but some interfaces may not support this.

        A flag should be passed indicating whether the pre-entered text is being entered as a suggestion for a value, or whether it is an old value being currently stored. Some interfaces may choose to differentiate between the two.

        Specified by:
        setPreenteredText in interface UIInputReceiver
        Parameters:
        text - The text to pre-enter.
        as_suggested - true if the value is a suggested input value, false if it is an old value.
      • setTitle

        public void setTitle​(java.lang.String title)
        Description copied from interface: UIInputReceiver
        Sets the title for the text entry input. For some interfaces, this means that a window will be presented, and the title of the window will be the value passed here.
        Specified by:
        setTitle in interface UIInputReceiver
      • setInputValidator

        public void setInputValidator​(UIInputValidator validator)
        Description copied from interface: UIInputReceiver
        Sets the UIInputValidator for this object. This allows an external object to validate or reject input submitted by the user.

        By default, there is no input validator associated with a UIInputReceiver, meaning all input is allowed.

        Specified by:
        setInputValidator in interface UIInputReceiver
        See Also:
        UIInputValidator
      • isResultRecorded

        protected boolean isResultRecorded()
      • triggerReceiverListener

        public final void triggerReceiverListener()
      • promptForInput

        protected abstract void promptForInput()
        Subclasses must override this method to receive input from the user. This method must call either recordUserInput or recordUserAbort before returning.
      • recordUserInput

        protected final void recordUserInput​(java.lang.String input)
      • recordUserAbort

        protected final void recordUserAbort()
      • maintainWhitespace

        public void maintainWhitespace​(boolean keep_whitespace)
        Description copied from interface: UIInputReceiver
        Indicates whether to keep whitespace are kept when input is entered, or whether to strip it out. Default behaviour is to strip whitespace.
        Specified by:
        maintainWhitespace in interface UIInputReceiver
      • allowEmptyInput

        public void allowEmptyInput​(boolean empty_input)
        Description copied from interface: UIInputReceiver
        Indicates whether blank input can be entered.
        Specified by:
        allowEmptyInput in interface UIInputReceiver
      • localise

        protected final java.lang.String localise​(java.lang.String key)