Class TextArea

java.lang.Object
com.codename1.ui.Component
com.codename1.ui.TextArea
All Implemented Interfaces:
Animation, Editable, ActionSource, StyleListener, TextHolder
Direct Known Subclasses:
TextField

public class TextArea extends Component implements ActionSource, TextHolder

An optionally multi-line editable region that can display text and allow a user to edit it. By default the text area will grow based on its content.

TextArea is useful both for text input and for displaying multi-line data, it is used internally by components such as com.codename1.components.SpanLabel & com.codename1.components.SpanButton.

TextArea & com.codename1.ui.TextField are very similar, we discuss the main differences between the two here. In fact they are so similar that our sample code below was written for com.codename1.ui.TextField but should be interchangeable with TextArea.

TableLayout tl;
int spanButton = 2;
if(Display.getInstance().isTablet()) {
    tl = new TableLayout(7, 2);
} else {
    tl = new TableLayout(14, 1);
    spanButton = 1;
}
tl.setGrowHorizontally(true);
hi.setLayout(tl);

TextField firstName = new TextField("", "First Name", 20, TextArea.ANY);
TextField surname = new TextField("", "Surname", 20, TextArea.ANY);
TextField email = new TextField("", "E-Mail", 20, TextArea.EMAILADDR);
TextField url = new TextField("", "URL", 20, TextArea.URL);
TextField phone = new TextField("", "Phone", 20, TextArea.PHONENUMBER);

TextField num1 = new TextField("", "1234", 4, TextArea.NUMERIC);
TextField num2 = new TextField("", "1234", 4, TextArea.NUMERIC);
TextField num3 = new TextField("", "1234", 4, TextArea.NUMERIC);
TextField num4 = new TextField("", "1234", 4, TextArea.NUMERIC);

