Class AbstractComboBox<R extends AbstractComboBox<R,T>,T>

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<R,T>
com.vaadin.flow.component.AbstractSinglePropertyField<R,T>
org.vaadin.addons.componentfactory.AbstractComboBox<R,T>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<R>, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<R>, com.vaadin.flow.component.FocusNotifier<R>, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<R,T>,T>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<R,T>,T>, Serializable
Direct Known Subclasses:
ComboBoxLight

@Tag("vaadin-combo-box") @Uses(com.vaadin.flow.component.combobox.ComboBox.class) public abstract class AbstractComboBox<R extends AbstractComboBox<R,T>,T> extends com.vaadin.flow.component.AbstractSinglePropertyField<R,T> implements com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.Focusable<R>

Description copied from corresponding location in WebComponent:

<vaadin-combo-box> is a combo box element combining a dropdown list with an input field for filtering the list of items. If you want to replace the default input field with a custom implementation, you should use the <vaadin-combo-box-light> element.

Items in the dropdown list must be provided as a list of String values. Defining the items is done using the items property, which can be assigned with data-binding, using an attribute or directly with the JavaScript property.

<vaadin-combo-box label="Fruit" items="[[data]]"> </vaadin-combo-box>

combobox.items = ['apple', 'orange', 'banana'];

When the selected value is changed, a value-changed event is triggered.

This element can be used within an iron-form.

Item rendering

<vaadin-combo-box> supports using custom renderer callback function for defining the content of <vaadin-combo-box-item>.

The renderer function provides root, comboBox, model arguments when applicable. Generate DOM content by using model object properties if needed, append it to the root element and control the state of the host element by accessing comboBox. Before generating new content, users are able to check if there is already content in root for reusing it.

<vaadin-combo-box id="combo-box"></vaadin-combo-box> const comboBox = document.querySelector('#combo-box');comboBox.items = [ 'label': 'Hydrogen', 'value': 'H']; comboBox.renderer = function(root, comboBox, model) { root.innerHTML = model.index + ': ' + model.item.label + ' ' + '' + model.item.value + ''; };}

Renderer is called on the opening of the combo-box and each time the related model is updated. DOM generated during the renderer call can be reused in the next renderer call and will be provided with the root argument. On first call it will be empty.

Item Template

Alternatively, the content of the <vaadin-combo-box-item> can be populated by using custom item template provided in the light DOM:

