Class JmixMultiSelectComboBox<V>

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<C,T>
com.vaadin.flow.component.AbstractSinglePropertyField<TComponent,TValue>
com.vaadin.flow.component.combobox.ComboBoxBase<com.vaadin.flow.component.combobox.MultiSelectComboBox<TItem>,TItem,Set<TItem>>
com.vaadin.flow.component.combobox.MultiSelectComboBox<V>
io.jmix.flowui.component.multiselectcombobox.JmixMultiSelectComboBox<V>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>>, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>>, com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>>, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasHelper, com.vaadin.flow.component.HasLabel, com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasTheme, com.vaadin.flow.component.HasValidation, com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Set<V>>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Set<V>>, com.vaadin.flow.component.shared.HasAllowedCharPattern, com.vaadin.flow.component.shared.HasClearButton, com.vaadin.flow.component.shared.HasThemeVariant<com.vaadin.flow.component.combobox.MultiSelectComboBoxVariant>, com.vaadin.flow.component.shared.HasTooltip, com.vaadin.flow.data.binder.HasValidator<Set<V>>, com.vaadin.flow.data.provider.HasDataView<V,String,com.vaadin.flow.component.combobox.dataview.ComboBoxDataView<V>>, com.vaadin.flow.data.provider.HasLazyDataView<V,String,com.vaadin.flow.component.combobox.dataview.ComboBoxLazyDataView<V>>, com.vaadin.flow.data.provider.HasListDataView<V,com.vaadin.flow.component.combobox.dataview.ComboBoxListDataView<V>>, com.vaadin.flow.data.selection.MultiSelect<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V>, HasRequired, SupportsTypedValue<JmixMultiSelectComboBox<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Collection<V>,Set<V>>, SupportsValidation<Collection<V>>, SupportsDataProvider<V>, SupportsItemsEnum<V>, SupportsValueSource<Collection<V>>, HasTitle, Serializable, org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware

