Java源码示例:com.vaadin.flow.data.renderer.ComponentRenderer

示例1
public RSocketFiltersView(@Autowired RSocketFilterChain filterChain, @Autowired RSocketBrokerManager brokerManager) {
    this.filterChain = filterChain;
    add(new H1("RSocket Filters"));
    //services & applications
    filterGrid.addColumn(RSocketFilter::getClass).setHeader("Filter Class").setAutoWidth(true);
    filterGrid.addColumn(RSocketFilter::name).setHeader("Name");
    filterGrid.addColumn(new ComponentRenderer<>(filter -> {
                Checkbox checkbox = new Checkbox(filter.isEnabled());
                checkbox.addValueChangeListener(event -> filter.setEnabled(checkbox.getValue()));
                RSocketFilterEnableEvent filterEnableEvent = new RSocketFilterEnableEvent(filter.getClass().getCanonicalName(), checkbox.getValue());
                brokerManager.broadcast(filterEnableEvent.toCloudEvent(URI.create("broker:" + brokerManager.localBroker().getIp()))).subscribe();
                return checkbox;
            })
    ).setHeader("Enabled");
    add(filterGrid);
}
 
示例2
public void addComponentRendererDemo() {
    MultiselectComboBox<User> multiselectComboBox = new MultiselectComboBox();
    multiselectComboBox.setLabel(
        "Multiselect combo box with ComponentRenderer");
    multiselectComboBox.setPlaceholder("Add");
    multiselectComboBox.setWidth("100%");
    List<User> data = Arrays.asList(
        new User("Leanne Graham", "leanne", "[email protected]"),
        new User("Ervin Howell", "ervin", "[email protected]"),
        new User("Samantha Doe", "samantha", "[email protected]"));
    multiselectComboBox.setItems(data);
    multiselectComboBox.setItemLabelGenerator(User::getEmail);
    multiselectComboBox.addSelectionListener(
        event -> Notification.show(event.toString()));

    Button getValueBtn = new Button("Get value");
    getValueBtn.addClickListener(
        event -> objectMultiselectComboBoxValueChangeHandler(
            multiselectComboBox));

    multiselectComboBox.setRenderer(new ComponentRenderer<VerticalLayout, User>(VerticalLayout::new, (container, user) -> {
        HorizontalLayout name = new HorizontalLayout(new Icon(VaadinIcon.USER), new Label(user.getName()));
        HorizontalLayout email = new HorizontalLayout(new Icon(VaadinIcon.SUITCASE), new Label(user.getEmail()));
        container.add(name, email);
    }));

    add(buildDemoContainer(multiselectComboBox, getValueBtn));
}
 
示例3
public AbstractListingProvider(String caption, Collection<T> items, ComponentRenderer<? extends Component, T> renderer) {
    this.caption = caption;
    this.items = items;
    this.renderer = renderer;
}
 
示例4
public RadioButtonGroupProvider(String caption, Collection<T> items, ComponentRenderer<? extends Component, T> renderer) {
    super(caption, items, renderer);
}
 
示例5
public ComboBoxProvider(String caption, Collection<T> items, ComponentRenderer<? extends Component, T> renderer, ItemLabelGenerator<T> itemLabelGenerator) {
    super(caption, items, renderer);
    this.itemLabelGenerator = itemLabelGenerator;
}
 
示例6
public ComponentRenderer<? extends Component, T> getComponentRenderer() {
    return componentRenderer;
}
 
示例7
/**
 * Creates a new generator.
 * 
 * @param componentRenderer
 *            the renderer used to produce components based on data items
 * @param keyMapper
 *            the DataKeyMapper used to fetch keys for items
 */
public ComponentDataGenerator(
        ComponentRenderer<? extends Component, T> componentRenderer,
        ValueProvider<T, String> keyMapper) {
    this.componentRenderer = componentRenderer;
    this.keyMapper = keyMapper;
}