/** * Adds a column that shows components. * <p> * This is a shorthand for {@link #addColum()} with a * {@link ComponentRenderer}. * * @param componentProvider * a value provider that will return a component for the given * item * @return the new column * @param <V> * the column value type, extends component * @since 8.1 */ public <V extends Component> Column<T, V> addComponentColumn( ValueProvider<T, V> componentProvider) { return addColumn(componentProvider, new ComponentRenderer()); }
@Override protected Renderer<com.vaadin.ui.Component> createImplementation() { return new ComponentRenderer(); }
/** * Get the default {@link Renderer} to use with given data type. * @param type Data type (not null) * @return Optional default renderer */ protected Optional<Renderer<?>> getDefaultPropertyRendererByType(Class<?> type) { if (Component.class.isAssignableFrom(type)) { return Optional.of(new ComponentRenderer()); } if (FontIcon.class.isAssignableFrom(type)) { return Optional.of(new HtmlRenderer("")); } if (ExternalResource.class.isAssignableFrom(type) || ThemeResource.class.isAssignableFrom(type)) { return Optional.of(new ImageRenderer<>()); } return Optional.empty(); }
@Override protected Optional<Renderer<?>> getDefaultPropertyRenderer(Property property) { if (Component.class.isAssignableFrom(property.getType())) { return Optional.of(new ComponentRenderer()); } if (FontIcon.class.isAssignableFrom(property.getType())) { return Optional.of(new HtmlRenderer("")); } if (ExternalResource.class.isAssignableFrom(property.getType()) || ThemeResource.class.isAssignableFrom(property.getType())) { return Optional.of(new ImageRenderer()); } return super.getDefaultPropertyRenderer(property); }
}); return button; }, new ComponentRenderer()).setCaption("Value"); grid.addColumn(element -> DateTimeUtils.ofPattern(element.getCreationTime(), FORMATTER)).setCaption("Create Time"); grid.addColumn(element -> DateTimeUtils.ofPattern(element.getLastAccessTime(), FORMATTER)).setCaption("Access Time"); }); return button; }, new ComponentRenderer()).setCaption(""); grid.setItems(this.ehcache.getAll(getKeys(this.ehcache, SEARCH_DEFAULT)).values()); grid.setWidth("100%");