public class JmixMultiSelectComboBox<V> extends com.vaadin.flow.component.combobox.MultiSelectComboBox<V> implements SupportsValueSource<Collection<V>>, SupportsValidation<Collection<V>>, SupportsTypedValue<JmixMultiSelectComboBox<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Collection<V>,Set<V>>, SupportsDataProvider<V>, SupportsItemsEnum<V>, HasRequired, HasTitle, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean
See Also:
  • Nested Class Summary

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

    com.vaadin.flow.component.combobox.ComboBoxBase.CustomValueSetEvent<TComponent extends com.vaadin.flow.component.combobox.ComboBoxBase<TComponent,?,?>>

    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.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 extends Object>, com.vaadin.flow.component.HasValue.ValueChangeListener<E extends com.vaadin.flow.component.HasValue.ValueChangeEvent<?>>

    Nested classes/interfaces inherited from interface io.jmix.flowui.component.SupportsTypedValue

    SupportsTypedValue.TypedValueChangeEvent<C extends com.vaadin.flow.component.Component,V>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.springframework.context.ApplicationContext
     
     
     
    protected Collection<V>
     
    protected boolean
    Component manually handles Vaadin value change event: when programmatically sets value (see setValueInternal(Collection, Set, boolean)) and client-side sets value (see onValueChange(ComponentValueChangeEvent)).

    Fields inherited from interface io.jmix.flowui.component.HasRequired

    PROPERTY_REQUIRED

    Fields inherited from interface io.jmix.flowui.component.SupportsValidation

    PROPERTY_ERROR_MESSAGE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    com.vaadin.flow.shared.Registration
    addTypedValueChangeListener(com.vaadin.flow.component.ComponentEventListener<SupportsTypedValue.TypedValueChangeEvent<JmixMultiSelectComboBox<V>,Collection<V>>> listener)
     
    com.vaadin.flow.shared.Registration
    addValidator(Validator<? super Collection<V>> validator)
     
    com.vaadin.flow.shared.Registration
    addValueChangeListener(com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>> listener)
     
    void
     
    protected void
     
     
     
    void
     
    void
    deselect(V... items)
     
    void
     
    protected boolean
     
    protected void
    fireAllValueChangeEvents(Collection<V> value, Collection<V> oldValue, boolean isFromClient)
     
    protected void
    fireMultiSelectComboBoxValueChangeEvent(Collection<V> oldValue, boolean isFromClient)
     
    protected void
    fireTypedValueChangeEvent(Collection<V> value, Collection<V> oldValue, boolean isFromClient)
     
     
     
     
    protected void
     
    boolean
     
    protected void
    onValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixMultiSelectComboBox<V>,Set<V>> event)
     
    void
    select(Iterable<V> items)
     
    void
    select(V... items)
     
    void
    setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
     
    <C> void
    setDataProvider(com.vaadin.flow.data.provider.DataProvider<V,C> dataProvider, com.vaadin.flow.function.SerializableFunction<String,C> filterConverter)
     
    void
    setInvalid(boolean invalid)
    Sets invalid state to the field considering result of field validation.
    void
    setItems(Class<V> itemsEnum)
    Sets items from the passed EnumClass.
    void
    setRequiredMessage(String requiredMessage)
     
    void
     
    void
    setValue(Set<V> value)
     
    protected void
    setValueInternal(Collection<V> modelValue, Set<V> presentationValue, boolean fromClient)
     
    void
     

    Methods inherited from class com.vaadin.flow.component.combobox.MultiSelectComboBox

    addSelectionListener, getI18n, getSelectedItems, getValue, isSelected, onAttach, refreshValue, setI18n, setValue, setValue, updateSelection

    Methods inherited from class com.vaadin.flow.component.combobox.ComboBoxBase

    addCustomValueSetListener, generateLabel, getDataCommunicator, getDataController, getDataGenerator, getDataProvider, getErrorMessage, getFilter, getGenericDataView, getItemLabelGenerator, getKeyMapper, getLazyDataView, getListDataView, getPageSize, getPlaceholder, getRenderManager, isAllowCustomValue, isAutofocus, isAutoOpen, isOpened, isRequired, onDetach, runBeforeClientResponse, setAllowCustomValue, setAutofocus, setAutoOpen, setDataProvider, setDataProvider, setDataProvider, setDataProvider, setErrorMessage, setFilter, setItemLabelGenerator, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItemsWithFilterConverter, setItemsWithFilterConverter, setOpened, setPageSize, setPlaceholder, setRenderer, setRequired, setRequiredIndicatorVisible, validate

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

    getSynchronizationRegistration, hasValidValue, setPresentationValue, setSynchronizedEvent

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

    getEmptyValue, isEmpty, setModelValue, 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, onEnabledStateChanged, 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.shared.HasAllowedCharPattern

    getAllowedCharPattern, setAllowedCharPattern

    Methods inherited from interface com.vaadin.flow.component.shared.HasClearButton

    isClearButtonVisible, setClearButtonVisible

    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.HasHelper

    getHelperComponent, getHelperText, setHelperComponent, setHelperText

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

    getLabel, setLabel

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

    setItems

    Methods inherited from interface io.jmix.flowui.component.HasRequired

    isRequired, setRequired

    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.HasTheme

    addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName

    Methods inherited from interface com.vaadin.flow.component.shared.HasThemeVariant

    addThemeVariants, removeThemeVariants

    Methods inherited from interface io.jmix.flowui.kit.component.HasTitle

    getTitle, setTitle

    Methods inherited from interface com.vaadin.flow.component.shared.HasTooltip

    getTooltip, setTooltipText

    Methods inherited from interface com.vaadin.flow.data.binder.HasValidator

    addValidationStatusChangeListener, getDefaultValidator

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

    clear, getOptionalValue, isEmpty

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

    isReadOnly, isRequiredIndicatorVisible, setReadOnly, setRequiredIndicatorVisible

    Methods inherited from interface com.vaadin.flow.data.selection.MultiSelect

    deselectAll, getEmptyValue

    Methods inherited from interface io.jmix.flowui.data.SupportsDataProvider

    getDataProvider

    Methods inherited from interface io.jmix.flowui.component.SupportsValidation

    getErrorMessage, setErrorMessage
  • Field Details

  • Constructor Details

    • JmixMultiSelectComboBox

      public JmixMultiSelectComboBox()
  • Method Details

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
      Throws:
      org.springframework.beans.BeansException
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
    • initComponent

      protected void initComponent()
    • getRequiredMessage

      @Nullable public String getRequiredMessage()
      Specified by:
      getRequiredMessage in interface HasRequired
    • setRequiredMessage

      public void setRequiredMessage(@Nullable String requiredMessage)
      Specified by:
      setRequiredMessage in interface HasRequired
    • addValidator

      public com.vaadin.flow.shared.Registration addValidator(Validator<? super Collection<V>> validator)
      Specified by:
      addValidator in interface SupportsValidation<V>
    • executeValidators

      public void executeValidators() throws ValidationException
      Specified by:
      executeValidators in interface SupportsValidation<V>
      Throws:
      ValidationException
    • isInvalid

      public boolean isInvalid()
      Specified by:
      isInvalid in interface com.vaadin.flow.component.HasValidation
      Overrides:
      isInvalid in class com.vaadin.flow.component.combobox.ComboBoxBase<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V,Set<V>>
    • setInvalid

      public void setInvalid(boolean invalid)
      Description copied from interface: SupportsValidation
      Sets invalid state to the field considering result of field validation.
      • Invalid - false and validation passed - false = field is invalid
      • Invalid - false and validation passed - true = field is valid
      • Invalid - true and validation passed - false = field is invalid
      • Invalid - true and validation passed - true = field is invalid
      Specified by:
      setInvalid in interface com.vaadin.flow.component.HasValidation
      Specified by:
      setInvalid in interface SupportsValidation<V>
      Overrides:
      setInvalid in class com.vaadin.flow.component.combobox.ComboBoxBase<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V,Set<V>>
      Parameters:
      invalid - whether field should be invalid
    • setItems

      public void setItems(Class<V> itemsEnum)
      Description copied from interface: SupportsItemsEnum
      Sets items from the passed EnumClass.
      Specified by:
      setItems in interface SupportsItemsEnum<V>
      Parameters:
      itemsEnum - a EnumClass to be used as items source
      See Also:
    • setDataProvider

      public <C> void setDataProvider(com.vaadin.flow.data.provider.DataProvider<V,C> dataProvider, com.vaadin.flow.function.SerializableFunction<String,C> filterConverter)
      Overrides:
      setDataProvider in class com.vaadin.flow.component.combobox.ComboBoxBase<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V,Set<V>>
    • getValueSource

      @Nullable public ValueSource<Collection<V>> getValueSource()
      Specified by:
      getValueSource in interface SupportsValueSource<V>
    • setValueSource

      public void setValueSource(@Nullable ValueSource<Collection<V>> valueSource)
      Specified by:
      setValueSource in interface SupportsValueSource<V>
    • getTypedValue

      @Nullable public Collection<V> getTypedValue()
      Specified by:
      getTypedValue in interface SupportsTypedValue<JmixMultiSelectComboBox<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Collection<V>,Set<V>>
    • setTypedValue

      public void setTypedValue(@Nullable Collection<V> value)
      Specified by:
      setTypedValue in interface SupportsTypedValue<JmixMultiSelectComboBox<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Collection<V>,Set<V>>
    • setValue

      public void setValue(@Nullable Set<V> value)
      Specified by:
      setValue in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Set<V>>
      Specified by:
      setValue in interface com.vaadin.flow.data.selection.MultiSelect<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V>
      Overrides:
      setValue in class com.vaadin.flow.component.combobox.MultiSelectComboBox<V>
    • setValueInternal

      protected void setValueInternal(@Nullable Collection<V> modelValue, @Nullable Set<V> presentationValue, boolean fromClient)
    • select

      public void select(V... items)
      Specified by:
      select in interface com.vaadin.flow.data.selection.MultiSelect<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V>
    • deselect

      public void deselect(V... items)
      Specified by:
      deselect in interface com.vaadin.flow.data.selection.MultiSelect<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V>
    • select

      public void select(Iterable<V> items)
      Specified by:
      select in interface com.vaadin.flow.data.selection.MultiSelect<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V>
    • deselect

      public void deselect(Iterable<V> items)
      Specified by:
      deselect in interface com.vaadin.flow.data.selection.MultiSelect<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,V>
    • addValueChangeListener

      public com.vaadin.flow.shared.Registration addValueChangeListener(com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>> listener)
      Specified by:
      addValueChangeListener in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Set<V>>
      Overrides:
      addValueChangeListener in class com.vaadin.flow.component.AbstractField<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>
    • addTypedValueChangeListener

      public com.vaadin.flow.shared.Registration addTypedValueChangeListener(com.vaadin.flow.component.ComponentEventListener<SupportsTypedValue.TypedValueChangeEvent<JmixMultiSelectComboBox<V>,Collection<V>>> listener)
      Specified by:
      addTypedValueChangeListener in interface SupportsTypedValue<JmixMultiSelectComboBox<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.MultiSelectComboBox<V>,Set<V>>,Collection<V>,Set<V>>
    • attachValueChangeListener

      protected void attachValueChangeListener()
    • onValueChange

      protected void onValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixMultiSelectComboBox<V>,Set<V>> event)
    • fireMultiSelectComboBoxValueChangeEvent

      protected void fireMultiSelectComboBoxValueChangeEvent(@Nullable Collection<V> oldValue, boolean isFromClient)
    • fireAllValueChangeEvents

      protected void fireAllValueChangeEvents(@Nullable Collection<V> value, @Nullable Collection<V> oldValue, boolean isFromClient)
    • fireTypedValueChangeEvent

      protected void fireTypedValueChangeEvent(@Nullable Collection<V> value, @Nullable Collection<V> oldValue, boolean isFromClient)
    • fieldValueEquals

      protected boolean fieldValueEquals(@Nullable Collection<V> value, @Nullable Collection<V> oldValue)
    • createFieldDelegate

      protected CollectionFieldDelegate<JmixMultiSelectComboBox<V>,V,V> createFieldDelegate()
    • createDataViewDelegate

      protected DataViewDelegate<JmixMultiSelectComboBox<V>,V> createDataViewDelegate()