<vaadin-combo-box items='[{"label": "Hydrogen", "value": "H"}]'> <template> [[index]]: [[item.label]] <b>[[item.value]</b> </template> </vaadin-combo-box>

The following properties are available for item template bindings:

Property name Type Description
index Number Index of the item in the items array
item String or Object The item reference
selected Boolean True when item is selected
focused Boolean True when item is focused

Lazy Loading with Function Data Provider

In addition to assigning an array to the items property, you can alternatively provide the <vaadin-combo-box> data through the dataProvider function property. The <vaadin-combo-box> calls this function lazily, only when it needs more data to be displayed.

See the dataProvider in the API reference below for the detailed data provider arguments description, and the “Lazy Loading“ example on “Basics†page in the demos.

Note that when using function data providers, the total number of items needs to be set manually. The total number of items can be returned in the second argument of the data provider callback:

javascript comboBox.dataProvider = function(params, callback) var url = 'https://api.example/data' + '?page=' + params.page + // the requested page index '&amp;per_page=' + params.pageSize; // number of items on the page var xhr = new XMLHttpRequest(); xhr.onload = function() { var response = JSON.parse(xhr.responseText); callback( response.employees, // requested page of items response.totalSize // total number of items ); }; xhr.open('GET', url, true); xhr.send(); ;}

Styling

The following custom properties are available for styling:

Custom property Description Default
--vaadin-combo-box-overlay-max-height Property that determines the max height of overlay 65vh

The following shadow DOM parts are available for styling:

Part name Description
text-field The text field
toggle-button The toggle button

See <vaadin-overlay> documentation for <vaadin-combo-box-overlay> parts.

See <vaadin-text-field> documentation for the text field parts.

The following state attributes are available for styling:

Attribute Description Part name
opened Set when the combo box dropdown is open :host
disabled Set to a disabled combo box :host
readonly Set to a read only combo box :host
has-value Set when the element has a value :host
invalid Set when the element is invalid :host
focused Set when the element is focused :host
focus-ring Set when the element is keyboard focused :host
loading Set when new items are expected :host

In addition to <vaadin-combo-box> itself, the following internal components are themable:

  • <vaadin-text-field>
  • <vaadin-combo-box-overlay>
  • <vaadin-combo-box-item>

Note: the theme attribute value set on <vaadin-combo-box> is propagated to the internal themable components listed above.

See ThemableMixin – how to apply styles for shadow parts

See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
    static class 
     
    static class 
     
    static class 
     
    static class 
     

    Nested classes/interfaces inherited from class com.vaadin.flow.component.AbstractField

    com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C extends com.vaadin.flow.component.Component,V>

    Nested classes/interfaces inherited from interface com.vaadin.flow.component.BlurNotifier

    com.vaadin.flow.component.BlurNotifier.BlurEvent<C extends com.vaadin.flow.component.Component>

    Nested classes/interfaces inherited from interface com.vaadin.flow.component.FocusNotifier

    com.vaadin.flow.component.FocusNotifier.FocusEvent<C extends com.vaadin.flow.component.Component>

    Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasValue

    com.vaadin.flow.component.HasValue.ValueChangeEvent<V>, com.vaadin.flow.component.HasValue.ValueChangeListener<E extends com.vaadin.flow.component.HasValue.ValueChangeEvent<?>>
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
    AbstractComboBox(T initialValue, T defaultValue, boolean acceptNullValues)
    Constructs a new GeneratedVaadinComboBox component with the given arguments.
    AbstractComboBox(T initialValue, T defaultValue, Class<P> elementPropertyType, com.vaadin.flow.function.SerializableBiFunction<R,P,T> presentationToModel, com.vaadin.flow.function.SerializableBiFunction<R,T,P> modelToPresentation)
    Constructs a new GeneratedVaadinComboBox component with the given arguments.
    AbstractComboBox(T initialValue, T defaultValue, Class<P> elementPropertyType, com.vaadin.flow.function.SerializableBiFunction<R,P,T> presentationToModel, com.vaadin.flow.function.SerializableBiFunction<R,T,P> modelToPresentation, boolean isInitialValueOptional)
    Constructs a new GeneratedVaadinComboBox component with the given arguments.
    AbstractComboBox(T initialValue, T defaultValue, Class<P> elementPropertyType, com.vaadin.flow.function.SerializableFunction<P,T> presentationToModel, com.vaadin.flow.function.SerializableFunction<T,P> modelToPresentation)
    Constructs a new GeneratedVaadinComboBox component with the given arguments.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected com.vaadin.flow.shared.Registration
    addCustomValueSetListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.CustomValueSetEvent<R>> listener)
    Adds a listener for custom-value-set events fired by the webcomponent.
    protected com.vaadin.flow.shared.Registration
    addFilterChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.FilterChangeEvent<R>> listener)
    Adds a listener for filter-changed events fired by the webcomponent.
    protected com.vaadin.flow.shared.Registration
    addInvalidChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.InvalidChangeEvent<R>> listener)
    Adds a listener for invalid-changed events fired by the webcomponent.
    protected com.vaadin.flow.shared.Registration
    addOpenedChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.OpenedChangeEvent<R>> listener)
    Adds a listener for opened-changed events fired by the webcomponent.
    protected com.vaadin.flow.shared.Registration
    addSelectedItemChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.SelectedItemChangeEvent<R>> listener)
    Adds a listener for selected-item-changed events fired by the webcomponent.
    protected void
    addToPrefix(com.vaadin.flow.component.Component... components)
    Adds the given components as children of this component at the slot 'prefix'.
    protected void
    Description copied from corresponding location in WebComponent:
    protected void
    Description copied from corresponding location in WebComponent:
    protected void
    Description copied from corresponding location in WebComponent:
    protected void
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected com.fasterxml.jackson.databind.node.ArrayNode
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected com.fasterxml.jackson.databind.node.ArrayNode
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected double
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected String
    Description copied from corresponding location in WebComponent:
    protected com.fasterxml.jackson.databind.node.ObjectNode
    Description copied from corresponding location in WebComponent:
    protected double
    Description copied from corresponding location in WebComponent:
    protected boolean
    Description copied from corresponding location in WebComponent:
    protected boolean
    This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.
    protected boolean
    Description copied from corresponding location in WebComponent:
    protected boolean
    Description copied from corresponding location in WebComponent:
    protected boolean
    Description copied from corresponding location in WebComponent:
    protected boolean
    Description copied from corresponding location in WebComponent:
    protected boolean
    Description copied from corresponding location in WebComponent:
    protected boolean
    This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.
    protected boolean
    Description copied from corresponding location in WebComponent:
    protected void
    Description copied from corresponding location in WebComponent:
    protected void
    remove(com.vaadin.flow.component.Component... components)
    Removes the given child components from this component.
    protected void
    Removes all contents from this component, this includes child components, text content as well as child elements that have been added directly to this component using the Element API.
    protected void
    setAllowCustomValue(boolean allowCustomValue)
    Description copied from corresponding location in WebComponent:
    protected void
    setAutofocus(boolean autofocus)
     
    protected void
    setDisabled(boolean disabled)
    Description copied from corresponding location in WebComponent:
    protected void
    setErrorMessage(String errorMessage)
    Description copied from corresponding location in WebComponent:
    protected void
    setFilter(String filter)
    Description copied from corresponding location in WebComponent:
    protected void
    setFilteredItems(com.fasterxml.jackson.databind.node.ArrayNode filteredItems)
    Description copied from corresponding location in WebComponent:
    protected void
    setInvalid(boolean invalid)
    Description copied from corresponding location in WebComponent:
    protected void
    setItemIdPath(String itemIdPath)
    Description copied from corresponding location in WebComponent:
    protected void
    setItemLabelPath(String itemLabelPath)
    Description copied from corresponding location in WebComponent:
    protected void
    setItems(com.fasterxml.jackson.databind.node.ArrayNode items)
    Description copied from corresponding location in WebComponent:
    protected void
    setItemValuePath(String itemValuePath)
    Description copied from corresponding location in WebComponent:
    protected void
    Description copied from corresponding location in WebComponent:
    protected void
    setLoading(boolean loading)
    Description copied from corresponding location in WebComponent:
    protected void
    Description copied from corresponding location in WebComponent:
    protected void
    setOpened(boolean opened)
    Description copied from corresponding location in WebComponent:
    protected void
    setPageSize(double pageSize)
    Description copied from corresponding location in WebComponent:
    protected void
    setPattern(String pattern)
    Description copied from corresponding location in WebComponent:
    protected void
    setPlaceholder(String placeholder)
    Description copied from corresponding location in WebComponent:
    protected void
    setPreventInvalidInput(boolean preventInvalidInput)
    Description copied from corresponding location in WebComponent:
    protected void
    setReadonly(boolean readonly)
     
    protected void
    setRequired(boolean required)
    Description copied from corresponding location in WebComponent:
    protected void
    setSelectedItem(com.fasterxml.jackson.databind.node.ObjectNode selectedItem)
    Description copied from corresponding location in WebComponent:
    protected void
    setSize(double size)
    Description copied from corresponding location in WebComponent:
    protected void
    Description copied from corresponding location in WebComponent:

    Methods inherited from class com.vaadin.flow.component.AbstractSinglePropertyField

    getSynchronizationRegistration, hasValidValue, setPresentationValue, setSynchronizedEvent

    Methods inherited from class com.vaadin.flow.component.AbstractField

    addValueChangeListener, getEmptyValue, getValue, isEmpty, setModelValue, setValue, valueEquals

    Methods inherited from class com.vaadin.flow.component.Component

    addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onAttach, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisible

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface com.vaadin.flow.component.AttachNotifier

    addAttachListener

    Methods inherited from interface com.vaadin.flow.component.BlurNotifier

    addBlurListener

    Methods inherited from interface com.vaadin.flow.component.DetachNotifier

    addDetachListener

    Methods inherited from interface com.vaadin.flow.component.Focusable

    addFocusShortcut, blur, focus, getTabIndex, setTabIndex

    Methods inherited from interface com.vaadin.flow.component.FocusNotifier

    addFocusListener

    Methods inherited from interface com.vaadin.flow.component.HasElement

    getElement

    Methods inherited from interface com.vaadin.flow.component.HasEnabled

    isEnabled, setEnabled

    Methods inherited from interface com.vaadin.flow.component.HasStyle

    addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName

    Methods inherited from interface com.vaadin.flow.component.HasValue

    clear, getOptionalValue

    Methods inherited from interface com.vaadin.flow.component.HasValueAndElement

    isReadOnly, isRequiredIndicatorVisible, setReadOnly, setRequiredIndicatorVisible
  • Constructor Details

    • AbstractComboBox

      public AbstractComboBox(T initialValue, T defaultValue, Class<P> elementPropertyType, com.vaadin.flow.function.SerializableFunction<P,T> presentationToModel, com.vaadin.flow.function.SerializableFunction<T,P> modelToPresentation)
      Constructs a new GeneratedVaadinComboBox component with the given arguments.
      Type Parameters:
      P - the property type
      Parameters:
      initialValue - the initial value to set to the value
      defaultValue - the default value to use if the value isn't defined
      elementPropertyType - the type of the element property
      presentationToModel - a function that converts a string value to a model value
      modelToPresentation - a function that converts a model value to a string value
    • AbstractComboBox

      public AbstractComboBox(T initialValue, T defaultValue, boolean acceptNullValues)
      Constructs a new GeneratedVaadinComboBox component with the given arguments.
      Parameters:
      initialValue - the initial value to set to the value
      defaultValue - the default value to use if the value isn't defined
      acceptNullValues - whether null is accepted as a model value
    • AbstractComboBox

      public AbstractComboBox(T initialValue, T defaultValue, Class<P> elementPropertyType, com.vaadin.flow.function.SerializableBiFunction<R,P,T> presentationToModel, com.vaadin.flow.function.SerializableBiFunction<R,T,P> modelToPresentation, boolean isInitialValueOptional)
      Constructs a new GeneratedVaadinComboBox component with the given arguments.
      Type Parameters:
      P - the property type
      Parameters:
      initialValue - the initial value to set to the value
      defaultValue - the default value to use if the value isn't defined
      elementPropertyType - the type of the element property
      presentationToModel - a function that accepts this component and a property value and returns a model value
      modelToPresentation - a function that accepts this component and a model value and returns a property value
      isInitialValueOptional - if isInitialValueOptional is true then the initial value is used only if element has no "value" property value, otherwise element "value" property is ignored and the initial value is set
    • AbstractComboBox

      public AbstractComboBox(T initialValue, T defaultValue, Class<P> elementPropertyType, com.vaadin.flow.function.SerializableBiFunction<R,P,T> presentationToModel, com.vaadin.flow.function.SerializableBiFunction<R,T,P> modelToPresentation)
      Constructs a new GeneratedVaadinComboBox component with the given arguments.
      Type Parameters:
      P - the property type
      Parameters:
      initialValue - the initial value to set to the value
      defaultValue - the default value to use if the value isn't defined
      elementPropertyType - the type of the element property
      presentationToModel - a function that accepts this component and a property value and returns a model value
      modelToPresentation - a function that accepts this component and a model value and returns a property value
    • AbstractComboBox

      public AbstractComboBox()
      Default constructor.
  • Method Details

    • isAutofocusBoolean

      protected boolean isAutofocusBoolean()
      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.
      Returns:
      the autofocus property from the webcomponent
    • setAutofocus

      protected void setAutofocus(boolean autofocus)
      Parameters:
      autofocus - the boolean value to set
    • isDisabledBoolean

      protected boolean isDisabledBoolean()

      Description copied from corresponding location in WebComponent:

      Set to true to disable this input.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the disabled property from the webcomponent
    • setDisabled

      protected void setDisabled(boolean disabled)

      Description copied from corresponding location in WebComponent:

      Set to true to disable this input.

      Parameters:
      disabled - the boolean value to set
    • getPageSizeDouble

      protected double getPageSizeDouble()

      Description copied from corresponding location in WebComponent:

      Number of items fetched at a time from the dataprovider.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the pageSize property from the webcomponent
    • setPageSize

      protected void setPageSize(double pageSize)

      Description copied from corresponding location in WebComponent:

      Number of items fetched at a time from the dataprovider.

      Parameters:
      pageSize - the double value to set
    • getSizeDouble

      protected double getSizeDouble()

      Description copied from corresponding location in WebComponent:

      Total number of items.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the size property from the webcomponent
    • setSize

      protected void setSize(double size)

      Description copied from corresponding location in WebComponent:

      Total number of items.

      Parameters:
      size - the double value to set
    • isOpenedBoolean

      @Synchronize(property="opened", value="opened-changed") protected boolean isOpenedBoolean()

      Description copied from corresponding location in WebComponent:

      True if the dropdown is open, false otherwise.

      This property is synchronized automatically from client side when a 'opened-changed' event happens.

      Returns:
      the opened property from the webcomponent
    • setOpened

      protected void setOpened(boolean opened)

      Description copied from corresponding location in WebComponent:

      True if the dropdown is open, false otherwise.

      Parameters:
      opened - the boolean value to set
    • isReadonlyBoolean

      protected boolean isReadonlyBoolean()
      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.
      Returns:
      the readonly property from the webcomponent
    • setReadonly

      protected void setReadonly(boolean readonly)
      Parameters:
      readonly - the boolean value to set
    • getItemsJsonArray

      protected com.fasterxml.jackson.databind.node.ArrayNode getItemsJsonArray()

      Description copied from corresponding location in WebComponent:

      A full set of items to filter the visible options from. The items can be of either String or Object type.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the items property from the webcomponent
    • setItems

      protected void setItems(com.fasterxml.jackson.databind.node.ArrayNode items)

      Description copied from corresponding location in WebComponent:

      A full set of items to filter the visible options from. The items can be of either String or Object type.

      Parameters:
      items - the ArrayNode value to set
    • isAllowCustomValueBoolean

      protected boolean isAllowCustomValueBoolean()

      Description copied from corresponding location in WebComponent:

      If true, the user can input a value that is not present in the items list. value property will be set to the input value in this case. Also, when value is set programmatically, the input value will be set to reflect that value.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the allowCustomValue property from the webcomponent
    • setAllowCustomValue

      protected void setAllowCustomValue(boolean allowCustomValue)

      Description copied from corresponding location in WebComponent:

      If true, the user can input a value that is not present in the items list. value property will be set to the input value in this case. Also, when value is set programmatically, the input value will be set to reflect that value.

      Parameters:
      allowCustomValue - the boolean value to set
    • getFilteredItemsJsonArray

      protected com.fasterxml.jackson.databind.node.ArrayNode getFilteredItemsJsonArray()

      Description copied from corresponding location in WebComponent:

      A subset of items, filtered based on the user input. Filtered items can be assigned directly to omit the internal filtering functionality. The items can be of either String or Object type.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the filteredItems property from the webcomponent
    • setFilteredItems

      protected void setFilteredItems(com.fasterxml.jackson.databind.node.ArrayNode filteredItems)

      Description copied from corresponding location in WebComponent:

      A subset of items, filtered based on the user input. Filtered items can be assigned directly to omit the internal filtering functionality. The items can be of either String or Object type.

      Parameters:
      filteredItems - the ArrayNode value to set
    • isLoadingBoolean

      protected boolean isLoadingBoolean()

      Description copied from corresponding location in WebComponent:

      When set to true, "loading" attribute is added to host and the overlay element.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the loading property from the webcomponent
    • setLoading

      protected void setLoading(boolean loading)

      Description copied from corresponding location in WebComponent:

      When set to true, "loading" attribute is added to host and the overlay element.

      Parameters:
      loading - the boolean value to set
    • getFilterString

      @Synchronize(property="filter", value="filter-changed") protected String getFilterString()

      Description copied from corresponding location in WebComponent:

      Filtering string the user has typed into the input field.

      This property is synchronized automatically from client side when a 'filter-changed' event happens.

      Returns:
      the filter property from the webcomponent
    • setFilter

      protected void setFilter(String filter)

      Description copied from corresponding location in WebComponent:

      Filtering string the user has typed into the input field.

      Parameters:
      filter - the String value to set
    • getSelectedItemJsonObject

      @Synchronize(property="selectedItem", value="selected-item-changed") protected com.fasterxml.jackson.databind.node.ObjectNode getSelectedItemJsonObject()

      Description copied from corresponding location in WebComponent:

      The selected item from the items array.

      This property is synchronized automatically from client side when a 'selected-item-changed' event happens.

      Returns:
      the selectedItem property from the webcomponent
    • setSelectedItem

      protected void setSelectedItem(com.fasterxml.jackson.databind.node.ObjectNode selectedItem)

      Description copied from corresponding location in WebComponent:

      The selected item from the items array.

      Parameters:
      selectedItem - the ObjectNode value to set
    • getItemLabelPathString

      protected String getItemLabelPathString()

      Description copied from corresponding location in WebComponent:

      Path for label of the item. If items is an array of objects, the itemLabelPath is used to fetch the displayed string label for each item.

      The item label is also used for matching items when processing user input, i.e., for filtering and selecting items.

      When using item templates, the property is still needed because it is used for filtering, and for displaying the selected item value in the input box.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the itemLabelPath property from the webcomponent
    • setItemLabelPath

      protected void setItemLabelPath(String itemLabelPath)

      Description copied from corresponding location in WebComponent:

      Path for label of the item. If items is an array of objects, the itemLabelPath is used to fetch the displayed string label for each item.

      The item label is also used for matching items when processing user input, i.e., for filtering and selecting items.

      When using item templates, the property is still needed because it is used for filtering, and for displaying the selected item value in the input box.

      Parameters:
      itemLabelPath - the String value to set
    • getItemValuePathString

      protected String getItemValuePathString()

      Description copied from corresponding location in WebComponent:

      Path for the value of the item. If items is an array of objects, the itemValuePath: is used to fetch the string value for the selected item.

      The item value is used in the value property of the combo box, to provide the form value.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the itemValuePath property from the webcomponent
    • setItemValuePath

      protected void setItemValuePath(String itemValuePath)

      Description copied from corresponding location in WebComponent:

      Path for the value of the item. If items is an array of objects, the itemValuePath: is used to fetch the string value for the selected item.

      The item value is used in the value property of the combo box, to provide the form value.

      Parameters:
      itemValuePath - the String value to set
    • getItemIdPathString

      protected String getItemIdPathString()

      Description copied from corresponding location in WebComponent:

      Path for the id of the item. If items is an array of objects, the itemIdPath is used to compare and identify the same item in selectedItem and filteredItems (items given by the dataProvider callback).

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the itemIdPath property from the webcomponent
    • setItemIdPath

      protected void setItemIdPath(String itemIdPath)

      Description copied from corresponding location in WebComponent:

      Path for the id of the item. If items is an array of objects, the itemIdPath is used to compare and identify the same item in selectedItem and filteredItems (items given by the dataProvider callback).

      Parameters:
      itemIdPath - the String value to set
    • getNameString

      protected String getNameString()

      Description copied from corresponding location in WebComponent:

      The name of this element.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the name property from the webcomponent
    • setName

      protected void setName(String name)

      Description copied from corresponding location in WebComponent:

      The name of this element.

      Parameters:
      name - the String value to set
    • isInvalidBoolean

      @Synchronize(property="invalid", value="invalid-changed") protected boolean isInvalidBoolean()

      Description copied from corresponding location in WebComponent:

      Set to true if the value is invalid.

      This property is synchronized automatically from client side when a 'invalid-changed' event happens.

      Returns:
      the invalid property from the webcomponent
    • setInvalid

      protected void setInvalid(boolean invalid)

      Description copied from corresponding location in WebComponent:

      Set to true if the value is invalid.

      Parameters:
      invalid - the boolean value to set
    • getLabelString

      protected String getLabelString()

      Description copied from corresponding location in WebComponent:

      The label for this element.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the label property from the webcomponent
    • setLabel

      protected void setLabel(String label)

      Description copied from corresponding location in WebComponent:

      The label for this element.

      Parameters:
      label - the String value to set
    • isRequiredBoolean

      protected boolean isRequiredBoolean()

      Description copied from corresponding location in WebComponent:

      Set to true to mark the input as required.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the required property from the webcomponent
    • setRequired

      protected void setRequired(boolean required)

      Description copied from corresponding location in WebComponent:

      Set to true to mark the input as required.

      Parameters:
      required - the boolean value to set
    • isPreventInvalidInputBoolean

      protected boolean isPreventInvalidInputBoolean()

      Description copied from corresponding location in WebComponent:

      Set to true to prevent the user from entering invalid input.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the preventInvalidInput property from the webcomponent
    • setPreventInvalidInput

      protected void setPreventInvalidInput(boolean preventInvalidInput)

      Description copied from corresponding location in WebComponent:

      Set to true to prevent the user from entering invalid input.

      Parameters:
      preventInvalidInput - the boolean value to set
    • getPatternString

      protected String getPatternString()

      Description copied from corresponding location in WebComponent:

      A pattern to validate the input with.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the pattern property from the webcomponent
    • setPattern

      protected void setPattern(String pattern)

      Description copied from corresponding location in WebComponent:

      A pattern to validate the input with.

      Parameters:
      pattern - the String value to set
    • getErrorMessageString

      protected String getErrorMessageString()

      Description copied from corresponding location in WebComponent:

      The error message to display when the input is invalid.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the errorMessage property from the webcomponent
    • setErrorMessage

      protected void setErrorMessage(String errorMessage)

      Description copied from corresponding location in WebComponent:

      The error message to display when the input is invalid.

      Parameters:
      errorMessage - the String value to set
    • getPlaceholderString

      protected String getPlaceholderString()

      Description copied from corresponding location in WebComponent:

      A placeholder string in addition to the label.

      This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

      Returns:
      the placeholder property from the webcomponent
    • setPlaceholder

      protected void setPlaceholder(String placeholder)

      Description copied from corresponding location in WebComponent:

      A placeholder string in addition to the label.

      Parameters:
      placeholder - the String value to set
    • clearCache

      protected void clearCache()

      Description copied from corresponding location in WebComponent:

      Clears the cached pages and reloads data from dataprovider when needed.

    • open

      protected void open()

      Description copied from corresponding location in WebComponent:

      Opens the dropdown list.

    • close

      protected void close()

      Description copied from corresponding location in WebComponent:

      Closes the dropdown list.

    • cancel

      protected void cancel()

      Description copied from corresponding location in WebComponent:

      Reverts back to original value.

    • validate

      @NotSupported protected void validate()

      Description copied from corresponding location in WebComponent:

      Returns true if value is valid, and sets the invalid flag appropriately.

      This function is not supported by Flow because it returns a boolean. Functions with return types different than void are not supported at this moment.

    • checkValidity

      protected void checkValidity()

      Description copied from corresponding location in WebComponent:

      Returns true if the current input value satisfies all constraints (if any)

      You can override the checkValidity method for custom validations.

    • addCustomValueSetListener

      protected com.vaadin.flow.shared.Registration addCustomValueSetListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.CustomValueSetEvent<R>> listener)
      Adds a listener for custom-value-set events fired by the webcomponent.
      Parameters:
      listener - the listener
      Returns:
      a Registration for removing the event listener
    • addSelectedItemChangeListener

      protected com.vaadin.flow.shared.Registration addSelectedItemChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.SelectedItemChangeEvent<R>> listener)
      Adds a listener for selected-item-changed events fired by the webcomponent.
      Parameters:
      listener - the listener
      Returns:
      a Registration for removing the event listener
    • addOpenedChangeListener

      protected com.vaadin.flow.shared.Registration addOpenedChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.OpenedChangeEvent<R>> listener)
      Adds a listener for opened-changed events fired by the webcomponent.
      Parameters:
      listener - the listener
      Returns:
      a Registration for removing the event listener
    • addFilterChangeListener

      protected com.vaadin.flow.shared.Registration addFilterChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.FilterChangeEvent<R>> listener)
      Adds a listener for filter-changed events fired by the webcomponent.
      Parameters:
      listener - the listener
      Returns:
      a Registration for removing the event listener
    • addInvalidChangeListener

      protected com.vaadin.flow.shared.Registration addInvalidChangeListener(com.vaadin.flow.component.ComponentEventListener<AbstractComboBox.InvalidChangeEvent<R>> listener)
      Adds a listener for invalid-changed events fired by the webcomponent.
      Parameters:
      listener - the listener
      Returns:
      a Registration for removing the event listener
    • addToPrefix

      protected void addToPrefix(com.vaadin.flow.component.Component... components)
      Adds the given components as children of this component at the slot 'prefix'.
      Parameters:
      components - The components to add.
      See Also:
    • remove

      protected void remove(com.vaadin.flow.component.Component... components)
      Removes the given child components from this component.
      Parameters:
      components - The components to remove.
      Throws:
      IllegalArgumentException - if any of the components is not a child of this component.
    • removeAll

      protected void removeAll()
      Removes all contents from this component, this includes child components, text content as well as child elements that have been added directly to this component using the Element API.