package org.rendersnake.internal;
import java.io.IOException;
import org.antlr.stringtemplate.AttributeRenderer;
import org.rendersnake.HtmlCanvas;
import org.rendersnake.RenderableAttribute;
/**
* RenderableAttributeRenderer is a helper class to render components
* when processing a template using {@link StringTemplate}
*
* @author ernestmicklei
*/
public class RenderableAttributeRenderer implements AttributeRenderer {
/**
* Return the HTML snippet to replace the reference in a template
*/
public String toString(Object o) {
RenderableAttribute cc = (RenderableAttribute)o;
HtmlCanvas attributeCanvas = cc.getCanvas();
HtmlCanvas localCanvas = attributeCanvas.createLocalCanvas();
localCanvas.getPageContext().attributes = attributeCanvas.getPageContext().attributes;
try {
cc.getComponent().renderOn(localCanvas);
} catch (IOException e) {
return "RenderableAttributeRenderer-ERROR:" + e.getMessage();
}
return localCanvas.toHtml();
}
}