package org.jboss.seam.ui.graphicImage; import java.io.IOException; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; import org.jboss.seam.ui.graphicImage.GraphicImageStore.ImageWrapper; import org.jboss.seam.ui.util.HTML; import org.jboss.seam.ui.util.cdk.RendererBase; public class GraphicImageRendererBase extends RendererBase { @Override protected Class getComponentClass() { return UIGraphicImage.class; } @Override protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException { UIGraphicImage graphicImage = (UIGraphicImage) component; String key = graphicImage.getFileName(); String extension = null; Image image = Image.instance(); image.setInput(graphicImage.getValue()); // Do transforms for (UIComponent cmp : graphicImage.getChildren()) { if (cmp instanceof ImageTransform) { ImageTransform imageTransform = (ImageTransform) cmp; imageTransform.applyTransform(image); } } key = GraphicImageStore.instance().put(new ImageWrapper(image.getImage(), image.getContentType()), key); extension = image.getContentType().getExtension(); writer.startElement(HTML.IMG_ELEM, graphicImage); if (graphicImage.getId() != null) { writer.writeAttribute(HTML.ID_ATTR, graphicImage.getClientId(context), HTML.ID_ATTR); } String url = context.getExternalContext().getRequestContextPath() + GraphicImageResource.GRAPHIC_IMAGE_RESOURCE_PATH + "/" + key + extension; writer.writeAttribute(HTML.SRC_ATTR, url, HTML.SRC_ATTR); HTML.renderHTMLAttributes(writer, component, HTML.IMG_PASSTHROUGH_ATTRIBUTES); writer.endElement(HTML.IMG_ELEM); } @Override public boolean getRendersChildren() { return true; } }