Class ButtonSelect<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,T,T,ComponentSelect<C,T>>
org.vaadin.miki.superfields.componentselect.ComponentSelect<com.vaadin.flow.component.button.Button,T>
org.vaadin.miki.superfields.buttons.ButtonSelect<T>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.customfield.CustomField<T>>, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<com.vaadin.flow.component.customfield.CustomField<T>>, com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.customfield.CustomField<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<T>,T>,T>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<T>,T>,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<T>,T>,T>, com.vaadin.flow.data.binder.HasItems<T>, Serializable, HasHelperPositionable, HasId, HasLabelPositionable, HasNullValueOptionallyAllowed<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<T>,T>,T>, WithHelperMixin<ComponentSelect<com.vaadin.flow.component.button.Button,T>>, WithHelperPositionableMixin<ComponentSelect<com.vaadin.flow.component.button.Button,T>>, WithIdMixin<ComponentSelect<com.vaadin.flow.component.button.Button,T>>, WithItemsMixin<T,ComponentSelect<com.vaadin.flow.component.button.Button,T>>, WithLabelMixin<ComponentSelect<com.vaadin.flow.component.button.Button,T>>, WithLabelPositionableMixin<ComponentSelect<com.vaadin.flow.component.button.Button,T>>, WithNullValueOptionallyAllowedMixin<ComponentSelect<com.vaadin.flow.component.button.Button,T>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<T>,T>,T>, WithValueMixin<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<T>,T>,T,ComponentSelect<com.vaadin.flow.component.button.Button,T>>

@Tag("button-select") @JsModule("./button-select.js") public class ButtonSelect<T> extends ComponentSelect<com.vaadin.flow.component.button.Button,T>
The simplest possible extension of ComponentSelect that uses Buttons.
Since:
2023-11-17
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_SELECTION

    Fields inherited from interface org.vaadin.miki.markers.HasHelperPositionable

    HELPER_ABOVE_THEME_VARIANT

    Fields inherited from interface org.vaadin.miki.markers.HasLabelPositionable

    LABEL_POSITION_ATTRIBUTE, LABEL_POSITION_DETAILS_ATTRIBUTE
  • Constructor Summary

    Constructors
    Constructor
    Description
    ButtonSelect(Supplier<L> layoutProvider, com.vaadin.flow.component.button.ButtonVariant selectedVariant, T... items)
    Creates a ButtonSelect that uses ButtonVariant to visually distinguish the selected button.
    ButtonSelect(Supplier<L> layoutSupplier, com.vaadin.flow.function.SerializableBiFunction<Integer,T,com.vaadin.flow.component.button.Button> componentFactory, com.vaadin.flow.function.SerializableBiConsumer<Integer,com.vaadin.flow.component.button.Button> selectionModifier, com.vaadin.flow.function.SerializableBiConsumer<Integer,com.vaadin.flow.component.button.Button> deselectionModifier, T... options)
    Creates a ButtonSelect.
    ButtonSelect(Supplier<L> layoutProvider, String selectedClassName, String deselectedClassName, T... items)
    Creates a ButtonSelect that uses style names to visually distinguish the selected button.
  • Method Summary

    Methods inherited from class com.vaadin.flow.component.customfield.CustomField

    add, addThemeVariants, getLabel, onAttach, remove, removeThemeVariants, setLabel, updateValue

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

    getHelperComponent, getHelperText, setHelperComponent, setHelperText

    Methods inherited from interface org.vaadin.miki.markers.HasHelperPositionable

    isHelperAbove, setHelperAbove, setHelperAbove, setHelperBelow

    Methods inherited from interface org.vaadin.miki.markers.HasId

    getId, setId

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

    setItems, setItems

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

    getLabel, setLabel

    Methods inherited from interface org.vaadin.miki.markers.HasLabelPositionable

    getLabelPosition, setLabelPosition

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

    getTooltip, setTooltipText

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

    setManualValidation

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

    getErrorMessage, isInvalid, setErrorMessage, setInvalid

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

    addValueChangeListener, clear, getEmptyValue, getOptionalValue, getValue, isEmpty, setValue

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

    isReadOnly, isRequiredIndicatorVisible, setReadOnly, setRequiredIndicatorVisible

    Methods inherited from interface org.vaadin.miki.markers.WithHelperMixin

    withHelperComponent, withHelperText

    Methods inherited from interface org.vaadin.miki.markers.WithHelperPositionableMixin

    withHelperAbove, withHelperAbove, withHelperBelow

    Methods inherited from interface org.vaadin.miki.markers.WithIdMixin

    withId

    Methods inherited from interface org.vaadin.miki.markers.WithItemsMixin

    withItems, withItems, withItems

    Methods inherited from interface org.vaadin.miki.markers.WithLabelMixin

    withLabel

    Methods inherited from interface org.vaadin.miki.markers.WithLabelPositionableMixin

    withLabelPosition

    Methods inherited from interface org.vaadin.miki.markers.WithValueMixin

    withValue
  • Constructor Details

    • ButtonSelect

      @SafeVarargs public ButtonSelect(Supplier<L> layoutProvider, String selectedClassName, String deselectedClassName, T... items)
      Creates a ButtonSelect that uses style names to visually distinguish the selected button.
      Type Parameters:
      L - Layout type.
      Parameters:
      layoutProvider - Provides the root layout of the component.
      selectedClassName - Style name used when a button is selected.
      deselectedClassName - Style name used when a button is deselected.
      items - Items.
    • ButtonSelect

      @SafeVarargs public ButtonSelect(Supplier<L> layoutProvider, com.vaadin.flow.component.button.ButtonVariant selectedVariant, T... items)
      Creates a ButtonSelect that uses ButtonVariant to visually distinguish the selected button.
      Type Parameters:
      L - Layout type.
      Parameters:
      layoutProvider - Provides the root layout of the component.
      selectedVariant - Variant to use for the selected button. The lack of this variant indicates a non-selected button.
      items - Items.
    • ButtonSelect

      @SafeVarargs public ButtonSelect(Supplier<L> layoutSupplier, com.vaadin.flow.function.SerializableBiFunction<Integer,T,com.vaadin.flow.component.button.Button> componentFactory, com.vaadin.flow.function.SerializableBiConsumer<Integer,com.vaadin.flow.component.button.Button> selectionModifier, com.vaadin.flow.function.SerializableBiConsumer<Integer,com.vaadin.flow.component.button.Button> deselectionModifier, T... options)
      Creates a ButtonSelect.
      Type Parameters:
      L - Layout type.
      Parameters:
      layoutSupplier - Provides the root layout of the component.
      componentFactory - A factory to create Buttons for each option.
      selectionModifier - Action to perform when a button is selected.
      deselectionModifier - Action to perform when a button is deselected.
      options - Items.