Class ComponentMultiSelect<C extends com.vaadin.flow.component.Component & com.vaadin.flow.component.ClickNotifier<C>,T>
java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<com.vaadin.flow.component.customfield.CustomField<T>,T>
com.vaadin.flow.component.customfield.CustomField<T>
org.vaadin.miki.superfields.componentselect.AbstractComponentSelect<C,Set<T>,T,ComponentMultiSelect<C,T>>
org.vaadin.miki.superfields.componentselect.ComponentMultiSelect<C,T>
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.customfield.CustomField<Set<T>>>,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.Focusable<com.vaadin.flow.component.customfield.CustomField<Set<T>>>,com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.customfield.CustomField<Set<T>>>,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.customfield.CustomField<Set<T>>,,Set<T>>, Set<T>> com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Set<T>>,,Set<T>>, Set<T>> com.vaadin.flow.component.shared.HasTooltip,com.vaadin.flow.component.shared.HasValidationProperties,com.vaadin.flow.component.shared.InputField<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Set<T>>,,Set<T>>, Set<T>> com.vaadin.flow.data.binder.HasItems<T>,Serializable,HasHelperPositionable,HasId,HasLabelPositionable,HasMaximumSelectionSize,WithHelperMixin<ComponentMultiSelect<C,,T>> WithHelperPositionableMixin<ComponentMultiSelect<C,,T>> WithIdMixin<ComponentMultiSelect<C,,T>> WithItemsMixin<T,,ComponentMultiSelect<C, T>> WithLabelMixin<ComponentMultiSelect<C,,T>> WithLabelPositionableMixin<ComponentMultiSelect<C,,T>> WithMaximumSelectionSizeMixin<ComponentMultiSelect<C,,T>> WithValueMixin<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Set<T>>,Set<T>>, Set<T>, ComponentMultiSelect<C, T>>
- Direct Known Subclasses:
ButtonMultiSelect
@Tag("component-multi-select")
@JsModule("./component-multi-select.js")
public class ComponentMultiSelect<C extends com.vaadin.flow.component.Component & com.vaadin.flow.component.ClickNotifier<C>,T>
extends AbstractComponentSelect<C,Set<T>,T,ComponentMultiSelect<C,T>>
implements WithMaximumSelectionSizeMixin<ComponentMultiSelect<C,T>>
A multi-select that displays each option as a
ClickNotifiers and then selects/deselects it on click.- Since:
- 2023-12-01
- Author:
- miki
- 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.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<?>> -
Field Summary
Fields inherited from class org.vaadin.miki.superfields.componentselect.AbstractComponentSelect
NO_SELECTIONFields inherited from interface org.vaadin.miki.markers.HasHelperPositionable
HELPER_ABOVE_THEME_VARIANTFields inherited from interface org.vaadin.miki.markers.HasLabelPositionable
LABEL_POSITION_ATTRIBUTE, LABEL_POSITION_DETAILS_ATTRIBUTEFields inherited from interface org.vaadin.miki.markers.HasMaximumSelectionSize
UNLIMITED -
Constructor Summary
ConstructorsConstructorDescriptionComponentMultiSelect(Supplier<L> layoutSupplier, com.vaadin.flow.function.SerializableBiFunction<Integer, T, C> componentFactory, com.vaadin.flow.function.SerializableBiConsumer<Integer, C> selectionModifier, com.vaadin.flow.function.SerializableBiConsumer<Integer, C> deselectionModifier, T... options) Creates the select with given options.ComponentMultiSelect(Supplier<L> layoutSupplier, com.vaadin.flow.function.SerializableBiFunction<Integer, T, C> componentFactory, T... options) Creates the select with given options. -
Method Summary
Modifier and TypeMethodDescriptionintReturns the current maximum selection size.protected booleanisSelected(int index) Checks if the item at the given index is currently selected.protected booleanitemClicked(int index) Clicks an item at the given index.voidsetMaximumSelectionSize(int maximumSelectionSize) Defines the new maximum selection size.protected voidsetPresentationValue(Set<T> newPresentationValue) Methods inherited from class org.vaadin.miki.superfields.componentselect.AbstractComponentSelect
deselect, ensureValidIndex, focus, getComponentDeselectedAction, getComponentFactory, getComponentIndex, getComponentSelectedAction, getOptions, noOp, rebuildComponents, select, setComponentDeselectedAction, setComponentFactory, setComponentSelectedAction, setItems, withComponentDeselectedAction, withComponentFactory, withComponentSelectedActionMethods inherited from class com.vaadin.flow.component.customfield.CustomField
add, addThemeVariants, getLabel, onAttach, remove, removeThemeVariants, setLabel, updateValueMethods inherited from class com.vaadin.flow.component.AbstractField
addValueChangeListener, getEmptyValue, getValue, isEmpty, setModelValue, setValue, valueEqualsMethods 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, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisibleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.BlurNotifier
addBlurListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, getTabIndex, setTabIndexMethods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListenerMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabledMethods inherited from interface com.vaadin.flow.component.HasHelper
getHelperComponent, getHelperText, setHelperComponent, setHelperTextMethods inherited from interface org.vaadin.miki.markers.HasHelperPositionable
isHelperAbove, setHelperAbove, setHelperAbove, setHelperBelowMethods inherited from interface com.vaadin.flow.data.binder.HasItems
setItems, setItemsMethods inherited from interface com.vaadin.flow.component.HasLabel
getLabel, setLabelMethods inherited from interface org.vaadin.miki.markers.HasLabelPositionable
getLabelPosition, setLabelPositionMethods 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, setWidthFullMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassNameMethods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeNameMethods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipTextMethods inherited from interface com.vaadin.flow.component.HasValidation
setManualValidationMethods inherited from interface com.vaadin.flow.component.shared.HasValidationProperties
getErrorMessage, isInvalid, setErrorMessage, setInvalidMethods inherited from interface com.vaadin.flow.component.HasValue
addValueChangeListener, clear, getEmptyValue, getOptionalValue, getValue, isEmpty, setValueMethods inherited from interface com.vaadin.flow.component.HasValueAndElement
isReadOnly, isRequiredIndicatorVisible, setReadOnly, setRequiredIndicatorVisibleMethods inherited from interface org.vaadin.miki.markers.WithHelperMixin
withHelperComponent, withHelperTextMethods inherited from interface org.vaadin.miki.markers.WithHelperPositionableMixin
withHelperAbove, withHelperAbove, withHelperBelowMethods inherited from interface org.vaadin.miki.markers.WithIdMixin
withIdMethods inherited from interface org.vaadin.miki.markers.WithItemsMixin
withItems, withItems, withItemsMethods inherited from interface org.vaadin.miki.markers.WithLabelMixin
withLabelMethods inherited from interface org.vaadin.miki.markers.WithLabelPositionableMixin
withLabelPositionMethods inherited from interface org.vaadin.miki.markers.WithMaximumSelectionSizeMixin
withMaximumSelectionSizeMethods inherited from interface org.vaadin.miki.markers.WithValueMixin
withValue
-
Constructor Details
-
ComponentMultiSelect
@SafeVarargs public ComponentMultiSelect(Supplier<L> layoutSupplier, com.vaadin.flow.function.SerializableBiFunction<Integer, T, C> componentFactory, T... options) Creates the select with given options.- Parameters:
layoutSupplier- Provides layout for the component.componentFactory- A function that creates components for theoptions.options- Items to select from.
-
ComponentMultiSelect
@SafeVarargs public ComponentMultiSelect(Supplier<L> layoutSupplier, com.vaadin.flow.function.SerializableBiFunction<Integer, T, C> componentFactory, com.vaadin.flow.function.SerializableBiConsumer<Integer, C> selectionModifier, com.vaadin.flow.function.SerializableBiConsumer<Integer, C> deselectionModifier, T... options) Creates the select with given options.- Parameters:
layoutSupplier- Provides layout for the component.componentFactory- A function that creates components for theoptions.selectionModifier- Action to perform on a component when it is selected.deselectionModifier- Action to perform on a component when it is deselected.options- Items to select from.
-
-
Method Details
-
isSelected
protected boolean isSelected(int index) Description copied from class:AbstractComponentSelectChecks if the item at the given index is currently selected.- Specified by:
isSelectedin classAbstractComponentSelect<C extends com.vaadin.flow.component.Component & com.vaadin.flow.component.ClickNotifier<C>,Set<T>, T, ComponentMultiSelect<C extends com.vaadin.flow.component.Component & com.vaadin.flow.component.ClickNotifier<C>, T>> - Parameters:
index- Index of an item.- Returns:
truewhen the item is selected,falseotherwise.
-
itemClicked
protected boolean itemClicked(int index) Description copied from class:AbstractComponentSelectClicks an item at the given index.- Specified by:
itemClickedin classAbstractComponentSelect<C extends com.vaadin.flow.component.Component & com.vaadin.flow.component.ClickNotifier<C>,Set<T>, T, ComponentMultiSelect<C extends com.vaadin.flow.component.Component & com.vaadin.flow.component.ClickNotifier<C>, T>> - Parameters:
index- Index of an item to be clicked.- Returns:
- Whether value should be updated.
-
generateModelValue
-
setPresentationValue
-
setMaximumSelectionSize
public void setMaximumSelectionSize(int maximumSelectionSize) Description copied from interface:HasMaximumSelectionSizeDefines the new maximum selection size. When current selection is above the new limit, the selection should change so that it fits the new limit.- Specified by:
setMaximumSelectionSizein interfaceHasMaximumSelectionSize- Parameters:
maximumSelectionSize- Maximum selection size.
-
getMaximumSelectionSize
public int getMaximumSelectionSize()Description copied from interface:HasMaximumSelectionSizeReturns the current maximum selection size.- Specified by:
getMaximumSelectionSizein interfaceHasMaximumSelectionSize- Returns:
- Maximum allowed selection size;
HasMaximumSelectionSize.UNLIMITEDby default.
-