/** * Creates a new image renderer and adds the given click listener to it. * * @param listener * the click listener to register */ public ImageRenderer(RendererClickListener<T> listener) { this(); addClickListener(listener); }
@Override public JsonValue encode(Resource resource) { if (!(resource == null || resource instanceof ExternalResource || resource instanceof ThemeResource)) { throw new IllegalArgumentException( "ImageRenderer only supports ExternalResource and ThemeResource (" + resource.getClass().getSimpleName() + " given)"); } return encode(ResourceReference.create(resource, this, null), URLReference.class); }
/** * 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(); }
/** * Get the default {@link Renderer} for given <code>property</code>. * @param property Property * @return The default {@link Renderer}, if available */ protected Optional<Renderer<?>> getDefaultPropertyRenderer(P property) { Class<?> type = getPropertyColumnType(property); // Images if (type != null && (ExternalResource.class.isAssignableFrom(type) || ThemeResource.class.isAssignableFrom(type))) { return Optional.of(new ImageRenderer()); } if (type != null && FontIcon.class.isAssignableFrom(type)) { return Optional.of(new HtmlRenderer("")); } 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); }