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
FieldsModifier and TypeFieldDescriptionstatic final com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component>Fields 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_ATTRIBUTE -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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
Modifier and TypeMethodDescriptionvoidaddTypedFieldProvider(TypedFieldProvider<?, ?>... fieldProviders) Adds one or moreTypedFieldProviders to this component.protected Objectcom.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component>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 voidvoidsetReadOnly(boolean readOnly) final VariantFieldwithNullComponentProvider(com.vaadin.flow.function.SerializableSupplier<com.vaadin.flow.component.Component> nullComponentProvider) ChainssetNullComponentProvider(SerializableSupplier)and returns itself.final VariantFieldwithTypedFieldProvider(TypedFieldProvider<?, ?>... fieldProviders) ChainsaddTypedFieldProvider(TypedFieldProvider[])and returns itself.Methods 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, focus, 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.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.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, 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.WithLabelMixin
withLabelMethods inherited from interface org.vaadin.miki.markers.WithLabelPositionableMixin
withLabelPositionMethods 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
-
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
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 Details
-
generateModelValue
- Specified by:
generateModelValuein classcom.vaadin.flow.component.customfield.CustomField<Object>
-
setPresentationValue
- Specified by:
setPresentationValuein classcom.vaadin.flow.component.customfield.CustomField<Object>
-
addTypedFieldProvider
Adds one or moreTypedFieldProviders to this component. Has no effect on the currently used value component.- Parameters:
fieldProviders- Providers to use.
-
removeTypeFieldProvider
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
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>
-