Class VariantField

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<Object>
org.vaadin.miki.superfields.variant.VariantField
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.customfield.CustomField<Object>>, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<com.vaadin.flow.component.customfield.CustomField<Object>>, com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.customfield.CustomField<Object>>, 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<Object>,Object>,Object>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Object>,Object>,Object>, com.vaadin.flow.component.shared.HasTooltip, com.vaadin.flow.component.shared.HasValidationProperties, Serializable, HasHelperPositionable, HasId, HasLabelPositionable, WithHelperMixin<VariantField>, WithHelperPositionableMixin<VariantField>, WithIdMixin<VariantField>, WithLabelMixin<VariantField>, WithLabelPositionableMixin<VariantField>, WithValueMixin<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Object>,Object>,Object,VariantField>

@CssImport(value="./styles/label-positions.css", themeFor="vaadin-custom-field") public class VariantField extends com.vaadin.flow.component.customfield.CustomField<Object> implements com.vaadin.flow.component.HasStyle, WithLabelMixin<VariantField>, WithHelperMixin<VariantField>, WithHelperPositionableMixin<VariantField>, WithValueMixin<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Object>,Object>,Object,VariantField>, WithIdMixin<VariantField>, WithLabelPositionableMixin<VariantField>
A field that supports Object as its value and displays a registered field that corresponds to a type of the value actually set by the field.
Since:
2022-04-11
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
    Modifier and Type
    Field
    Description
    static final com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component>
     

    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
    Creates a VariantField.
    VariantField(String label, com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider, TypedFieldProvider<?,?>... providers)
    Creates a VariantField with a given label, null component provider and given TypedFieldProviders.
    VariantField(String label, TypedFieldProvider<?,?>... providers)
    Creates a VariantField with a given label and given TypedFieldProviders.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addTypedFieldProvider(TypedFieldProvider<?,?>... fieldProviders)
    Adds one or more TypedFieldProviders to this component.
    protected Object
     
    com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component>
    Returns current provider of components used to show null.
    void
    Removes a given TypedFieldProvider if it was registered.
    void
    setNullComponentProvider(com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider)
    Sets a provider of a component used to show null.
    protected void
     
    void
    setReadOnly(boolean readOnly)
     
    withNullComponentProvider(com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider)

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

    withLabel

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

    withLabelPosition

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

    withValue
  • Field Details

    • DEFAULT_NULL_COMPONENT_PROVIDER

      public static final com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> DEFAULT_NULL_COMPONENT_PROVIDER
  • Constructor Details

  • Method Details

    • generateModelValue

      protected Object generateModelValue()
      Specified by:
      generateModelValue in class com.vaadin.flow.component.customfield.CustomField<Object>
    • setPresentationValue

      protected void setPresentationValue(Object o)
      Specified by:
      setPresentationValue in class com.vaadin.flow.component.customfield.CustomField<Object>
    • addTypedFieldProvider

      public void addTypedFieldProvider(TypedFieldProvider<?,?>... fieldProviders)
      Adds one or more TypedFieldProviders to this component. Has no effect on the currently used value component.
      Parameters:
      fieldProviders - Providers to use.
    • removeTypeFieldProvider

      public void removeTypeFieldProvider(TypedFieldProvider<?,?> provider)
      Removes a given TypedFieldProvider if it was registered. Has no effect on the currently used value component, even if the removed provider was used to create it.
      Parameters:
      provider - Provider to remove.
    • withTypedFieldProvider

      public final VariantField withTypedFieldProvider(TypedFieldProvider<?,?>... fieldProviders)
      Parameters:
      fieldProviders - Providers to use.
      Returns:
      This.
    • getNullComponentProvider

      public com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> getNullComponentProvider()
      Returns current provider of components used to show null.
      Returns:
      A supplier of a component that is used to display null.
    • setNullComponentProvider

      public void setNullComponentProvider(com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider)
      Sets a provider of a component used to show null. When the current value is null the provider will be invoked to replace the currently shown component.
      Parameters:
      nullComponentProvider - Provider.
    • withNullComponentProvider

      public final VariantField withNullComponentProvider(com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider)
      Parameters:
      nullComponentProvider - Provider.
      Returns:
      This.
    • setReadOnly

      public void setReadOnly(boolean readOnly)
      Specified by:
      setReadOnly in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Object>,Object>,Object>
      Specified by:
      setReadOnly in interface com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Object>,Object>,Object>