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>,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.Focusable<com.vaadin.flow.component.customfield.CustomField>,com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.customfield.CustomField>,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,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 supportsObjectas 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:
- Serialized Form
-
-
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 com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component>DEFAULT_NULL_COMPONENT_PROVIDER-
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 VariantField()Creates aVariantField.VariantField(String label, com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider, TypedFieldProvider<?,?>... providers)Creates aVariantFieldwith a given label, null component provider and givenTypedFieldProviders.VariantField(String label, TypedFieldProvider<?,?>... providers)Creates aVariantFieldwith a given label and givenTypedFieldProviders.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTypedFieldProvider(TypedFieldProvider<?,?>... fieldProviders)Adds one or moreTypedFieldProviders to this component.protected ObjectgenerateModelValue()com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component>getNullComponentProvider()Returns current provider of components used to shownull.voidremoveTypeFieldProvider(TypedFieldProvider<?,?> provider)Removes a givenTypedFieldProviderif it was registered.voidsetNullComponentProvider(com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider)Sets a provider of a component used to shownull.protected voidsetPresentationValue(Object o)voidsetReadOnly(boolean readOnly)VariantFieldwithNullComponentProvider(com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider)ChainssetNullComponentProvider(SerializableSupplier)and returns itself.VariantFieldwithTypedFieldProvider(TypedFieldProvider<?,?>... fieldProviders)ChainsaddTypedFieldProvider(TypedFieldProvider[])and returns itself.-
Methods inherited from class com.vaadin.flow.component.customfield.CustomField
add, addThemeVariants, getErrorMessage, getLabel, isInvalid, onAttach, remove, removeThemeVariants, setErrorMessage, setInvalid, 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, 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.Focusable
addFocusShortcut, blur, focus, getTabIndex, setTabIndex
-
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.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.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
-
-
-
-
Constructor Detail
-
VariantField
public VariantField(String label, com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider, TypedFieldProvider<?,?>... providers)
Creates aVariantFieldwith a given label, null component provider and givenTypedFieldProviders.- Parameters:
label- Label.nullComponentProvider- A component provider when value isnull.providers- Providers to use.
-
VariantField
public VariantField(String label, TypedFieldProvider<?,?>... providers)
Creates aVariantFieldwith a given label and givenTypedFieldProviders. UsesDEFAULT_NULL_COMPONENT_PROVIDERassetNullComponentProvider(SerializableSupplier).- Parameters:
label- Label.providers- Providers to use.
-
VariantField
public VariantField()
Creates aVariantField.
-
-
Method Detail
-
generateModelValue
protected Object generateModelValue()
- Specified by:
generateModelValuein classcom.vaadin.flow.component.customfield.CustomField<Object>
-
setPresentationValue
protected void setPresentationValue(Object o)
- Specified by:
setPresentationValuein classcom.vaadin.flow.component.customfield.CustomField<Object>
-
addTypedFieldProvider
public void addTypedFieldProvider(TypedFieldProvider<?,?>... fieldProviders)
Adds one or moreTypedFieldProviders 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 givenTypedFieldProviderif 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)
ChainsaddTypedFieldProvider(TypedFieldProvider[])and returns itself.- 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 shownull.- 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 shownull. When the current value isnullthe 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)
ChainssetNullComponentProvider(SerializableSupplier)and returns itself.- Parameters:
nullComponentProvider- Provider.- Returns:
- This.
-
setReadOnly
public void setReadOnly(boolean readOnly)
- Specified by:
setReadOnlyin interfacecom.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Object>,Object>,Object>- Specified by:
setReadOnlyin interfacecom.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<Object>,Object>,Object>
-
-