Package org.zkoss.zul

## Class Textbox

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.HtmlBasedComponent
    - - org.zkoss.zul.impl.XulElement
      - - org.zkoss.zul.impl.InputElement
        - - org.zkoss.zul.Textbox

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Disable`, `Readonly`, `Scope`, `ComponentCtrl`, `Constrainted`
  Direct Known Subclasses:
    `Bandbox`, `Combobox`

      public class Textbox
      extends InputElement

  A textbox.

  See Specification.

  Default `getZclass()`: z-textbox.(since 3.5.0)

  When multiline is true, only default mold is available.

  Author:
    tomyeh
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `HtmlBasedComponent.ExtraCtrl`

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

      `AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo`

  - ### Field Summary

    - ### Fields inherited from class org.zkoss.zul.impl.InputElement

      `_cols, _value`

    - ### Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `_zclass`

    - ### Fields inherited from interface org.zkoss.zk.ui.Component

      `APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE`

    - ### Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

      `AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Textbox()` |
    `Textbox​(java.lang.String value)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `checkBeforeSetRows()` | Internal check if there is any use of vflex and height before setRows
    `java.lang.Object` | `clone()` | Clones the component.
    `protected java.lang.Object` | `coerceFromString​(java.lang.String value)` | Coerces the value passed to `setValue(java.lang.String)`.
    `protected java.lang.String` | `coerceToString​(java.lang.Object value)` | Coerces the value passed to `setValue(java.lang.String)`.
    `PropertyAccess` | `getPropertyAccess​(java.lang.String prop)` | Returns the corresponding property access object from the given property name, if any.
    `int` | `getRows()` | Returns the rows.
    `java.lang.String` | `getType()` | Returns the type.
    `java.lang.String` | `getValue()` | Returns the value.
    `java.lang.String` | `getZclass()` | Returns the ZK Cascading Style class for this component.
    `boolean` | `isMultiline()` | Returns whether it is multiline.
    `boolean` | `isSubmitByEnter()` | Returns whether it is submitByEnter, If submitByEnter is true, press enter will fire onOK event instead of move to next line, you should press shift + enter if you want to move to next line.
    `boolean` | `isTabbable()` | Returns whether TAB is allowed.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `setHeight​(java.lang.String height)` | Sets the height.
    `void` | `setMultiline​(boolean multiline)` | Sets whether it is multiline.
    `void` | `setRows​(int rows)` | Sets the rows.
    `void` | `setSubmitByEnter​(boolean submitByEnter)` | Sets whether it is submitByEnter.
    `void` | `setTabbable​(boolean tabbable)` | Sets whether TAB is allowed.
    `void` | `setType​(java.lang.String type)` | Sets the type.
    `void` | `setValue​(java.lang.String value)` | Sets the value.
    `void` | `setVflex​(java.lang.String flex)` | Sets vertical flexibility hint of this component.

    - ### Methods inherited from class org.zkoss.zul.impl.InputElement

      `checkUserError, clearErrorMessage, clearErrorMessage, getCols, getConstraint, getConstraintString, getErrorboxIconSclass, getErrorboxSclass, getErrorMessage, getInputAttributes, getInstant, getMaxlength, getName, getPlaceholder, getRawText, getRawValue, getTargetValue, getText, isChildable, isDisabled, isInplace, isInstant, isReadonly, isValid, marshall, onWrongValue, select, service, setCols, setConstraint, setConstraint, setDisabled, setErrorboxIconSclass, setErrorboxSclass, setErrorMessage, setInplace, setInputAttributes, setInputAttributes, setInsertedText, setInstant, setMaxlength, setName, setPlaceholder, setRawValue, setReadonly, setSelectedText, setSelectionRange, setText, setValueDirectly, showCustomError, unmarshall, validate`

    - ### Methods inherited from class org.zkoss.zul.impl.XulElement

      `getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes`

    - ### Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly`

    - ### Methods inherited from class org.zkoss.zk.ui.AbstractComponent

      `addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize`

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

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

