com.google.gwt.user.client.ui

## Class ValueBoxBase<T>

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.google.gwt.user.client.ui.FocusWidget
      - - com.google.gwt.user.client.ui.ValueBoxBase<T>

- Type Parameters:
    `T` - the value type
  All Implemented Interfaces:
    IsEditor<ValueBoxEditor<T>>, HasAllDragAndDropHandlers, HasAllFocusHandlers, HasAllGestureHandlers, HasAllKeyHandlers, HasAllMouseHandlers, HasAllTouchHandlers, HasBlurHandlers, HasChangeHandlers, HasClickHandlers, HasDoubleClickHandlers, HasDragEndHandlers, HasDragEnterHandlers, HasDragHandlers, HasDragLeaveHandlers, HasDragOverHandlers, HasDragStartHandlers, HasDropHandlers, HasFocusHandlers, HasGestureChangeHandlers, HasGestureEndHandlers, HasGestureStartHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasKeyUpHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasTouchCancelHandlers, HasTouchEndHandlers, HasTouchMoveHandlers, HasTouchStartHandlers, HasAttachHandlers, HasValueChangeHandlers<T>, HasHandlers, AutoDirectionHandler.Target, HasDirection, HasDirectionEstimator, EventListener, TakesValue<T>, Focusable, HasEnabled, HasFocus, HasName, HasText, HasValue<T>, HasVisibility, IsWidget, SourcesClickEvents, SourcesFocusEvents, SourcesKeyboardEvents, SourcesMouseEvents
  Direct Known Subclasses:
    TextBoxBase, ValueBox

      public class ValueBoxBase<T>
      extends FocusWidget
      implements HasChangeHandlers, HasName, HasDirectionEstimator, HasValue<T>, HasText, AutoDirectionHandler.Target, IsEditor<ValueBoxEditor<T>>

  Abstract base class for all text entry widgets.

  ### Use in UiBinder Templates

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ValueBoxBase.TextAlignment` Alignment values for `setAlignment(com.google.gwt.user.client.ui.ValueBoxBase.TextAlignment)`.

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

    - ### Nested classes/interfaces inherited from interface com.google.gwt.i18n.client.HasDirection

      `HasDirection.Direction`

  - ### Field Summary

    - ### Fields inherited from class com.google.gwt.user.client.ui.Widget

      `eventsToSink`

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX, MISSING_ELEMENT_ERROR, SETELEMENT_TWICE_ERROR`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ValueBoxBase(Element elem, Renderer<T> renderer, Parser<T> parser)` Creates a value box that wraps the given browser element handle.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `HandlerRegistration` | `addChangeHandler(ChangeHandler handler)` Adds a `ChangeEvent` handler.
    `HandlerRegistration` | `addValueChangeHandler(ValueChangeHandler<T> handler)` Adds a `ValueChangeEvent` handler.
    `ValueBoxEditor<T>` | `asEditor()` Returns an Editor that is backed by the ValueBoxBase.
    `void` | `cancelKey()` If a keyboard event is currently being handled on this text box, calling this method will suppress it.
    `int` | `getCursorPos()` Gets the current position of the cursor (this also serves as the beginning of the text selection).
    `HasDirection.Direction` | `getDirection()` Gets the directionality of the widget.
    `DirectionEstimator` | `getDirectionEstimator()` Gets the direction estimation model of the auto-dir handler.
    `protected com.google.gwt.user.client.ui.impl.TextBoxImpl` | `getImpl()`
    `java.lang.String` | `getName()` Gets the widget's name.
    `java.lang.String` | `getSelectedText()` Gets the text currently selected within this text box.
    `int` | `getSelectionLength()` Gets the length of the current text selection.
    `java.lang.String` | `getText()` Gets this object's text.
    `T` | `getValue()` Return the parsed value, or null if the field is empty or parsing fails.
    `T` | `getValueOrThrow()` Return the parsed value, or null if the field is empty.
    `boolean` | `isReadOnly()` Determines whether or not the widget is read-only.
    `void` | `onBrowserEvent(Event event)` Fired whenever a browser event is received.
    `protected void` | `onLoad()` This method is called immediately after a widget becomes attached to the browser's document.
    `void` | `removeChangeListener(ChangeListener listener)` Deprecated. Use the `HandlerRegistration.removeHandler()` method on the object returned by `addChangeHandler(com.google.gwt.event.dom.client.ChangeHandler)` instead
    `void` | `selectAll()` Selects all of the text in the box.
    `void` | `setAlignment(ValueBoxBase.TextAlignment align)`
    `void` | `setCursorPos(int pos)` Sets the cursor position.
    `void` | `setDirection(HasDirection.Direction direction)` Sets the directionality for a widget.
    `void` | `setDirectionEstimator(boolean enabled)` Toggles on / off direction estimation.
    `void` | `setDirectionEstimator(DirectionEstimator directionEstimator)` Sets the direction estimation model of the auto-dir handler.
    `void` | `setKey(char key)` Deprecated. this method only works in IE and should not have been added to the API
    `void` | `setName(java.lang.String name)` Sets the widget's name.
    `void` | `setReadOnly(boolean readOnly)` Turns read-only mode on or off.
    `void` | `setSelectionRange(int pos, int length)` Sets the range of text to be selected.
    `void` | `setText(java.lang.String text)` Sets this object's text.
    `void` | `setValue(T value)` Sets this object's value without firing any events.
    `void` | `setValue(T value, boolean fireEvents)` Sets this object's value.

    - ### Methods inherited from class com.google.gwt.user.client.ui.FocusWidget

      `addBlurHandler, addClickHandler, addClickListener, addDoubleClickHandler, addDragEndHandler, addDragEnterHandler, addDragHandler, addDragLeaveHandler, addDragOverHandler, addDragStartHandler, addDropHandler, addFocusHandler, addFocusListener, addGestureChangeHandler, addGestureEndHandler, addGestureStartHandler, addKeyboardListener, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, addMouseDownHandler, addMouseListener, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseUpHandler, addMouseWheelHandler, addMouseWheelListener, addTouchCancelHandler, addTouchEndHandler, addTouchMoveHandler, addTouchStartHandler, getFocusImpl, getTabIndex, isEnabled, onAttach, removeClickListener, removeFocusListener, removeKeyboardListener, removeMouseListener, removeMouseWheelListener, setAccessKey, setEnabled, setFocus, setTabIndex`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, ensureHandlers, fireEvent, getHandlerCount, getHandlerManager, getLayoutData, getParent, isAttached, isOrWasAttached, onDetach, onUnload, removeFromParent, replaceElement, setLayoutData, setParent, sinkEvents, unsinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface com.google.gwt.event.dom.client.HasKeyUpHandlers

      `addKeyUpHandler`

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

- - ### Constructor Detail

    - #### ValueBoxBase

          protected ValueBoxBase(Element elem,
                                 Renderer<T> renderer,
                                 Parser<T> parser)

      Creates a value box that wraps the given browser element handle. This is only used by subclasses.
      Parameters:
        `elem` - the browser element to wrap

  - ### Method Detail

    - #### addChangeHandler

          public HandlerRegistration addChangeHandler(ChangeHandler handler)

      Description copied from interface: `HasChangeHandlers`
      Adds a `ChangeEvent` handler.
      Specified by:
        `addChangeHandler` in interface `HasChangeHandlers`
      Parameters:
        `handler` - the change handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addValueChangeHandler

          public HandlerRegistration addValueChangeHandler(ValueChangeHandler<T> handler)

      Description copied from interface: `HasValueChangeHandlers`
      Adds a `ValueChangeEvent` handler.
      Specified by:
        `addValueChangeHandler` in interface `HasValueChangeHandlers<T>`
      Parameters:
        `handler` - the handler
      Returns:
        the registration for the event

    - #### asEditor

          public ValueBoxEditor<T> asEditor()

      Returns an Editor that is backed by the ValueBoxBase. The default implementation returns `ValueBoxEditor.of(ValueBoxBase)`. Subclasses may override this method to provide custom error-handling when using the Editor framework.
      Specified by:
        `asEditor` in interface `IsEditor<ValueBoxEditor<T>>`
      Returns:
        an `Editor` of type E

    - #### cancelKey

          public void cancelKey()

      If a keyboard event is currently being handled on this text box, calling this method will suppress it. This allows listeners to easily filter keyboard input.

    - #### getCursorPos

          public int getCursorPos()

      Gets the current position of the cursor (this also serves as the beginning of the text selection).
      Returns:
        the cursor's position

    - #### getDirection

          public HasDirection.Direction getDirection()

      Description copied from interface: `HasDirection`
      Gets the directionality of the widget.
      Specified by:
        `getDirection` in interface `HasDirection`
      Returns:
        `RTL` if the directionality is right-to-left, `LTR` if the directionality is left-to-right, or `DEFAULT` if the directionality is not explicitly specified

    - #### getDirectionEstimator

          public DirectionEstimator getDirectionEstimator()

      Gets the direction estimation model of the auto-dir handler.
      Specified by:
        `getDirectionEstimator` in interface `HasDirectionEstimator`

    - #### getName

          public java.lang.String getName()

      Description copied from interface: `HasName`
      Gets the widget's name.
      Specified by:
        `getName` in interface `HasName`
      Returns:
        the widget's name

    - #### getSelectedText

          public java.lang.String getSelectedText()

      Gets the text currently selected within this text box.
      Returns:
        the selected text, or an empty string if none is selected

    - #### getSelectionLength

          public int getSelectionLength()

      Gets the length of the current text selection.
      Returns:
        the text selection length

    - #### getText

          public java.lang.String getText()

      Description copied from interface: `HasText`
      Gets this object's text.
      Specified by:
        `getText` in interface `AutoDirectionHandler.Target`
      Specified by:
        `getText` in interface `HasText`
      Returns:
        the object's text

    - #### getValue

          public T getValue()

      Return the parsed value, or null if the field is empty or parsing fails.
      Specified by:
        `getValue` in interface `TakesValue<T>`
      Specified by:
        `getValue` in interface `HasValue<T>`
      Returns:
        the object's value
      See Also:
        `TakesValue.setValue(V)`

    - #### getValueOrThrow

          public T getValueOrThrow()
                            throws java.text.ParseException

      Return the parsed value, or null if the field is empty.
      Throws:
        `java.text.ParseException` - if the value cannot be parsed

    - #### isReadOnly

          public boolean isReadOnly()

      Determines whether or not the widget is read-only.
      Returns:
        `true` if the widget is currently read-only, `false` if the widget is currently editable

    - #### onBrowserEvent

          public void onBrowserEvent(Event event)

      Description copied from interface: `EventListener`
      Fired whenever a browser event is received.
      Specified by:
        `onBrowserEvent` in interface `EventListener`
      Overrides:
        `onBrowserEvent` in class `Widget`
      Parameters:
        `event` - the event received

    - #### removeChangeListener

          @Deprecated
          public void removeChangeListener(ChangeListener listener)

      Deprecated. Use the `HandlerRegistration.removeHandler()` method on the object returned by `addChangeHandler(com.google.gwt.event.dom.client.ChangeHandler)` instead

    - #### selectAll

          public void selectAll()

      Selects all of the text in the box. This will only work when the widget is attached to the document and not hidden.

    - #### setAlignment

          public void setAlignment(ValueBoxBase.TextAlignment align)

    - #### setCursorPos

          public void setCursorPos(int pos)

      Sets the cursor position. This will only work when the widget is attached to the document and not hidden.
      Parameters:
        `pos` - the new cursor position

    - #### setDirection

          public void setDirection(HasDirection.Direction direction)

      Description copied from interface: `HasDirection`
      Sets the directionality for a widget.
      Specified by:
        `setDirection` in interface `HasDirection`
      Parameters:
        `direction` - `RTL` if the directionality should be set to right-to-left, `LTR` if the directionality should be set to left-to-right `DEFAULT` if the directionality should not be explicitly set

    - #### setDirectionEstimator

          public void setDirectionEstimator(boolean enabled)

      Toggles on / off direction estimation.
      Specified by:
        `setDirectionEstimator` in interface `HasDirectionEstimator`
      Parameters:
        `enabled` - Whether to enable direction estimation. If `true`, sets the `DirectionEstimator` object to a default `DirectionEstimator`.

    - #### setDirectionEstimator

          public void setDirectionEstimator(DirectionEstimator directionEstimator)

      Sets the direction estimation model of the auto-dir handler.
      Specified by:
        `setDirectionEstimator` in interface `HasDirectionEstimator`
      Parameters:
        `directionEstimator` - The `DirectionEstimator` to be set. `null` means turning off direction estimation.

    - #### setKey

          @Deprecated
          public void setKey(char key)

      Deprecated. this method only works in IE and should not have been added to the API
      If a keyboard event is currently being handled by the text box, this method replaces the unicode character or key code associated with it. This allows listeners to easily filter keyboard input.
      Parameters:
        `key` - the new key value

    - #### setName

          public void setName(java.lang.String name)

      Description copied from interface: `HasName`
      Sets the widget's name.
      Specified by:
        `setName` in interface `HasName`
      Parameters:
        `name` - the widget's new name

    - #### setReadOnly

          public void setReadOnly(boolean readOnly)

      Turns read-only mode on or off.
      Parameters:
        `readOnly` - if `true`, the widget becomes read-only; if `false` the widget becomes editable

    - #### setSelectionRange

          public void setSelectionRange(int pos,
                                        int length)

      Sets the range of text to be selected. This will only work when the widget is attached to the document and not hidden.
      Parameters:
        `pos` - the position of the first character to be selected
        `length` - the number of characters to be selected

    - #### setText

          public void setText(java.lang.String text)

      Sets this object's text. Note that some browsers will manipulate the text before adding it to the widget. For example, most browsers will strip all `\r` from the text, except IE which will add a `\r` before each `\n`. Use `getText()` to get the text directly from the widget.
      Specified by:
        `setText` in interface `AutoDirectionHandler.Target`
      Specified by:
        `setText` in interface `HasText`
      Parameters:
        `text` - the object's new text

    - #### setValue

          public void setValue(T value)

      Description copied from interface: `HasValue`
      Sets this object's value without firing any events. This should be identical to calling setValue(value, false).

      It is acceptable to fail assertions or throw (documented) unchecked exceptions in response to bad values.

      Widgets must accept null as a valid value. By convention, setting a widget to null clears value, calling getValue() on a cleared widget returns null. Widgets that can not be cleared (e.g. `CheckBox`) must find another valid meaning for null input.

      Specified by:
        `setValue` in interface `TakesValue<T>`
      Specified by:
        `setValue` in interface `HasValue<T>`
      Parameters:
        `value` - the object's new value
      See Also:
        `TakesValue.getValue()`

    - #### setValue

          public void setValue(T value,
                               boolean fireEvents)

      Description copied from interface: `HasValue`
      Sets this object's value. Fires `ValueChangeEvent` when fireEvents is true and the new value does not equal the existing value.

      It is acceptable to fail assertions or throw (documented) unchecked exceptions in response to bad values.

      Specified by:
        `setValue` in interface `HasValue<T>`
      Parameters:
        `value` - the object's new value
        `fireEvents` - fire events if true and value is new

    - #### getImpl

          protected com.google.gwt.user.client.ui.impl.TextBoxImpl getImpl()

    - #### onLoad

          protected void onLoad()

      Description copied from class: `Widget`
      This method is called immediately after a widget becomes attached to the browser's document.
      Overrides:
        `onLoad` in class `Widget`