com.vaadin.flow.component.radiobutton.
Class RadioButtonGroup<T>
- java.lang.Object
-
- com.vaadin.flow.component.Component
-
- com.vaadin.flow.component.AbstractField<C,T>
-
- com.vaadin.flow.component.AbstractSinglePropertyField<R,T>
-
- com.vaadin.flow.component.radiobutton.GeneratedVaadinRadioGroup<RadioButtonGroup<T>,T>
-
- com.vaadin.flow.component.radiobutton.RadioButtonGroup<T>
-
All Implemented Interfaces:
AttachNotifier, DetachNotifier, HasComponents, HasElement, HasEnabled, HasHelper, HasLabel, HasStyle, HasTheme, HasValidation, HasValue<AbstractField.ComponentValueChangeEvent<RadioButtonGroup<T>,T>,T>, HasValueAndElement<AbstractField.ComponentValueChangeEvent<RadioButtonGroup<T>,T>,T>, HasClientValidation, HasDataProvider<T>, HasItems<T>, HasItemsAndComponents<T>, HasValidator<T>, SingleSelect<RadioButtonGroup<T>,T>, Serializable
@NpmPackage(value="@vaadin/vaadin-radio-button", version="1.6.3") public class RadioButtonGroup<T> extends GeneratedVaadinRadioGroup<RadioButtonGroup<T>,T> implements HasItemsAndComponents<T>, SingleSelect<RadioButtonGroup<T>,T>, HasDataProvider<T>, HasValidation, HasHelper, HasLabel, HasValidator<T>, HasClientValidation
A single select component using radio buttons as options.
This is a server side Java integration for the
vaadin-radio-group
element.Usage examples, see the demo in vaadin.com.
Author:
Vaadin Ltd.
See Also:
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.vaadin.flow.component.radiobutton.GeneratedVaadinRadioGroup
GeneratedVaadinRadioGroup.InvalidChangeEvent<R extends GeneratedVaadinRadioGroup<R,?>>
-
Nested classes/interfaces inherited from class com.vaadin.flow.component.AbstractField
AbstractField.ComponentValueChangeEvent<C extends Component,V>
-
Nested classes/interfaces inherited from interface com.vaadin.flow.data.binder.HasItemsAndComponents
HasItemsAndComponents.ItemComponent<T>
-
Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasValue
HasValue.ValueChangeEvent<V>, HasValue.ValueChangeListener<E extends HasValue.ValueChangeEvent<?>>
-
Nested classes/interfaces inherited from interface com.vaadin.flow.component.shared.HasClientValidation
HasClientValidation.ClientValidatedEvent
-
-
Constructor Summary
Constructors Constructor and Description RadioButtonGroup()
-
Method Summary
All Methods Modifier and Type Method and Description Registration
addValidationStatusChangeListener(ValidationStatusChangeListener<T> listener)
Enables the implementing components to notify changes in their validation status to the observers.
DataProvider<T,?>
getDataProvider()
Gets the data provider.
String
getErrorMessage()
Gets the current error message from the radio button group.
SerializablePredicate<T>
getItemEnabledProvider()
Returns the item enabled predicate.
ComponentRenderer<? extends Component,T>
getItemRenderer()
Returns the item component renderer.
String
getLabel()
String used for the label element.
protected boolean
hasValidValue()
Checks whether the element property has a value that can be converted to the model type.
protected boolean
isEnforcedFieldValidationEnabled()
boolean
isInvalid()
Returns
true
if component input is invalid,false
otherwise.boolean
isReadOnly()
Returns whether this
HasValue
is in read-only mode or not.boolean
isRequired()
Specifies that the user must select a value
protected void
onAttach(AttachEvent attachEvent)
Called when the component is attached to a UI.
protected void
onDetach(DetachEvent detachEvent)
Called when the component is detached from a UI.
void
onEnabledStateChanged(boolean enabled)
Handle component enable state when the enabled state changes.
void
setDataProvider(DataProvider<T,?> dataProvider)
Sets the data provider for this listing.
void
setErrorMessage(String errorMessage)
Description copied from corresponding location in WebComponent:
void
setInvalid(boolean invalid)
Description copied from corresponding location in WebComponent:
void
setItemEnabledProvider(SerializablePredicate<T> itemEnabledProvider)
Sets the item enabled predicate for this radio button group.
void
setLabel(String label)
Sets the label for the field.
void
setReadOnly(boolean readOnly)
Sets the read-only mode of this
HasValue
to given mode.void
setRenderer(ComponentRenderer<? extends Component,T> renderer)
Sets the item renderer for this radio button group.
void
setRequired(boolean required)
Specifies that the user must select in a value.
void
setValue(T value)
Sets the value of this object.
protected void
validate()
Description copied from corresponding location in WebComponent:
-
Methods inherited from class com.vaadin.flow.component.radiobutton.GeneratedVaadinRadioGroup
addInvalidChangeListener, addThemeVariants, checkValidity, getErrorMessageString, getLabelString, isDisabledBoolean, isInvalidBoolean, isReadonlyBoolean, isRequiredBoolean, removeThemeVariants, setDisabled, setReadonly
-
Methods inherited from class com.vaadin.flow.component.AbstractSinglePropertyField
getSynchronizationRegistration, setPresentationValue, setSynchronizedEvent
-
Methods inherited from class com.vaadin.flow.component.AbstractField
addValueChangeListener, getEmptyValue, getValue, isEmpty, setModelValue, valueEquals
-
Methods inherited from class com.vaadin.flow.component.Component
addListener, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, 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.data.binder.HasItemsAndComponents
addComponents, getItemPosition, prependComponents
-
Methods inherited from interface com.vaadin.flow.component.HasComponents
add, add, addComponentAsFirst, addComponentAtIndex, remove, removeAll
-
Methods inherited from interface com.vaadin.flow.component.HasValueAndElement
isRequiredIndicatorVisible, setRequiredIndicatorVisible
-
Methods inherited from interface com.vaadin.flow.component.HasValue
addValueChangeListener, clear, getEmptyValue, getOptionalValue, getValue, isEmpty
-
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabled
-
Methods inherited from interface com.vaadin.flow.data.binder.HasDataProvider
setItems
-
Methods inherited from interface com.vaadin.flow.component.HasHelper
getHelperComponent, getHelperText, setHelperComponent, setHelperText
-
Methods inherited from interface com.vaadin.flow.data.binder.HasValidator
getDefaultValidator
-
Methods inherited from interface com.vaadin.flow.component.shared.HasClientValidation
addClientValidatedEventListener
-
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.AttachNotifier
addAttachListener
-
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
-
-
-
-
Method Detail
-
hasValidValue
protected boolean hasValidValue()
Description copied from class:
AbstractSinglePropertyField
Checks whether the element property has a value that can be converted to the model type. Property changes from the element will be ignored if this method returns
false
. The default implementation always returntrue
.Overrides:
hasValidValue
in classAbstractSinglePropertyField<RadioButtonGroup<T>,T>
Returns:
true
if the element property value can be converted to the model type; otherwisefalse
-
setDataProvider
public void setDataProvider(DataProvider<T,?> dataProvider)
Description copied from interface:
HasDataProvider
Sets the data provider for this listing. The data provider is queried for displayed items as needed.
Specified by:
setDataProvider
in interfaceHasDataProvider<T>
Parameters:
dataProvider
- the data provider, not null
-
setValue
public void setValue(T value)
Description copied from interface:
HasValue
Sets the value of this object. If the new value is not equal to
getValue()
, fires a value change event. May throwIllegalArgumentException
if the value is not acceptable.Implementation note: the implementing class should document whether null values are accepted or not, and override
HasValue.getEmptyValue()
if the empty value is notnull
.Specified by:
setValue
in interfaceHasValue<AbstractField.ComponentValueChangeEvent<RadioButtonGroup<T>,T>,T>
Overrides:
setValue
in classAbstractField<RadioButtonGroup<T>,T>
Parameters:
value
- the new value
-
onAttach
protected void onAttach(AttachEvent attachEvent)
Description copied from class:
Component
Called when the component is attached to a UI.
The default implementation does nothing.
This method is invoked before the
AttachEvent
is fired for the component.
-
onDetach
protected void onDetach(DetachEvent detachEvent)
Description copied from class:
Component
Called when the component is detached from a UI.
The default implementation does nothing.
This method is invoked before the
DetachEvent
is fired for the component.
-
getDataProvider
public DataProvider<T,?> getDataProvider()
Gets the data provider.
Returns:
the data provider, not
null
-
getItemEnabledProvider
public SerializablePredicate<T> getItemEnabledProvider()
Returns the item enabled predicate.
Returns:
the item enabled predicate
See Also:
setItemEnabledProvider(com.vaadin.flow.function.SerializablePredicate<T>)
-
setItemEnabledProvider
public void setItemEnabledProvider(SerializablePredicate<T> itemEnabledProvider)
Sets the item enabled predicate for this radio button group. The predicate is applied to each item to determine whether the item should be enabled (
true
) or disabled (false
). Disabled items are displayed as grayed out and the user cannot select them. The default predicate always returns true (all the items are enabled).Parameters:
itemEnabledProvider
- the item enable predicate, notnull
-
getItemRenderer
public ComponentRenderer<? extends Component,T> getItemRenderer()
Returns the item component renderer.
Returns:
the item renderer
See Also:
-
setRenderer
public void setRenderer(ComponentRenderer<? extends Component,T> renderer)
Sets the item renderer for this radio button group. The renderer is applied to each item to create a component which represents the item.
Note: Component acts as a label to the button and clicks on it trigger the radio button. Hence interactive components like DatePicker or ComboBox cannot be used.
Parameters:
renderer
- the item renderer, notnull
-
onEnabledStateChanged
public void onEnabledStateChanged(boolean enabled)
Description copied from class:
Component
Handle component enable state when the enabled state changes.
By default this sets or removes the 'disabled' attribute from the element. This can be overridden to have custom handling.
Overrides:
onEnabledStateChanged
in classComponent
Parameters:
enabled
- the new enabled state of the component
-
setReadOnly
public void setReadOnly(boolean readOnly)
Description copied from interface:
HasValue
Sets the read-only mode of this
HasValue
to given mode. The user can't change the value when in read-only mode.A
HasValue
with a visual component in read-only mode typically looks visually different to signal to the user that the value cannot be edited.Specified by:
setReadOnly
in interfaceHasValue<AbstractField.ComponentValueChangeEvent<RadioButtonGroup<T>,T>,T>
Specified by:
setReadOnly
in interfaceHasValueAndElement<AbstractField.ComponentValueChangeEvent<RadioButtonGroup<T>,T>,T>
Parameters:
readOnly
- a boolean value specifying whether the component is put read-only mode or not
-
isReadOnly
public boolean isReadOnly()
Description copied from interface:
HasValue
Returns whether this
HasValue
is in read-only mode or not.Specified by:
isReadOnly
in interfaceHasValue<AbstractField.ComponentValueChangeEvent<RadioButtonGroup<T>,T>,T>
Specified by:
isReadOnly
in interfaceHasValueAndElement<AbstractField.ComponentValueChangeEvent<RadioButtonGroup<T>,T>,T>
Returns:
false
if the user can modify the value,true
if not.
-
setRequired
public void setRequired(boolean required)
Specifies that the user must select in a value.
NOTE: The required indicator will not be visible, if there is no
label
property set for the radiobutton group.Overrides:
setRequired
in classGeneratedVaadinRadioGroup<RadioButtonGroup<T>,T>
Parameters:
required
- the boolean value to set
-
isRequired
public boolean isRequired()
Specifies that the user must select a value
This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.
Returns:
the
required
property from the webcomponent
-
setErrorMessage
public void setErrorMessage(String errorMessage)
Description copied from class:
GeneratedVaadinRadioGroup
Description copied from corresponding location in WebComponent:
Error to show when the input value is invalid.
Specified by:
setErrorMessage
in interfaceHasValidation
Overrides:
setErrorMessage
in classGeneratedVaadinRadioGroup<RadioButtonGroup<T>,T>
Parameters:
errorMessage
- the String value to set
-
getErrorMessage
public String getErrorMessage()
Gets the current error message from the radio button group.
Specified by:
getErrorMessage
in interfaceHasValidation
Returns:
the current error message
-
setLabel
public void setLabel(String label)
Sets the label for the field.
Specified by:
setLabel
in interfaceHasLabel
Overrides:
setLabel
in classGeneratedVaadinRadioGroup<RadioButtonGroup<T>,T>
Parameters:
label
- value for thelabel
property in the webcomponent
-
getLabel
public String getLabel()
String used for the label element.
-
isInvalid
public boolean isInvalid()
Description copied from interface:
HasValidation
Returns
true
if component input is invalid,false
otherwise.Specified by:
isInvalid
in interfaceHasValidation
Returns:
whether the component input is valid
-
setInvalid
public void setInvalid(boolean invalid)
Description copied from class:
GeneratedVaadinRadioGroup
Description copied from corresponding location in WebComponent:
This property is set to true when the value is invalid.
Specified by:
setInvalid
in interfaceHasValidation
Overrides:
setInvalid
in classGeneratedVaadinRadioGroup<RadioButtonGroup<T>,T>
Parameters:
invalid
- the boolean value to set
-
validate
protected void validate()
Description copied from class:
GeneratedVaadinRadioGroup
Description copied from corresponding location in WebComponent:
Returns true if
value
is valid.<iron-form>
uses this to check the validity or all its elements.This function is not supported by Flow because it returns a
boolean
. Functions with return types different than void are not supported at this moment.Overrides:
validate
in classGeneratedVaadinRadioGroup<RadioButtonGroup<T>,T>
-
addValidationStatusChangeListener
public Registration addValidationStatusChangeListener(ValidationStatusChangeListener<T> listener)
Description copied from interface:
HasValidator
Enables the implementing components to notify changes in their validation status to the observers.
Note: This method can be overridden by the implementing classes e.g. components, to enable the associated
Binder.Binding
instance subscribing for their validation change events and revalidate itself.This method primarily designed for notifying the Binding about the validation status changes of a bound component at the client-side. WebComponents such as
<vaadin-date-picker>
or any other component that accept a formatted text as input should be able to communicate their invalid status to their server-side instance, and a bound server-side component instance must notify its binding about this validation status change as well. When the binding instance revalidates, a chain of validators and convertors get executed one of which is the default validator provided byHasValidator.getDefaultValidator()
. Thus, In order for the binding to be able to show/clear errors for its associated bound field, it is important that implementing components take that validation status into account while implementing any validator and converter includingHasValidator.getDefaultValidator()
. Here is an example:@Tag("date-picker-demo") public class DatePickerDemo implements HasValidator<LocalDate> { // Each web component has a way to communicate its validation status // to its server-side component instance. The following clientSideValid // state is introduced here just for the sake of simplicity of this code // snippet: boolean clientSideValid = true; /** * Note how
clientSideValid
engaged in the definition * of this method. It is important to reflect this status either * in the returning validation result of this method or any other * validation that is associated with this component. */ @Override public Validator getDefaultValidator() { return (value, valueContext) -> clientSideValid ? ValidationResult.ok() : ValidationResult.error("Invalid date format"); } private final Collection<ValidationStatusChangeListener<LocalDate>> validationStatusListeners = new ArrayList<>(); /** * This enables the binding to subscribe for the validation status * change events that are fired by this component and revalidate * itself respectively. */ @Override public Registration addValidationStatusChangeListener( ValidationStatusChangeListener<LocalDate> listener) { validationStatusListeners.add(listener); return () -> validationStatusListeners.remove(listener); } private void fireValidationStatusChangeEvent( boolean newValidationStatus) { if (this.clientSideValid != newValidationStatus) { this.clientSideValid = newValidationStatus; var event = new ValidationStatusChangeEvent<>(this, newValidationStatus); validationStatusListeners.forEach( listener -> listener.validationStatusChanged(event)); } } }Specified by:
addValidationStatusChangeListener
in interfaceHasValidator<T>
Returns:
Registration of the added listener.
See Also:
-
isEnforcedFieldValidationEnabled
protected boolean isEnforcedFieldValidationEnabled()
-
-