com.holonplatform.vaadin.components

## Interface PropertyViewGroup.Builder<G extends PropertyViewGroup,B extends PropertyViewGroup.Builder<G,B>>

- Type Parameters:
    `G` - Actual `PropertyViewGroup` type
    `B` - Concrete builder type
  All Known Subinterfaces:
    PropertyViewForm.PropertyViewFormBuilder<C>, PropertyViewGroup.PropertyViewGroupBuilder
  Enclosing interface:
    PropertyViewGroup

      public static interface PropertyViewGroup.Builder<G extends PropertyViewGroup,B extends PropertyViewGroup.Builder<G,B>>

  Base `PropertyViewGroup` builder.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T,F extends T> B` | `bind(com.holonplatform.core.property.Property<T> property, com.holonplatform.core.property.PropertyRenderer<ViewComponent<F>,T> renderer)` Set a specific `PropertyRenderer` to use to render the `ViewComponent` to bind to given `property`.
    `<T> B` | `bind(com.holonplatform.core.property.Property<T> property, PropertyViewGroup.ViewComponentPropertyRenderer<T> renderer)` Convenience method to set a specific `PropertyRenderer` to use to render the `ViewComponent` to bind to given `property` using the `PropertyViewGroup.ViewComponentPropertyRenderer` functional interface.
    `default <T> B` | `bind(com.holonplatform.core.property.Property<T> property, ViewComponent<? extends T> viewComponent)` Bind the given `property` to given `viewComponent` instance.
    `G` | `build()` Build the `PropertyViewGroup`
    `<T> B` | `hidden(com.holonplatform.core.property.Property<T> property)` Set the given property as hidden.
    `B` | `ignoreMissingViewComponents(boolean ignoreMissingViewComponents)` Set whether to ignore properties without a bound `ViewComponent`.
    `<P extends com.holonplatform.core.property.Property> B` | `properties(Iterable<P> properties)` Add given properties to the `PropertyViewGroup` property set.
    `<P extends com.holonplatform.core.property.Property> B` | `properties(P... properties)` Add given properties to the `PropertyViewGroup` property set.
    `B` | `withPostProcessor(PropertyBinding.PostProcessor<ViewComponent<?>> postProcessor)` Add a `PropertyBinding.PostProcessor` to allow further `ViewComponent` configuration after generation and before the ViewComponent is actually bound to a property.

- - ### Method Detail

    - #### properties

          <P extends com.holonplatform.core.property.Property> B properties(P... properties)

      Add given properties to the `PropertyViewGroup` property set.
      Type Parameters:
        `P` - Property type
      Parameters:
        `properties` - Properties to add
      Returns:
        this

    - #### properties

          <P extends com.holonplatform.core.property.Property> B properties(Iterable<P> properties)

      Add given properties to the `PropertyViewGroup` property set.
      Type Parameters:
        `P` - Property type
      Parameters:
        `properties` - Properties to add (not null)
      Returns:
        this

    - #### hidden

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

      Set the given property as hidden. If a property is hidden, the `ViewComponent` 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

    - #### bind

          <T,F extends T> B bind(com.holonplatform.core.property.Property<T> property,
                                 com.holonplatform.core.property.PropertyRenderer<ViewComponent<F>,T> renderer)

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

    - #### bind

          <T> B bind(com.holonplatform.core.property.Property<T> property,
                     PropertyViewGroup.ViewComponentPropertyRenderer<T> renderer)

      Convenience method to set a specific `PropertyRenderer` to use to render the `ViewComponent` to bind to given `property` using the `PropertyViewGroup.ViewComponentPropertyRenderer` functional interface.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - Property (not null)
        `renderer` - Property renderer (not null)
      Returns:
        this

    - #### bind

          default <T> B bind(com.holonplatform.core.property.Property<T> property,
                             ViewComponent<? extends T> viewComponent)

      Bind the given `property` to given `viewComponent` instance. If the property was already bound to a ViewComponent, the old ViewComponent will be replaced by the new ViewComponent.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - Property (not null)
        `viewComponent` - ViewComponent to bind (not null)
      Returns:
        this

    - #### withPostProcessor

          B withPostProcessor(PropertyBinding.PostProcessor<ViewComponent<?>> postProcessor)

      Add a `PropertyBinding.PostProcessor` to allow further `ViewComponent` configuration after generation and before the ViewComponent is actually bound to a property.
      Parameters:
        `postProcessor` - the `PropertyBinding.PostProcessor` to add (not null)
      Returns:
        this

    - #### ignoreMissingViewComponents

          B ignoreMissingViewComponents(boolean ignoreMissingViewComponents)

      Set whether to ignore properties without a bound `ViewComponent`. Default is `false`, and an exception is thrown if a property of the `PropertyViewGroup` cannot be bound to any ViewComponent.
      Parameters:
        `ignoreMissingViewComponents` - Whether to ignore when the ViewComponent for a property is missing
      Returns:
        this

    - #### build

          G build()

      Build the `PropertyViewGroup`
      Returns:
        PropertyViewGroup instance

Copyright © 2019 The Holon Platform. All rights reserved.