Interface DynamicColumn<C extends DynamicColumn<C>>

  • All Superinterfaces:
    Column<C>, Comparable<C>, Component<C>, Copyable<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 Detail

      • 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