com.holonplatform.vaadin.flow.components.builders

## Interface PropertyListingConfigurator<C extends PropertyListingConfigurator<C>>

- Type Parameters:
    `C` - Concrete configurator type
  All Superinterfaces:
    ComponentConfigurator<C>, ComponentGroupConfigurator<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox,Input<?>,ItemListing.EditorComponentGroup<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox>,C>, FocusableConfigurator<com.vaadin.flow.component.Component,C>, HasElementConfigurator<C>, HasEnabledConfigurator<C>, HasSizeConfigurator<C>, HasStyleConfigurator<C>, HasThemeVariantConfigurator<com.vaadin.flow.component.grid.GridVariant,C>, InputGroupConfigurator<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox,ItemListing.EditorComponentGroup<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox>,C>, InputGroupConfigurator.PropertySetInputGroupConfigurator<ItemListing.EditorComponentGroup<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox>,C>, ItemListingConfigurator<com.holonplatform.core.property.PropertyBox,com.holonplatform.core.property.Property<?>,PropertyListing,C>
  All Known Subinterfaces:
    PropertyListingBuilder, PropertyListingBuilder.DatastorePropertyListingBuilder

      public interface PropertyListingConfigurator<C extends PropertyListingConfigurator<C>>
      extends ItemListingConfigurator<com.holonplatform.core.property.PropertyBox,com.holonplatform.core.property.Property<?>,PropertyListing,C>, InputGroupConfigurator.PropertySetInputGroupConfigurator<ItemListing.EditorComponentGroup<com.holonplatform.core.property.Property<?>,com.holonplatform.core.property.PropertyBox>,C>

  `PropertyListing` configurator.
  Since:
    5.2.0

