com.holonplatform.vaadin.flow.components.builders

## Interface PropertyInputGroupConfigurator<C extends PropertyInputGroupConfigurator<C>>

- Type Parameters:
    `C` - Concrete configurator type
  All Superinterfaces:
    ComponentGroupConfigurator<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox,Input<?>,PropertyInputGroup,C>, InputGroupConfigurator<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox,PropertyInputGroup,C>, InputGroupConfigurator.PropertySetInputGroupConfigurator<PropertyInputGroup,C>
  All Known Subinterfaces:
    PropertyInputFormBuilder<C>, PropertyInputFormConfigurator<C,B>, PropertyInputGroupBuilder

      public interface PropertyInputGroupConfigurator<C extends PropertyInputGroupConfigurator<C>>
      extends InputGroupConfigurator.PropertySetInputGroupConfigurator<PropertyInputGroup,C>

  `PropertyInputGroup` configurator.
  Since:
    5.2.0

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.holonplatform.vaadin.flow.components.builders.InputGroupConfigurator

      `InputGroupConfigurator.BeanInputGroupConfigurator<T,G extends BoundComponentGroup<String,Input<?>>,C extends InputGroupConfigurator.BeanInputGroupConfigurator<T,G,C>>, InputGroupConfigurator.PropertySetInputGroupConfigurator<G extends BoundComponentGroup<com.holonplatform.core.property.Property<?>,Input<?>>,C extends InputGroupConfigurator.PropertySetInputGroupConfigurator<G,C>>`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default <T> C` | `bind(com.holonplatform.core.property.Property<T> property, Function<com.holonplatform.core.property.Property<? extends T>,Input<T>> function)` Set the function to use to render the `Input` bound to given `property`.
    `default <T> C` | `bind(com.holonplatform.core.property.Property<T> property, Input<T> input)` Bind the given `property` to given `input` instance.
    `default <T,V> C` | `bind(com.holonplatform.core.property.Property<T> property, Input<V> input, com.vaadin.flow.data.converter.Converter<V,T> converter)` Bind the given `property` to given `input` instance with different value type, using a `Converter` to perform value conversions.
    `<T> C` | `bind(com.holonplatform.core.property.Property<T> property, com.holonplatform.core.property.PropertyRenderer<Input<T>,T> renderer)` Set the specific `PropertyRenderer` to use to render the `Input` to bind to given `property`.
    `default <T,F extends com.vaadin.flow.component.Component & com.vaadin.flow.component.HasValue<?,T>> C` | `bindField(com.holonplatform.core.property.Property<T> property, F field)` Bind the given `property` to given `HasValue` component.
    `default <T,V,F extends com.vaadin.flow.component.Component & com.vaadin.flow.component.HasValue<?,V>> C` | `bindField(com.holonplatform.core.property.Property<T> property, F field, com.vaadin.flow.data.converter.Converter<V,T> converter)` Bind the given `property` to given `HasValue` component with different value type, using a `Converter` to perform value conversions.
    `<T> C` | `hidden(com.holonplatform.core.property.Property<T> property)` Set the given property as hidden.
    `default <T> C` | `readOnly(com.holonplatform.core.property.Property<T> property)` Set the given property as read-only.
    `<T> C` | `readOnly(com.holonplatform.core.property.Property<T> property, boolean readOnly)` Set whether the given property is read-only.
    `C` | `stopGroupValidationAtFirstFailure(boolean stopValidationAtFirstFailure)` Set whether to stop group validation at first validation failure.
    `C` | `stopInputsValidationAtFirstFailure(boolean stopValidationAtFirstFailure)` Set whether to stop inputs validation at first validation failure.
    `C` | `validateOnValueChange(boolean validateOnValueChange)` Sets whether to validate the available `Input`s value every time the `Input` value changes.

    - ### Methods inherited from interface com.holonplatform.vaadin.flow.components.builders.InputGroupConfigurator.PropertySetInputGroupConfigurator

      `defaultValue, withValidator, withValueChangeListener`

    - ### Methods inherited from interface com.holonplatform.vaadin.flow.components.builders.InputGroupConfigurator

      `enableRefreshOnValueChange, groupValidationStatusHandler, required, required, required, required, validationStatusHandler, validationStatusHandler, validationStatusLabel, withPostProcessor, withValidator`

    - ### Methods inherited from interface com.holonplatform.vaadin.flow.components.builders.ComponentGroupConfigurator

      `usePropertyRendererRegistry, withValueChangeListener`

- - ### Method Detail

    - #### hidden

          <T> C hidden(com.holonplatform.core.property.Property<T> property)

      Set the given property as hidden. If a property is hidden, the `Input` bound to the property will never be generated, but its value will be written to a `PropertyBox` using `PropertyViewGroup.getValue()`.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - Property to set as hidden (not null)
      Returns:
        this

    - #### readOnly

          <T> C readOnly(com.holonplatform.core.property.Property<T> property,
                         boolean readOnly)

      Set whether the given property is read-only. If a property is read-only, the `Input` bound to the property will be setted as read-only, and its value cannot be changed by the user.

      Any validator bound to the given property will be ignored.

      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - The property to set as read-only (not null)
        `readOnly` - `true` to set the property as read-only, `false` otherwise
      Returns:
        this

    - #### readOnly

          default <T> C readOnly(com.holonplatform.core.property.Property<T> property)

      Set the given property as read-only. If a property is read-only, the `Input` bound to the property will be setted as read-only, and its value cannot be changed by the user.

      Any validator bound to the given property will be ignored.

      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - The property to set as read-only (not null)
      Returns:
        this

    - #### bind

          <T> C bind(com.holonplatform.core.property.Property<T> property,
                     com.holonplatform.core.property.PropertyRenderer<Input<T>,T> renderer)

      Set the specific `PropertyRenderer` to use to render the `Input` to bind to given `property`.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - Property (not null)
        `renderer` - Property renderer (not null)
      Returns:
        this

    - #### bind

          default <T> C bind(com.holonplatform.core.property.Property<T> property,
                             Function<com.holonplatform.core.property.Property<? extends T>,Input<T>> function)

      Set the function to use to render the `Input` bound to given `property`.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - The property to render (not null)
        `function` - The function to use to render the property `Input` (not null)
      Returns:
        this

    - #### bind

          default <T> C bind(com.holonplatform.core.property.Property<T> property,
                             Input<T> input)

      Bind the given `property` to given `input` instance. If the property was already bound to a `Input`, the old input will be replaced by the new input.

      This method also adds property validators to given `Input` when applicable.

      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - Property (not null)
        `input` - Input to bind (not null)
      Returns:
        this

    - #### bind

          default <T,V> C bind(com.holonplatform.core.property.Property<T> property,
                               Input<V> input,
                               com.vaadin.flow.data.converter.Converter<V,T> converter)

      Bind the given `property` to given `input` instance with different value type, using a `Converter` to perform value conversions. If the property was already bound to a `Input`, the old input will be replaced by the new input.

      This method also adds property validators to given `Input` when applicable.

      Type Parameters:
        `T` - Property type
        `V` - Input value type
      Parameters:
        `property` - Property (not null)
        `input` - Input to bind (not null)
        `converter` - Value converter (not null)
      Returns:
        this

    - #### bindField

          default <T,F extends com.vaadin.flow.component.Component & com.vaadin.flow.component.HasValue<?,T>> C bindField(com.holonplatform.core.property.Property<T> property,
                                                                                                                          F field)

      Bind the given `property` to given `HasValue` component. If the property was already bound to a `Input`, the old input will be replaced by the new input.
      Type Parameters:
        `T` - Property type
        `F` - HasValue type
      Parameters:
        `property` - Property (not null)
        `field` - HasValue component to bind (not null)
      Returns:
        this

    - #### bindField

          default <T,V,F extends com.vaadin.flow.component.Component & com.vaadin.flow.component.HasValue<?,V>> C bindField(com.holonplatform.core.property.Property<T> property,
                                                                                                                            F field,
                                                                                                                            com.vaadin.flow.data.converter.Converter<V,T> converter)

      Bind the given `property` to given `HasValue` component with different value type, using a `Converter` to perform value conversions. If the property was already bound to an `Input`, the old input will be replaced by the new input.

      This method also adds property validators to given `Input` when applicable.

      Type Parameters:
        `T` - Property type
        `V` - Input value type
        `F` - HasValue type
      Parameters:
        `property` - Property (not null)
        `field` - The field to bind (not null)
        `converter` - Value converter (not null)
      Returns:
        this

    - #### validateOnValueChange

          C validateOnValueChange(boolean validateOnValueChange)

      Sets whether to validate the available `Input`s value every time the `Input` value changes.

      Default is `false`.

      Parameters:
        `validateOnValueChange` - `true` to perform value validation every time a `Input` value changes, `false` if not
      Returns:
        this

    - #### stopInputsValidationAtFirstFailure

          C stopInputsValidationAtFirstFailure(boolean stopValidationAtFirstFailure)

      Set whether to stop inputs validation at first validation failure. If `true`, only the first `Validator.ValidationException` is thrown at inputs validation, otherwise a `Validator.ValidationException` containing all the occurred validation exception is thrown.
      Parameters:
        `stopValidationAtFirstFailure` - `true` to stop inputs validation at first validation failure
      Returns:
        this

    - #### stopGroupValidationAtFirstFailure

          C stopGroupValidationAtFirstFailure(boolean stopValidationAtFirstFailure)

      Set whether to stop group validation at first validation failure. If `true`, only the first `Validator.ValidationException` is thrown at validation, otherwise a `Validator.ValidationException` containing all the occurred validation exception is thrown.

      The group validation is the one which is performed using validators added with `InputGroupConfigurator.withValidator(Validator)` method.

      Parameters:
        `stopValidationAtFirstFailure` - `true` to stop overall validation at first validation failure
      Returns:
        this

Copyright © 2020 The Holon Platform. All rights reserved.