Class ListBoxBase<C extends ListBoxBase<C,ITEM,VALUE>,ITEM,VALUE>

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<C,T>
com.vaadin.flow.component.AbstractSinglePropertyField<C,VALUE>
com.vaadin.flow.component.listbox.ListBoxBase<C,ITEM,VALUE>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.HasAriaLabel, com.vaadin.flow.component.HasComponents, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C,VALUE>,VALUE>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C,VALUE>,VALUE>, HasTooltip, com.vaadin.flow.data.binder.HasItemComponents<ITEM>, com.vaadin.flow.data.provider.HasDataView<ITEM,Void,ListBoxDataView<ITEM>>, com.vaadin.flow.data.provider.HasListDataView<ITEM,ListBoxListDataView<ITEM>>, Serializable
Direct Known Subclasses:
ListBox, MultiSelectListBox

@Tag("vaadin-list-box") @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="24.9.2") @NpmPackage(value="@vaadin/list-box",version="24.9.2") @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("@vaadin/list-box/src/vaadin-list-box.js") public abstract class ListBoxBase<C extends ListBoxBase<C,ITEM,VALUE>,ITEM,VALUE> extends com.vaadin.flow.component.AbstractSinglePropertyField<C,VALUE> implements com.vaadin.flow.component.HasAriaLabel, com.vaadin.flow.data.binder.HasItemComponents<ITEM>, com.vaadin.flow.component.HasSize, com.vaadin.flow.data.provider.HasListDataView<ITEM,ListBoxListDataView<ITEM>>, com.vaadin.flow.data.provider.HasDataView<ITEM,Void,ListBoxDataView<ITEM>>, com.vaadin.flow.component.HasStyle, HasTooltip
Base class for the ListBox and MultiSelectListBox.
Author:
Vaadin Ltd
See Also:
  • Nested Class Summary

    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 extends Object>

    Nested classes/interfaces inherited from interface com.vaadin.flow.data.binder.HasItemComponents

    com.vaadin.flow.data.binder.HasItemComponents.ItemComponent<T extends Object>

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

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

    Modifier and Type
    Method
    Description
    com.vaadin.flow.data.provider.DataProvider<ITEM,?>
    Gets the data provider used by this ListBox.
    Gets the generic data view for the ListBox.
    com.vaadin.flow.function.SerializablePredicate<ITEM>
    Returns the item enabled predicate.
    protected Object
     
    com.vaadin.flow.component.ItemLabelGenerator<ITEM>
    Gets the item label generator that is used to produce the strings shown in the ListBox for each item.
    ComponentRenderer<? extends com.vaadin.flow.component.Component,ITEM>
    Returns the item component renderer.
    Gets the list data view for the ListBox.
    protected void
    onAttach(com.vaadin.flow.component.AttachEvent attachEvent)
     
    protected void
    onDetach(com.vaadin.flow.component.DetachEvent detachEvent)
     
    void
    onEnabledStateChanged(boolean enabled)
     
    void
    setDataProvider(com.vaadin.flow.data.provider.DataProvider<ITEM,?> dataProvider)
    Sets a generic data provider for the ListBox to use.
    void
    setItemEnabledProvider(com.vaadin.flow.function.SerializablePredicate<ITEM> itemEnabledProvider)
    Sets the item enabled predicate for this ListBox.
    void
    setItemLabelGenerator(com.vaadin.flow.component.ItemLabelGenerator<ITEM> itemLabelGenerator)
    Sets the item label generator that is used to produce the strings shown in the ListBox for each item.
    setItems(com.vaadin.flow.data.provider.DataProvider<ITEM,Void> dataProvider)
    Set a generic data provider for the ListBox to use and returns the base ListBoxDataView that provides API to get information on the items.
    setItems(com.vaadin.flow.data.provider.InMemoryDataProvider<ITEM> inMemoryDataProvider)
    Sets an in-memory data provider for the ListBox to use
    setItems(com.vaadin.flow.data.provider.ListDataProvider<ITEM> listDataProvider)
    Sets a ListDataProvider for the ListBox to use and returns a ListDataView that provides information and allows operations on the items.
    void
    setRenderer(ComponentRenderer<? extends com.vaadin.flow.component.Component,ITEM> itemRenderer)
    Sets the item renderer for this ListBox.
    void
    setRequiredIndicatorVisible(boolean requiredIndicatorVisible)
    Not supported!

    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, 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.DetachNotifier

    addDetachListener

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

    getAriaLabel, getAriaLabelledBy, setAriaLabel, setAriaLabelledBy

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

    add, add, add, addComponentAsFirst, addComponentAtIndex, remove, remove, removeAll

    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.data.binder.HasItemComponents

    addComponents, getItemPosition, prependComponents

    Methods inherited from interface com.vaadin.flow.data.provider.HasListDataView

    setItems, setItems

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

    getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFull

    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.shared.HasTooltip

    getTooltip, setTooltipText

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

    clear, getOptionalValue

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

    isReadOnly, isRequiredIndicatorVisible, setReadOnly
  • Method Details

    • setDataProvider

      public void setDataProvider(com.vaadin.flow.data.provider.DataProvider<ITEM,?> dataProvider)
      Sets a generic data provider for the ListBox to use.

      Use this method when none of the setItems methods are applicable, e.g. when having a data provider with filter that cannot be transformed to DataProvider<T, Void>.

      Parameters:
      dataProvider - DataProvider instance to use, not null
    • onAttach

      protected void onAttach(com.vaadin.flow.component.AttachEvent attachEvent)
      Overrides:
      onAttach in class com.vaadin.flow.component.Component
    • onDetach

      protected void onDetach(com.vaadin.flow.component.DetachEvent detachEvent)
      Overrides:
      onDetach in class com.vaadin.flow.component.Component
    • getDataProvider

      public com.vaadin.flow.data.provider.DataProvider<ITEM,?> getDataProvider()
      Gets the data provider used by this ListBox.

      To get information and control over the items in the ListBox, use either getListDataView() or getGenericDataView() instead.

      Returns:
      the data provider used by this ListBox
    • getItemRenderer

      public ComponentRenderer<? extends com.vaadin.flow.component.Component,ITEM> getItemRenderer()
      Returns the item component renderer.
      Returns:
      the item renderer
      See Also:
    • setRenderer

      public void setRenderer(ComponentRenderer<? extends com.vaadin.flow.component.Component,ITEM> itemRenderer)
      Sets the item renderer for this ListBox. The renderer is applied to each item to create a component which represents the item.
      Parameters:
      itemRenderer - the item renderer, not null
    • setItemLabelGenerator

      public void setItemLabelGenerator(com.vaadin.flow.component.ItemLabelGenerator<ITEM> itemLabelGenerator)
      Sets the item label generator that is used to produce the strings shown in the ListBox for each item. By default, String.valueOf(Object) is used.
      Parameters:
      itemLabelGenerator - the item label provider to use, not null
    • getItemLabelGenerator

      public com.vaadin.flow.component.ItemLabelGenerator<ITEM> getItemLabelGenerator()
      Gets the item label generator that is used to produce the strings shown in the ListBox for each item.
      Returns:
      the item label generator used, not null
    • setItemEnabledProvider

      public void setItemEnabledProvider(com.vaadin.flow.function.SerializablePredicate<ITEM> itemEnabledProvider)
      Sets the item enabled predicate for this ListBox. The predicate is applied to each item to determine whether the item should be enabled (true) or disabled (false). Disabled items are displayed as grayed out and the user cannot select them. The default predicate always returns true (all the items are enabled).
      Parameters:
      itemEnabledProvider - the item enable predicate, not null
    • getItemEnabledProvider

      public com.vaadin.flow.function.SerializablePredicate<ITEM> getItemEnabledProvider()
      Returns the item enabled predicate.
      Returns:
      the item enabled predicate
      See Also:
    • setRequiredIndicatorVisible

      public void setRequiredIndicatorVisible(boolean requiredIndicatorVisible)
      Not supported!

      Not supported by the client-side web-component, see issue in GitHub.

      Specified by:
      setRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValue<C extends ListBoxBase<C,ITEM,VALUE>,ITEM>
      Specified by:
      setRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValueAndElement<C extends ListBoxBase<C,ITEM,VALUE>,ITEM>
      Throws:
      UnsupportedOperationException
    • onEnabledStateChanged

      public void onEnabledStateChanged(boolean enabled)
      Overrides:
      onEnabledStateChanged in class com.vaadin.flow.component.Component
    • setItems

      public ListBoxDataView<ITEM> setItems(com.vaadin.flow.data.provider.DataProvider<ITEM,Void> dataProvider)
      Set a generic data provider for the ListBox to use and returns the base ListBoxDataView that provides API to get information on the items.

      This method should be used only when the data provider type is not either ListDataProvider or BackEndDataProvider.

      Specified by:
      setItems in interface com.vaadin.flow.data.provider.HasDataView<C extends ListBoxBase<C,ITEM,VALUE>,ITEM,VALUE>
      Parameters:
      dataProvider - DataProvider instance to use, not null
      Returns:
      ListBoxDataView providing information on the data
    • setItems

      public ListBoxDataView<ITEM> setItems(com.vaadin.flow.data.provider.InMemoryDataProvider<ITEM> inMemoryDataProvider)
      Sets an in-memory data provider for the ListBox to use

      Note! Using a ListDataProvider instead of a InMemoryDataProvider is recommended to get access to ListBoxListDataView API by using HasListDataView.setItems(ListDataProvider).

      Specified by:
      setItems in interface com.vaadin.flow.data.provider.HasDataView<C extends ListBoxBase<C,ITEM,VALUE>,ITEM,VALUE>
      Parameters:
      inMemoryDataProvider - InMemoryDataProvider to use, not null
      Returns:
      ListBoxDataView providing information on the data
    • setItems

      public ListBoxListDataView<ITEM> setItems(com.vaadin.flow.data.provider.ListDataProvider<ITEM> listDataProvider)
      Sets a ListDataProvider for the ListBox to use and returns a ListDataView that provides information and allows operations on the items.
      Specified by:
      setItems in interface com.vaadin.flow.data.provider.HasListDataView<C extends ListBoxBase<C,ITEM,VALUE>,ITEM>
      Parameters:
      listDataProvider - ListDataProvider providing items to the ListBox.
      Returns:
      ListBoxListDataView providing access to the items
    • getListDataView

      public ListBoxListDataView<ITEM> getListDataView()
      Gets the list data view for the ListBox. This data view should only be used when the items are in-memory and set with: If the items are not in-memory an exception is thrown.
      Specified by:
      getListDataView in interface com.vaadin.flow.data.provider.HasListDataView<C extends ListBoxBase<C,ITEM,VALUE>,ITEM>
      Returns:
      the list data view that provides access to the data bound to the ListBox
    • getGenericDataView

      public ListBoxDataView<ITEM> getGenericDataView()
      Gets the generic data view for the ListBox. This data view should only be used when getListDataView() is not applicable for the underlying data provider.
      Specified by:
      getGenericDataView in interface com.vaadin.flow.data.provider.HasDataView<C extends ListBoxBase<C,ITEM,VALUE>,ITEM,VALUE>
      Returns:
      the generic DataView instance implementing ListBoxDataView
    • getItemId

      protected Object getItemId(ITEM item)