Button submit = new Button("Submit");
TableLayout.Constraint cn = tl.createConstraint();
cn.setHorizontalSpan(spanButton);
cn.setHorizontalAlign(Component.RIGHT);
hi.add("First Name").add(firstName).
        add("Surname").add(surname).
        add("E-Mail").add(email).
        add("URL").add(url).
        add("Phone").add(phone).
        add("Credit Card").
                add(GridLayout.encloseIn(4, num1, num2, num3, num4)).
        add(cn, submit);
  • Field Details

    • ANY

      public static final int ANY
      Allows any type of input into a text field, if a constraint is not supported by an underlying implementation this will be the default.
      See Also:
    • EMAILADDR

      public static final int EMAILADDR
      The user is allowed to enter an e-mail address.
      See Also:
    • NUMERIC

      public static final int NUMERIC
      The user is allowed to enter only an integer value.
      See Also:
    • PHONENUMBER

      public static final int PHONENUMBER
      The user is allowed to enter a phone number.
      See Also:
    • URL

      public static final int URL
      The user is allowed to enter a URL.
      See Also:
    • DECIMAL

      public static final int DECIMAL
      The user is allowed to enter numeric values with optional decimal fractions, for example "-123", "0.123", or ".5".
      See Also:
    • PASSWORD

      public static final int PASSWORD
      Indicates that the text entered is confidential data that should be obscured whenever possible.
      See Also:
    • UNEDITABLE

      public static final int UNEDITABLE
      Indicates that editing is currently disallowed.
      See Also:
    • SENSITIVE

      public static final int SENSITIVE
      Indicates that the text entered is sensitive data that the implementation must never store into a dictionary or table for use in predictive, auto-completing, or other accelerated input schemes.
      See Also:
    • NON_PREDICTIVE

      public static final int NON_PREDICTIVE
      Indicates that the text entered does not consist of words that are likely to be found in dictionaries typically used by predictive input schemes.
      See Also:
    • INITIAL_CAPS_WORD

      public static final int INITIAL_CAPS_WORD
      This flag is a hint to the implementation that during text editing, the initial letter of each word should be capitalized.
      See Also:
    • INITIAL_CAPS_SENTENCE

      public static final int INITIAL_CAPS_SENTENCE
      This flag is a hint to the implementation that during text editing, the initial letter of each sentence should be capitalized.
      See Also:
    • USERNAME

      public static final int USERNAME
      This flag is a hint to the implementation that this field contains a username.
      See Also:
    • UPPERCASE

      public static final int UPPERCASE
      This flag is a hint to the implementation that the text in this field should be upper case
      See Also:
  • Constructor Details

    • TextArea

      public TextArea(int rows, int columns)

      Creates an area with the given rows and columns

      Parameters
      • rows: the number of rows

      • columns: - the number of columns

      Throws
      • IllegalArgumentException: if rows <= 0 or columns <= 1
    • TextArea

      public TextArea(int rows, int columns, int constraint)

      Creates an area with the given rows, columns and constraint

      Parameters
      • rows: the number of rows

      • columns: - the number of columns

      • constraint: @param constraint one of ANY, EMAILADDR, NUMERIC, PHONENUMBER, URL, DECIMAL it can be bitwised or'd with one of PASSWORD, UNEDITABLE, SENSITIVE, NON_PREDICTIVE, INITIAL_CAPS_SENTENCE, INITIAL_CAPS_WORD. E.g. ANY | PASSWORD.

      Throws
      • IllegalArgumentException: if rows <= 0 or columns <= 1
    • TextArea

      public TextArea(String text, int rows, int columns)

      Creates an area with the given text, rows and columns

      Parameters
      • text: @param text the text to be displayed; if text is null, the empty string "" will be displayed

      • rows: the number of rows

      • columns: - the number of columns

      Throws
      • IllegalArgumentException: if rows <= 0 or columns <= 1
    • TextArea

      public TextArea(String text, int rows, int columns, int constraint)

      Creates an area with the given text, rows, columns and constraint

      Parameters
      • text: @param text the text to be displayed; if text is null, the empty string "" will be displayed

      • rows: the number of rows

      • columns: - the number of columns

      • constraint: @param constraint one of ANY, EMAILADDR, NUMERIC, PHONENUMBER, URL, DECIMAL it can be bitwised or'd with one of PASSWORD, UNEDITABLE, SENSITIVE, NON_PREDICTIVE, INITIAL_CAPS_SENTENCE, INITIAL_CAPS_WORD. E.g. ANY | PASSWORD.

      Throws
      • IllegalArgumentException: if rows <= 0 or columns <= 1
    • TextArea

      public TextArea(String text, int maxSize)

      Creates an area with the given text and maximum size, this constructor will create a single line text area similar to a text field!

      Parameters
      • text: @param text the text to be displayed; if text is null, the empty string "" will be displayed

      • maxSize: text area maximum size

    • TextArea

      public TextArea(String text)

      Creates an area with the given text, this constructor will create a single line text area similar to a text field!

      Parameters
      • text: @param text the text to be displayed; if text is null, the empty string "" will be displayed
    • TextArea

      public TextArea()
      Creates an empty text area, this constructor will create a single line text area similar to a text field!
  • Method Details

    • getDefaultValign

      public static int getDefaultValign()

      Indicates the default vertical alignment for a text field, only applies to single line text fields

      Returns

      the defaultValign

    • setDefaultValign

      public static void setDefaultValign(int aDefaultValign)

      Indicates the default vertical alignment for a text field, only applies to single line text fields

      Parameters
      • aDefaultValign: the defaultValign to set
    • setDefaultMaxSize

      public static void setDefaultMaxSize(int value)

      Sets the default limit for the native text box size

      Parameters
      • value: default value for the size of the native text box
    • isAutoDegradeMaxSize

      public static boolean isAutoDegradeMaxSize()

      Indicates whether a high value for default maxSize will be reduced to a lower value if the underlying platform throws an exception.

      Returns

      value for autoDegradeMaxSize

    • setAutoDegradeMaxSize

      public static void setAutoDegradeMaxSize(boolean value)

      Indicates whether a high value for default maxSize will be reduced to a lower value if the underlying platform throws an exception.

      Parameters
      • value: new value for autoDegradeMaxSize
    • getWidestChar

      public static char getWidestChar()

      Indicates the widest character in the alphabet, this is useful for detecting linebreaks internally. In CJK languages the widest char is different than W hence this functionality is exposed to developers.

      Returns

      the widest character

    • setWidestChar

      public static void setWidestChar(char widestC)

      Indicates the widest character in the alphabet, this is useful for detecting linebreaks internally. In CJK languages the widest char is different than W hence this functionality is exposed to developers.

      Parameters
      • widestC: the widest character
    • autoDetectWidestChar

      public static void autoDetectWidestChar(String s)

      Searches the given string for the widest character using char width, this operation should only be performed once and it solves cases where a devices language might have a char bigger than 'W' that isn't consistently bigger. Notice that this method will use the TextArea style font which might differ when switching themes etc.

      Parameters
      • s: string to search using charWidth
    • isUseStringWidth

      public static boolean isUseStringWidth()

      By default text area uses charWidth since its much faster on some devices than string width. However, with some fonts and especially some languages (such as Arabic, Korean etc.) the width of the string drawn might not equal the summary of the width of the chars. Hence for portability to those languages/fonts this flag must be set to true.

      Returns

      the value of useStringWidth

    • setUseStringWidth

      public static void setUseStringWidth(boolean aUseStringWidth)

      By default text area uses charWidth since its much faster on some devices than string width. However, with some fonts and especially some languages (such as Arabic, Korean etc.) the width of the string drawn might not equal the summary of the width of the chars. Hence for portability to those languages/fonts this flag must be set to true.

      Parameters
      • aUseStringWidth: the new value for useStringWidth
    • initComponent

      protected void initComponent()
      Description copied from class: Component
      Allows subclasses to bind functionality that relies on fully initialized and "ready for action" component state
      Overrides:
      initComponent in class Component
    • deinitialize

      protected void deinitialize()
      Description copied from class: Component
      Invoked to indicate that the component initialization is being reversed since the component was detached from the container hierarchy. This allows the component to deregister animators and cleanup after itself. This method is the opposite of the initComponent() method.
      Overrides:
      deinitialize in class Component
    • initLaf

      protected void initLaf(UIManager uim)
      This method initializes the Component defaults constants
      Overrides:
      initLaf in class Component
    • getConstraint

      public int getConstraint()

      Returns the editing constraint value

      Returns

      the editing constraint value

      See also
      • #setConstraint
    • setConstraint

      public void setConstraint(int constraint)

      Sets the constraint which provides a hint to the virtual keyboard input, notice this doesn't limit input type in any way!

      Parameters
      • constraint: @param constraint one of ANY, EMAILADDR, NUMERIC, PHONENUMBER, URL, DECIMAL it can be bitwised or'd with one of PASSWORD, UNEDITABLE, SENSITIVE, NON_PREDICTIVE, INITIAL_CAPS_SENTENCE, INITIAL_CAPS_WORD. E.g. ANY | PASSWORD.
    • setWidth

      public void setWidth(int width)

      Sets the Component width, this method is exposed for the purpose of external layout managers and should not be invoked directly.

      If a user wishes to affect the component size, setPreferredSize should be used.

      Parameters
      • width: the width of the component
      See also
      • #setPreferredSize
      Overrides:
      setWidth in class Component
    • getText

      public String getText()

      Returns the text in the text area

      Returns

      the text in the text area

      Specified by:
      getText in interface TextHolder
    • setText

      public void setText(String t)

      Sets the text within this text area

      Parameters
      • t: new value for the text area
      Specified by:
      setText in interface TextHolder
    • getAsInt

      public int getAsInt(int invalid)

      Convenience method for numeric text fields, returns the value as a number or invalid if the value in the text field isn't a number

      Parameters
      • invalid: in case the text isn't an integer this number will be returned
      Returns

      the int value of the text field

    • getAsLong

      public long getAsLong(long invalid)

      Convenience method for numeric text fields, returns the value as a number or invalid if the value in the text field isn't a number

      Parameters
      • invalid: in case the text isn't a long this number will be returned
      Returns

      the long value of the text field

    • getAsDouble

      public double getAsDouble(double invalid)

      Convenience method for numeric text fields, returns the value as a number or invalid if the value in the text field isn't a number

      Parameters
      • invalid: in case the text isn't an double this number will be returned
      Returns

      the double value of the text field

    • isEditable

      public boolean isEditable()

      Returns true if this area is editable

      Returns

      true if this area is editable

      Specified by:
      isEditable in interface Editable
      Overrides:
      isEditable in class Component
    • setEditable

      public void setEditable(boolean b)

      Sets this text area to be editable or readonly

      Parameters
      • b: true is text are is editable; otherwise false
    • getPreferredTabIndex

      public int getPreferredTabIndex()
      Description copied from class: Component

      Gets the preferred tab index of this component. Tab indices are used to specify the traversal order when tabbing from component to component in a form.

      Tab index meanings work similar to the HTML tabIndex attribute. A tab Index of -1 (the default value) results in the field not being traversable using the keyboard (or using the next/prev buttons in devices' virtual keyboards). A tab index of 0 results in the component's traversal order being dictated by the natural traversal order of the form.

      Use Form#getTabIterator(com.codename1.ui.Component) to obtain the complete traversal order for all components in the form.

      Best practice is to only explicitly set preferred tabIndex values of 0 if you want the component to be traversable, or -1 if you don't want the component to be traversable. Explicitly setting a positive preferred tab index may result in unexpected results.

      How the Preferred Tab Index is Used

      When the user tries to "tab" to the next field (or presses the "Next" button on the virtual keyboard), this triggers a call to Form#getTabIterator(com.codename1.ui.Component), crawls the component hierarchy and returns a java.util.ListIterator of all of the traversable fields in the form in the order they should be traversed. This order is determined by the layout managers on the form. The core layout managers define sensible traversal orders by default. If you have a custom layout manager, you can override its traversal order by implementing the com.codename1.ui.layouts.Layout#overridesTabIndices(com.codename1.ui.Container) and com.codename1.ui.layouts.Layout#getChildrenInTraversalOrder(com.codename1.ui.Container) methods.

      Returns

      the tabbing index

      Overrides:
      getPreferredTabIndex in class Component
    • getMaxSize

      public int getMaxSize()

      Returns the maximum size for the text area

      Returns

      the maximum size for the text area

    • setMaxSize

      public void setMaxSize(int maxSize)

      Sets the maximum size of the text area

      Parameters
      • maxSize: the maximum size of the text area
    • keyPressed

      public void keyPressed(int keyCode)

      If this Component is focused, the key pressed event will call this method

      Parameters
      • keyCode: the key code value to indicate a physical key.
      Overrides:
      keyPressed in class Component
    • fireClicked

      protected void fireClicked()
      When working in 3 softbutton mode "fire" key (center softbutton) is sent to this method in order to allow 3 button devices to work properly. When overriding this method you should also override isSelectableInteraction to indicate that a command is placed appropriately on top of the fire key for 3 soft button phones.
      Overrides:
      fireClicked in class Component
    • isSelectableInteraction

      protected boolean isSelectableInteraction()

      This method allows a component to indicate that it is interested in an "implicit" select command to appear in the "fire" button when 3 softbuttons are defined in a device.

      Returns

      true if this is a selectable interaction

      Overrides:
      isSelectableInteraction in class Component
    • keyReleased

      public void keyReleased(int keyCode)

      If this Component is focused, the key released event will call this method

      Parameters
      • keyCode: the key code value to indicate a physical key.
      Overrides:
      keyReleased in class Component
    • isScrollableY

      public boolean isScrollableY()

      Indicates whether the component should/could scroll on the Y axis

      Returns

      whether the component is scrollable on the X axis

      Overrides:
      isScrollableY in class Component
    • pointerHover

      public void pointerHover(int[] x, int[] y)

      Invoked for devices where the pointer can hover without actually clicking the display. This is true for PC mouse pointer as well as some devices such as the BB storm.

      Parameters
      • x: the pointer x coordinate

      • y: the pointer y coordinate

      Overrides:
      pointerHover in class Component
    • pointerHoverReleased

      public void pointerHoverReleased(int[] x, int[] y)

      Invoked for devices where the pointer can hover without actually clicking the display. This is true for PC mouse pointer as well as some devices such as the BB storm.

      Parameters
      • x: the pointer x coordinate

      • y: the pointer y coordinate

      Overrides:
      pointerHoverReleased in class Component
    • pointerReleased

      public void pointerReleased(int x, int y)

      If this Component is focused, the pointer released event will call this method

      Parameters
      • x: the pointer x coordinate

      • y: the pointer y coordinate

      Overrides:
      pointerReleased in class Component
    • getColumns

      public int getColumns()

      Returns the number of columns in the text area

      Returns

      the number of columns in the text area

    • setColumns

      public void setColumns(int columns)

      Sets the number of columns in the text area

      Parameters
      • columns: number of columns
    • getActualRows

      public int getActualRows()

      Returns the number of actual rows in the text area taking into consideration growsByContent

      Returns

      the number of rows in the text area

    • getRows

      public int getRows()

      Returns the number of rows in the text area

      Returns

      the number of rows in the text area

    • setRows

      public void setRows(int rows)

      Sets the number of rows in the text area

      Parameters
      • rows: number of rows
    • getLines

      public int getLines()

      Returns the number of text lines in the TextArea

      Returns

      the number of text lines in the TextArea

    • getTextAt

      public String getTextAt(int line)

      Returns the text in the given row of the text box

      Parameters
      • line: the line number in the text box
      Returns

      the text of the line

    • preprocess

      protected char[] preprocess(String text)

      Override this to modify the text for rendering in cases of invalid characters for display, this method allows the developer to replace such characters e.g.: replace "\t" with 4 spaces

      Parameters
      • text: the text to process
      Returns

      the given string as a processed char array ready for rendering

    • getRowsGap

      public int getRowsGap()

      Gets the num of pixels gap between the rows

      Returns

      the gap between rows in pixels

    • setRowsGap

      public void setRowsGap(int rowsGap)

      The gap in pixels between rows

      Parameters
      • rowsGap: num of pixels to gap between rows
    • paint

      public void paint(Graphics g)

      This method paints the Component on the screen, it should be overriden by subclasses to perform custom drawing or invoke the UI API's to let the PLAF perform the rendering.

      Parameters
      • g: the component graphics
      Specified by:
      paint in interface Animation
      Overrides:
      paint in class Component
    • calcPreferredSize

      protected Dimension calcPreferredSize()

      Calculates the preferred size based on component content. This method is invoked lazily by getPreferred size.

      Returns

      the calculated preferred size based on component content

      Overrides:
      calcPreferredSize in class Component
    • calcScrollSize

      protected Dimension calcScrollSize()

      Method that can be overriden to represent the actual size of the component when it differs from the desireable size for the viewport

      Returns

      scroll size, by default this is the same as the preferred size

      Overrides:
      calcScrollSize in class Component
    • addActionListener

      public void addActionListener(ActionListener a)

      Add an action listener which is invoked when the text area was modified not during modification. A text field might never fire an action event if it is edited in place and the user never leaves the text field!

      Parameters
      • a: actionListener
      Specified by:
      addActionListener in interface ActionSource
    • removeActionListener

      public void removeActionListener(ActionListener a)

      Removes an action listener

      Parameters
      • a: actionListener
      Specified by:
      removeActionListener in interface ActionSource
    • addCloseListener

      public void addCloseListener(ActionListener l)

      Adds a listener to be called with this TextArea is "closed". I.e. when it is no longer the active virtual input device for the form.

      Parameters
      • l
      See also
      • Form#setCurrentInputDevice(com.codename1.ui.VirtualInputDevice)
    • removeCloseListener

      public void removeCloseListener(ActionListener l)

      Removes close listener.

      Parameters
      • l
      See also
      • #addCloseListener(com.codename1.ui.events.ActionListener)

      • Form#setCurrentInputDevice(com.codename1.ui.VirtualInputDevice)

    • isGrowByContent

      public boolean isGrowByContent()

      Indicates that the text area should "grow" in height based on the content beyond the limits indicate by the rows variable

      Returns

      true if the text component should grow and false otherwise

    • setGrowByContent

      public void setGrowByContent(boolean growByContent)

      Indicates that the text area should "grow" in height based on the content beyond the limits indicate by the rows variable

      Parameters
      • growByContent: true if the text component should grow and false otherwise
    • getUnsupportedChars

      public String getUnsupportedChars()

      Unsupported characters is a string that contains characters that cause issues when rendering on some problematic fonts. The rendering engine can thus remove them when drawing.

      Returns

      unsupported characters string

    • setUnsupportedChars

      public void setUnsupportedChars(String unsupportedChars)

      Unsupported characters is a string that contains characters that cause issues when rendering on some problematic fonts. The rendering engine can thus remove them when drawing.

      Parameters
      • unsupportedChars: the unsupported character string
    • getLinesToScroll

      public int getLinesToScroll()

      Indicates the number of lines to scroll with every scroll operation

      Returns

      number bigger or equal to 1

    • setLinesToScroll

      public void setLinesToScroll(int linesToScroll)

      Indicates the number of lines to scroll with every scroll operation

      Parameters
      • linesToScroll: number bigger or equal to 1
    • isSingleLineTextArea

      public boolean isSingleLineTextArea()

      Indicates whether this is a single line text area, in which case "growing" won't work as expected.

      Returns

      true if this is a single line text area

    • setSingleLineTextArea

      public void setSingleLineTextArea(boolean singleLineTextArea)

      Indicates whether this is a single line text area, in which case "growing" won't work as expected.

      Parameters
      • singleLineTextArea: set to true to force a single line text
    • getAlignment

      public int getAlignment()

      Returns the alignment of the TextArea

      Returns

      the alignment of the TextArea one of: CENTER, LEFT, RIGHT

      Deprecated

      use Style.getAlignment instead

      See also
      • #CENTER

      • #LEFT

      • #RIGHT

    • setAlignment

      public void setAlignment(int align)

      Sets the Alignment of the TextArea to one of: CENTER, LEFT, RIGHT

      Parameters
      • align: alignment value
      Deprecated

      use Style.setAlignment instead

      See also
      • #CENTER

      • #LEFT

      • #RIGHT

    • getAbsoluteAlignment

      public int getAbsoluteAlignment()

      Returns the absolute alignment of the TextArea In RTL LEFT alignment is actually RIGHT, but this method returns the actual alignment

      Returns

      the alignment of the TextArea one of: CENTER, LEFT, RIGHT

      Deprecated

      this method is redundant and no longer used

      See also
      • #CENTER

      • #LEFT

      • #RIGHT

    • isPendingCommit

      public boolean isPendingCommit()

      Returns true if the text field is waiting for a commit on editing

      Returns

      true if a commit is pending

    • getCursorPosition

      public int getCursorPosition()

      Returns the position of the cursor char position

      Returns

      the cursor position

    • getCursorY

      public int getCursorY()

      Returns the position of the cursor line position

      Returns

      the cursor line position

    • getCursorX

      public int getCursorX()

      Returns the position of the cursor char position in the current line.

      Returns

      the cursor char position in the current line

    • isQwertyInput

      public boolean isQwertyInput()

      True is this is a qwerty device or a device that is currently in qwerty mode.

      Returns

      currently defaults to false

    • getInputMode

      public String getInputMode()

      Returns the currently selected input mode

      Returns
      Returns:
      the display name of the input mode by default the following modes are supported: Abc, ABC, abc, 123
    • getInputModeOrder

      public String[] getInputModeOrder()

      Returns the order in which input modes are toggled

      Returns

      the order of the input modes

    • isEnableInputScroll

      public boolean isEnableInputScroll()

      Indicates whether text field input should scroll to the right side when no more room for the input is present.

      Returns

      true if scrolling is enabled

    • isEnterKey

      protected boolean isEnterKey(int keyCode)

      Indicates the enter key to be used for editing the text area and by the text field

      Parameters
      • keyCode: the key tested
    • getHint

      public String getHint()

      Returns the hint text

      Returns

      the hint text or null

    • setHint

      public void setHint(String hint)

      Sets the TextArea hint text, the hint text is displayed on the TextArea When there is no text in the TextArea

      Parameters
      • hint: the hint text to display
    • getHintIcon

      public Image getHintIcon()

      Returns the hint icon

      Returns

      the hint icon

    • setHintIcon

      public void setHintIcon(Image icon)

      Sets the TextArea hint icon, the hint is displayed on the TextArea When there is no text in the TextArea

      Parameters
      • icon: the icon
    • setHint

      public void setHint(String hint, Image icon)

      Sets the TextArea hint text and Icon, the hint text and icon are displayed on the TextArea when there is no text in the TextArea

      Parameters
      • hint: the hint text to display

      • icon: the hint icon to display

    • getHintLabel

      public Label getHintLabel()

      Returns the hint label component that can be customized directly

      Returns

      hint label component

    • getVerticalAlignment

      public int getVerticalAlignment()

      Returns the vertical alignment of the text field, this only applies to single line text field

      NOTE: If the text area is an editable, multi-line text field, and the platform doesn't support vertical alignment with its native text editor, then this will always return Component#TOP. Currently no platforms support vertical alignment of multiline text areas.

      Returns

      the vertical alignment of the TextField one of: CENTER, TOP, BOTTOM

      See also
      • #CENTER

      • #TOP

      • #BOTTOM

    • setVerticalAlignment

      public void setVerticalAlignment(int valign)

      Sets the vertical alignment of the text field to one of: CENTER, TOP, BOTTOM

      only applies to single line text field

      NOTE: If the text area is an editable, multi-line text field, and the platform doesn't support vertical alignment with its native text editor, then #getVerticalAlignment() will always return Component#TOP, no matter what value you set here. Currently no platforms support vertical alignment of multiline text areas.

      Parameters
      • valign: alignment value
      See also
      • #CENTER

      • #TOP

      • #BOTTOM

    • getBindablePropertyNames

      public String[] getBindablePropertyNames()

      Returns the names of the properties within this component that can be bound for persistence, the order of these names mean that the first one will be the first bound

      Returns

      a string array of property names or null

      Deprecated

      this mapped to an older iteration of properties that is no longer used

      Overrides:
      getBindablePropertyNames in class Component
    • getBindablePropertyTypes

      public Class[] getBindablePropertyTypes()

      Returns the types of the properties that are bindable within this component

      Returns

      the class for binding

      Deprecated

      this mapped to an older iteration of properties that is no longer used

      Overrides:
      getBindablePropertyTypes in class Component
    • bindProperty

      public void bindProperty(String prop, BindTarget target)

      Binds the given property name to the given bind target

      Parameters
      • prop: the property name

      • target: the target binder

      Deprecated

      this mapped to an older iteration of properties that is no longer used

      Deprecated

      uses the deprecated BindTarget interface

      Overrides:
      bindProperty in class Component
    • unbindProperty

      public void unbindProperty(String prop, BindTarget target)

      Removes a bind target from the given property name

      Parameters
      • prop: the property names

      • target: the target binder

      Deprecated

      this mapped to an older iteration of properties that is no longer used

      Deprecated

      uses the deprecated BindTarget interface

      Overrides:
      unbindProperty in class Component
    • getBoundPropertyValue

      public Object getBoundPropertyValue(String prop)

      Allows the binding code to extract the value of the property

      Parameters
      • prop: the property
      Returns

      the value for the property

      Deprecated

      this mapped to an older iteration of properties that is no longer used

      Overrides:
      getBoundPropertyValue in class Component
    • setBoundPropertyValue

      public void setBoundPropertyValue(String prop, Object value)

      Sets the value of a bound property within this component, notice that this method MUST NOT fire the property change event when invoked to prevent recursion!

      Parameters
      • prop: the property whose value should be set

      • value: the value

      Deprecated

      this mapped to an older iteration of properties that is no longer used

      Overrides:
      setBoundPropertyValue in class Component
    • getGrowLimit

      public int getGrowLimit()

      Indicates the maximum number of rows in a text area after it has grown, -1 indicates no limit

      Returns

      the growLimit

    • setGrowLimit

      public void setGrowLimit(int growLimit)

      Indicates the maximum number of rows in a text area after it has grown, -1 indicates no limit

      Parameters
      • growLimit: the growLimit to set
    • isEndsWith3Points

      public boolean isEndsWith3Points()

      If the TextArea text is too long to fit the text to the widget this will add "..." at the last displayable row. This flag is only applicable when there is a grow limit on the TextArea. E.g. a TextArea with potentially 10 rows can be displayed in 4 rows where the last row can be truncated and end with 3 points. By default this is set to false

      Returns

      true if this TextArea adds "..." when the text is too long

    • setEndsWith3Points

      public void setEndsWith3Points(boolean endsWith3Points)

      If the TextArea text is too long to fit the text to the widget this will add "..." at the last displayable row. This flag is only applicable when there is a grow limit on the TextArea. E.g. a TextArea with potentially 10 rows can be displayed in 4 rows where the last row can be truncated and end with 3 points. By default this is set to false

      Parameters
      • endsWith3Points: true if text should add "..." at the end
    • registerAsInputDevice

      public void registerAsInputDevice()

      Registers this TextArea as the current input device for the current form.

      Deprecated
    • startEditing

      public void startEditing()
      Launches the text field editing, notice that calling this in a callSerially is generally considered good practice
    • startEditingAsync

      public void startEditingAsync()
      Launches the text field editing in a callserially call
      Specified by:
      startEditingAsync in interface Editable
      Overrides:
      startEditingAsync in class Component
    • isEditing

      public boolean isEditing()

      Indicates whether we are currently editing this text area

      Returns

      true if Display.getInstance().isTextEditing(this)

      Specified by:
      isEditing in interface Editable
      Overrides:
      isEditing in class Component
    • stopEditing

      public void stopEditing()
      Stops text editing of this field if it is being edited
    • stopEditing

      public void stopEditing(Runnable onFinish)

      Stops text editing of this field if it is being edited

      Parameters
      • onFinish: invoked when editing stopped
      Specified by:
      stopEditing in interface Editable
      Overrides:
      stopEditing in class Component
    • getStyle

      public Style getStyle()

      Returns the current Component Style allowing code to draw the current component, you should normally use getUnselected/Pressed/DisabledStyle() and not this method since it will return different values based on component state.

      Returns

      the component Style object

      We override get style here to return the selected style when editing

      Returns

      the selected style if editing, super.getStyle() otherwise

      Overrides:
      getStyle in class Component
    • addDataChangedListener

      public void addDataChangedListener(DataChangedListener d)

      Adds a listener for data change events it will be invoked for every change made to the text field, notice most platforms will invoke only the DataChangedListener.CHANGED event

      Parameters
      • d: the listener
    • removeDataChangedListener

      public void removeDataChangedListener(DataChangedListener d)

      Removes the listener for data change events

      Parameters
      • d: the listener
    • addDataChangeListener

      public void addDataChangeListener(DataChangedListener d)

      Adds a listener for data change events it will be invoked for every change made to the text field, notice most platforms will invoke only the DataChangedListener.CHANGED event

      Parameters
      • d: the listener
      Deprecated

      use #addDataChangedListener(DataChangedListener) instead

    • removeDataChangeListener

      public void removeDataChangeListener(DataChangedListener d)

      Removes the listener for data change events

      Parameters
      • d: the listener
      Deprecated

      use #removeDataChangedListener(DataChangedListener) instead

    • fireDataChanged

      public void fireDataChanged(int type, int index)

      Alert the TextField listeners the text has been changed on the TextField

      Parameters
      • type: the event type: Added, Removed or Change

      • index: cursor location of the event

    • getDoneListener

      public ActionListener getDoneListener()

      Gets the done listener of this TextField.

      Returns

      the done listener or null if not exists

    • setDoneListener

      public void setDoneListener(ActionListener l)

      Sets a Done listener on the TextField - notice this listener will be called only on supported platforms that supports done action on the keyboard

      Parameters
      • l: the listener
    • fireDoneEvent

      public void fireDoneEvent()
      Fire the done event to done listener
    • fireDoneEvent

      public void fireDoneEvent(int keyEvent)
    • isActAsLabel

      public boolean isActAsLabel()

      This flag indicates that the text area should try to act as a label and try to fix more accurately within it's bounds this might make it slower as a result

      Returns

      the actAsLabel

    • setActAsLabel

      public void setActAsLabel(boolean actAsLabel)

      This flag indicates that the text area should try to act as a label and try to fix more accurately within it's bounds this might make it slower as a result

      Parameters
      • actAsLabel: the actAsLabel to set
    • shouldRenderComponentSelection

      protected boolean shouldRenderComponentSelection()

      Special case for text components, if they are editing they should always render the selected state

      A component can indicate whether it is interested in rendering it's selection explicitly, this defaults to true in non-touch UI's and false in touch UI's except for the case where a user clicks the screen.

      Returns

      Defaults to false

      Returns

      true if editing

      Overrides:
      shouldRenderComponentSelection in class Component
    • calculateTextSelectionSpan

      protected TextSelection.Spans calculateTextSelectionSpan(TextSelection sel)

      Calculates the spans for the the given text selection. This should generally just delegate to the appropriate method in the look and feel for performing the layout calculation.

      Parameters
      • sel: The TextSelection
      Since

      7.0

    • isTextSelectionEnabled

      public boolean isTextSelectionEnabled()

      Returns true if text selection is enabled on this label. Default is false. To enable text selection, you must enable text selection on the Form with Form#getTextSelection() and TextSelection#setEnabled(boolean), and also ensure that the label's text selection is enabled via #setTextSelectionEnabled(boolean).

      Since

      7.0

      See also
      • #setTextSelectionEnabled(boolean)
    • setTextSelectionEnabled

      public void setTextSelectionEnabled(boolean enabled)

      Enables text selection on this TextArea. Text selection must also be enabled on the Form in order to text selection to be activated.

      Parameters
      • enabled
      Since

      7.0

      See also
      • #setTextSelectionEnabled(boolean)

      • Form#getTextSelection()

      • TextSelection#setEnabled(boolean)

    • getTextSelectionSupport

      public TextSelection.TextSelectionSupport getTextSelectionSupport()

      Returns text selection support object for this component. Only used by components that support text selection (e.g. Labels, un-editable text fields, etc..).

      Returns

      text selection support object

      Since

      7.0

      Overrides:
      getTextSelectionSupport in class Component