Class GroupDataGridColumnComponentRenderer<COMPONENT extends com.vaadin.flow.component.Component,E>

java.lang.Object
com.vaadin.flow.data.renderer.Renderer<SOURCE>
com.vaadin.flow.data.renderer.LitRenderer<SOURCE>
com.vaadin.flow.data.renderer.ComponentRenderer<COMPONENT,E>
io.jmix.groupgridflowui.component.renderer.GroupDataGridColumnComponentRenderer<COMPONENT,E>
Type Parameters:
COMPONENT - the component type to render
E - the entity type
All Implemented Interfaces:
GroupRenderer, HasGroupDataGrid<E>, Serializable

public class GroupDataGridColumnComponentRenderer<COMPONENT extends com.vaadin.flow.component.Component,E> extends com.vaadin.flow.data.renderer.ComponentRenderer<COMPONENT,E> implements HasGroupDataGrid<E>, GroupRenderer
A renderer that renders a component inside a toggler for each group item.

For instance:

 @Supply(to = "customersDataGrid.group", subject = "renderer")
 public Renderer<Customer> supplyRendererToGroupColumn() {
     return new GroupDataGridColumnComponentRenderer<>(groupInfo -> {
         if (groupInfo.getProperty().is("grade")) {
             Grade grade = groupInfo.getValue();
             return createGradeLayout(grade);
         }
         if (groupInfo.getProperty().is("country")) {
             String name = groupInfo.getValue().toString();
             return createCountryLayout(name);
         }
         return null;
     });
 }
 
See Also:
  • Field Details

    • groupDataGrid

      protected GroupDataGrid<E> groupDataGrid
    • componentProvider

      protected com.vaadin.flow.function.ValueProvider<GroupInfo,COMPONENT extends com.vaadin.flow.component.Component> componentProvider
  • Constructor Details

    • GroupDataGridColumnComponentRenderer

      public GroupDataGridColumnComponentRenderer(com.vaadin.flow.function.ValueProvider<GroupInfo,COMPONENT> componentProvider)
  • Method Details

    • getGroupDataGrid

      public GroupDataGrid<E> getGroupDataGrid()
      Specified by:
      getGroupDataGrid in interface HasGroupDataGrid<COMPONENT extends com.vaadin.flow.component.Component>
      Returns:
      the group data grid
    • setGroupDataGrid

      public void setGroupDataGrid(GroupDataGrid<E> groupDataGrid)
      Description copied from interface: HasGroupDataGrid
      Sets the GroupDataGrid.
      Specified by:
      setGroupDataGrid in interface HasGroupDataGrid<COMPONENT extends com.vaadin.flow.component.Component>
      Parameters:
      groupDataGrid - the group data grid to set
    • createComponent

      @Nullable public COMPONENT createComponent(E item)
      Overrides:
      createComponent in class com.vaadin.flow.data.renderer.ComponentRenderer<COMPONENT extends com.vaadin.flow.component.Component,E>
    • generateToggleClassName

      protected String generateToggleClassName(E item)
    • getTemplateExpression

      protected String getTemplateExpression()
      CAUTION! Copied from com.vaadin.flow.component.treegrid.HierarchyColumnComponentRenderer#getTemplateExpression()
      Overrides:
      getTemplateExpression in class com.vaadin.flow.data.renderer.ComponentRenderer<COMPONENT extends com.vaadin.flow.component.Component,E>
      Returns:
      the template expression for the renderer