- - ### Nested Class Summary

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

      `ItemListingConfigurator.ColumnAlignment, ItemListingConfigurator.EditableItemListingRow<P>, ItemListingConfigurator.EditableItemListingSection<P>, ItemListingConfigurator.ItemListingColumnBuilder<T,P,L extends ItemListing<T,P>,B extends ItemListingConfigurator<T,P,L,B>>, ItemListingConfigurator.ItemListingColumnConfigurator<T,P,C extends ItemListingConfigurator.ItemListingColumnConfigurator<T,P,C>>, ItemListingConfigurator.ItemListingContextMenuBuilder<T,P,L extends ItemListing<T,P>,B extends ItemListingConfigurator<T,P,L,B>>`

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

      `ComponentConfigurator.BaseComponentConfigurator`

    - ### 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>>`

  - ### Field Summary

    - ### Fields inherited from interface com.holonplatform.vaadin.flow.components.builders.HasSizeConfigurator

      `FULL_SIZE`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default <T> C` | `editor(com.holonplatform.core.property.Property<T> property, Function<com.holonplatform.core.property.Property<? extends T>,Input<T>> function)` Set the function to provide the `Input` to use as given `property` column editor, when a listing row is in editable mode.
    `default <T> C` | `editor(com.holonplatform.core.property.Property<T> property, Input<T> input)` Set the `Input` to use as given `property` column editor, when a listing row is in editable mode.
    `default <T,V> C` | `editor(com.holonplatform.core.property.Property<T> property, Input<V> input, com.vaadin.flow.data.converter.Converter<V,T> converter)` Set the `Input` to use as given `property` column editor, when a listing row is in editable mode, ad the `Converter` to use to convert the `Input` value type to the required property value type.
    `<T> C` | `editor(com.holonplatform.core.property.Property<T> property, com.holonplatform.core.property.PropertyRenderer<Input<T>,T> renderer)` Set the `PropertyRenderer` to provide the `Input` to use as given `property` column editor, when a listing row is in editable mode.
    `default <T,F extends com.vaadin.flow.component.Component & com.vaadin.flow.component.HasValue<?,T>> C` | `editorField(com.holonplatform.core.property.Property<T> property, F field)` Set the `HasValue` component to use as given `property` column editor, when a listing row is in editable mode.
    `default <T,V,F extends com.vaadin.flow.component.Component & com.vaadin.flow.component.HasValue<?,V>> C` | `editorField(com.holonplatform.core.property.Property<T> property, F field, com.vaadin.flow.data.converter.Converter<V,T> converter)` Set the `HasValue` component to use as given `property` column editor, when a listing row is in editable mode, ad the `Converter` to use to convert the `HasValue` value type to the required property value type.
    `default <T> C` | `renderAsViewComponent(com.holonplatform.core.property.Property<T> property)` Render the column associated to given `property` using a `ViewComponent`.
    `<X> ItemListingConfigurator.ItemListingColumnBuilder<com.holonplatform.core.property.PropertyBox,com.holonplatform.core.property.Property<?>,PropertyListing,C>` | `withColumn(com.holonplatform.core.property.VirtualProperty<X> property)` Add a column which contents will be rendered using given `VirtualProperty`.
    `ItemListingConfigurator.ItemListingColumnBuilder<com.holonplatform.core.property.PropertyBox,com.holonplatform.core.property.Property<?>,PropertyListing,C>` | `withComponentColumn(com.holonplatform.core.property.VirtualProperty<? extends com.vaadin.flow.component.Component> property)` Add a column which contents will be rendered as a `Component` using given `VirtualProperty`.

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

      `alignment, columnReorderingAllowed, componentRenderer, contextMenu, displayAfter, displayAsFirst, displayAsLast, displayBefore, editable, editable, editorBuffered, editorComponent, editorComponent, expand, flexGrow, footer, footer, footer, footer, footerComponent, frozen, frozen, frozenColumns, header, header, header, header, headerComponent, heightByRows, hidden, itemDetailsComponent, itemDetailsRenderer, itemDetailsText, itemDetailsVisibleOnClick, multiSelect, multiSort, notSelectable, pageSize, readOnly, renderer, resizable, resizable, selectionMode, singleSelect, sortable, sortable, sortComparator, sortProvider, sortUsing, sortUsing, valueProvider, verticalScrollingEnabled, visible, visibleColumns, visibleColumns, width, withColumn, withComponentColumn, withEditorCancelListener, withEditorCloseListener, withEditorOpenListener, withEditorSaveListener, withItemClickListener, withItemRefreshListener, withSelectionListener`

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

      `hidden, id, visible, withAttachListener, withDetachListener`

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

      `withEventListener, withEventListener, withThemeName`

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

      `fullHeight, fullSize, fullWidth, height, height, heightUndefined, sizeUndefined, width, width, widthUndefined`

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

      `styleName, styleNames`

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

      `disabled, enabled`

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

      `tabIndex, withBlurListener, withFocusListener`

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

      `withThemeVariants`

    - ### 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

    - #### withColumn

          <X> ItemListingConfigurator.ItemListingColumnBuilder<com.holonplatform.core.property.PropertyBox,com.holonplatform.core.property.Property<?>,PropertyListing,C> withColumn(com.holonplatform.core.property.VirtualProperty<X> property)

      Add a column which contents will be rendered using given `VirtualProperty`.

      The virtual property `PropertyValueProvider` will be invoked for each listing item to obtain the value to display.

      Type Parameters:
        `X` - Property type
      Parameters:
        `property` - The virtual property which represent the column.
      Returns:
        An `ItemListingColumnBuilder` which allow further column configuration and provides the `ItemListingColumnBuilder#add()` method to add the column to the listing

    - #### withComponentColumn

          ItemListingConfigurator.ItemListingColumnBuilder<com.holonplatform.core.property.PropertyBox,com.holonplatform.core.property.Property<?>,PropertyListing,C> withComponentColumn(com.holonplatform.core.property.VirtualProperty<? extends com.vaadin.flow.component.Component> property)

      Add a column which contents will be rendered as a `Component` using given `VirtualProperty`.

      The virtual property `PropertyValueProvider` will be invoked for each listing item to obtain the Component to display.

      Parameters:
        `property` - The virtual property which represent the column.
      Returns:
        An `ItemListingColumnBuilder` which allow further column configuration and provides the `ItemListingColumnBuilder#add()` method to add the column to the listing

    - #### editor

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

      Set the `PropertyRenderer` to provide the `Input` to use as given `property` column editor, when a listing row is in editable mode.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - The property for which to set the editor provider (not null)
        `renderer` - The property `Input` provider (not null)
      Returns:
        this

    - #### editor

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

      Set the function to provide the `Input` to use as given `property` column editor, when a listing row is in editable mode.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - The property for which to set the editor provider (not null)
        `function` - The function to use to provider the property `Input` editor (not null)
      Returns:
        this

    - #### editor

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

      Set the `Input` to use as given `property` column editor, when a listing row is in editable mode.
      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - The property for which to set the editor `Input` (not null)
        `input` - The `Input` to use as property editor (not null)
      Returns:
        this

    - #### editor

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

      Set the `Input` to use as given `property` column editor, when a listing row is in editable mode, ad the `Converter` to use to convert the `Input` value type to the required property value type.
      Type Parameters:
        `T` - Property type
        `V` - Input value type
      Parameters:
        `property` - The property for which to set the editor `Input` (not null)
        `input` - The `Input` to use as property editor (not null)
        `converter` - The value converter (not null)
      Returns:
        this

    - #### editorField

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

      Set the `HasValue` component to use as given `property` column editor, when a listing row is in editable mode.
      Type Parameters:
        `T` - Property type
        `F` - HasValue type
      Parameters:
        `property` - The property for which to set the editor (not null)
        `field` - The `HasValue` component to use as property editor (not null)
      Returns:
        this

    - #### editorField

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

      Set the `HasValue` component to use as given `property` column editor, when a listing row is in editable mode, ad the `Converter` to use to convert the `HasValue` value type to the required property value type.
      Type Parameters:
        `T` - Property type
        `V` - HasValue value type
        `F` - HasValue type
      Parameters:
        `property` - The property for which to set the editor (not null)
        `field` - The `HasValue` component to use as property editor (not null)
        `converter` - The value converter (not null)
      Returns:
        this

    - #### renderAsViewComponent

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

      Render the column associated to given `property` using a `ViewComponent`.

      The current `PropertyRendererRegistry` is used, if available, to render the property as a `ViewComponent`.

      By default, the `ViewComponent.getContentComponent()` method is used to obtain the Component with which to render the cell contents, in order to exclude any `ViewComponent` label.

      If a `ViewComponent` is not available or it ha not content Component, and empty `Div` is returned as cell content.

      Type Parameters:
        `T` - Property type
      Parameters:
        `property` - The property to render as a `ViewComponent` (not null)
      Returns:
        this

Copyright © 2019 The Holon Platform. All rights reserved.