- - ### Constructor Detail

    - #### Textbox

          public Textbox()

    - #### Textbox

          public Textbox​(java.lang.String value)
                  throws WrongValueException

      Throws:
        `WrongValueException`

  - ### Method Detail

    - #### getValue

          public java.lang.String getValue()
                                    throws WrongValueException

      Returns the value. The same as `InputElement.getText()`.

      Default: "".

      Throws:
        `WrongValueException` - if user entered a wrong value

    - #### setValue

          public void setValue​(java.lang.String value)
                        throws WrongValueException

      Sets the value.
      Parameters:
        `value` - the value; If null, it is considered as empty.
      Throws:
        `WrongValueException` - if value is wrong

    - #### coerceFromString

          protected java.lang.Object coerceFromString​(java.lang.String value)
                                               throws WrongValueException

      Coerces the value passed to `setValue(java.lang.String)`.

      Default: convert null to an empty string.

      Specified by:
        `coerceFromString` in class `InputElement`
      Throws:
        `WrongValueException`

    - #### coerceToString

          protected java.lang.String coerceToString​(java.lang.Object value)

      Coerces the value passed to `setValue(java.lang.String)`.

      Default: convert null to an empty string.

      Specified by:
        `coerceToString` in class `InputElement`

    - #### getType

          public java.lang.String getType()

      Returns the type.

      Default: text.

      Overrides:
        `getType` in class `InputElement`

    - #### setType

          public void setType​(java.lang.String type)
                       throws WrongValueException

      Sets the type.
      Parameters:
        `type` - the type. Acceptable values are "text" and "password". Unlike XUL, "timed" is redundant because it is enabled as long as onChanging is added. Since 6.5.0 type also support tel, email and url.
      Throws:
        `WrongValueException`

    - #### getRows

          public int getRows()

      Returns the rows.

      Default: 1.

    - #### setRows

          public void setRows​(int rows)
                       throws WrongValueException

      Sets the rows.

      Note: Not allowed to set rows and height/vflex at the same time

      Throws:
        `WrongValueException`

    - #### checkBeforeSetRows

          protected void checkBeforeSetRows()
                                     throws UiException

      Internal check if there is any use of vflex and height before setRows
      Throws:
        `UiException`

    - #### isMultiline

          public boolean isMultiline()

      Returns whether it is multiline.

      Default: false.

      Overrides:
        `isMultiline` in class `InputElement`

    - #### setMultiline

          public void setMultiline​(boolean multiline)

      Sets whether it is multiline.

    - #### isTabbable

          public boolean isTabbable()

      Returns whether TAB is allowed. If true, the user can enter TAB in the textbox, rather than change focus.

      Default: false.

      Since:
        3.6.0

    - #### setTabbable

          public void setTabbable​(boolean tabbable)

      Sets whether TAB is allowed. If true, the user can enter TAB in the textbox, rather than change focus.

      Default: false.

      Since:
        3.6.0

    - #### isSubmitByEnter

          public boolean isSubmitByEnter()

      Returns whether it is submitByEnter, If submitByEnter is true, press enter will fire onOK event instead of move to next line, you should press shift + enter if you want to move to next line.

      Default: false.

      Returns:
        true if it is submitByEnter.
      Since:
        8.5.2

    - #### setSubmitByEnter

          public void setSubmitByEnter​(boolean submitByEnter)

      Sets whether it is submitByEnter. If submitByEnter is true, press enter will fire onOK event instead of move to next line, you should press shift + enter if you want to move to next line.
      Parameters:
        `submitByEnter` - whether it is submitByEnter
      Since:
        8.5.2

    - #### setVflex

          public void setVflex​(java.lang.String flex)

      Description copied from class: `HtmlBasedComponent`
      Sets vertical flexibility hint of this component.

      Number flex indicates how this component's container distributes remaining empty space among its children vertically. Flexible component grow and shrink to fit their given space. Flexible components with larger flex values will be made larger than components with lower flex values, at the ratio determined by all flexible components. The actual flex value is not relevant unless there are other flexible components within the same container. Once the default sizes of components in a container are calculated, the remaining space in the container is divided among the flexible components, according to their flex ratios.

      Specify a flex value of negative value, 0, or "false" has the same effect as leaving the flex attribute out entirely. Specify a flex value of "true" has the same effect as a flex value of 1.

      Special flex hint, "min", indicates that the minimum space shall be given to this flexible component to enclose all of its children components. That is, the flexible component grow and shrink to fit its children components.

      Overrides:
        `setVflex` in class `HtmlBasedComponent`
      Parameters:
        `flex` - the vertical flex hint.
      See Also:
        `HtmlBasedComponent.setHflex(java.lang.String)`, `HtmlBasedComponent.getVflex()`

    - #### setHeight

          public void setHeight​(java.lang.String height)

      Description copied from class: `HtmlBasedComponent`
      Sets the height. If null, the best fit is used.
      Overrides:
        `setHeight` in class `HtmlBasedComponent`

    - #### clone

          public java.lang.Object clone()

      Description copied from interface: `Component`
      Clones the component. All of its children and descendants are cloned. Also, ID are preserved.
      Specified by:
        `clone` in interface `Component`
      Overrides:
        `clone` in class `InputElement`
      Returns:
        the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.

    - #### getPropertyAccess

          public PropertyAccess getPropertyAccess​(java.lang.String prop)

      Description copied from interface: `ComponentCtrl`
      Returns the corresponding property access object from the given property name, if any.
      Specified by:
        `getPropertyAccess` in interface `ComponentCtrl`
      Overrides:
        `getPropertyAccess` in class `InputElement`
      Parameters:
        `prop` - the name of the property
      Returns:
        null it means not to support for the property name.

    - #### renderProperties

          protected void renderProperties​(ContentRenderer renderer)
                                   throws java.io.IOException

      Description copied from class: `HtmlBasedComponent`
      Renders the content of this component, excluding the enclosing tags and children.

      See also ZK Client-side Reference: Property Rendering

      Overrides:
        `renderProperties` in class `InputElement`
      Throws:
        `java.io.IOException`

    - #### getZclass

          public java.lang.String getZclass()

      Description copied from class: `HtmlBasedComponent`
      Returns the ZK Cascading Style class for this component. It usually depends on the implementation of the mold (`AbstractComponent.getMold()`).

      Default: null (the default value depends on element).

      `HtmlBasedComponent.setZclass(java.lang.String)`) will completely replace the default style of a component. In other words, the default style of a component is associated with the default value of `HtmlBasedComponent.getZclass()`. Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, use `HtmlBasedComponent.setSclass(java.lang.String)` instead.

      Overrides:
        `getZclass` in class `HtmlBasedComponent`
      See Also:
        `HtmlBasedComponent.getSclass()`