Interface DynamicColumn<C extends DynamicColumn<C>>

All Superinterfaces:
Column<C>, Comparable<C>, Component<C>, Copyable<C>, CustomCssComponent<C>, Serializable
All Known Subinterfaces:
ConditionalColumn<C>
All Known Implementing Classes:
DefaultConditionalColumn, DefaultDynamicColumn

public interface DynamicColumn<C extends DynamicColumn<C>> extends Column<C>

Builder that is used for building ColumnTypes.DYNAMIC type column components.

This type of component is particular useful when you have a column header that may source its value from different sources depending on the row being rendered, e.g. render `variant.name` in one case, but `product.name` in another.

 Columns.dynamic()
         .when(Conditional.when("type").equalTo("PRODUCT"), column -> column.name("product.name"))
         .when(Conditional.when("type").equalTo("VARIANT"), column -> column.name("variant.name"))
         .build();
 
Author:
Dima Myroniuk (dmyroniuk), Bongani Mbigi (bongani-m)
  • Method Details

    • when

      default C when(Conditional<?> conditional, UnaryOperator<Column<?>> fn)

      Helper method for adding a new column option with a single conditional.

      Parameters:
      conditional - the conditional that must be true for this column to be used
      fn - a function that allows configuration of the column
      Returns:
      this column for further customization
    • when

      default C when(List<Conditional<?>> conditionals, UnaryOperator<Column<?>> fn)

      Helper method for adding a new column option with a list of conditionals.

      Parameters:
      conditionals - the list of conditionals that must be true for this column to be used
      fn - a function that allows configuration of the column
      Returns:
      the builder