package org.rendersnake.internal; import java.io.IOException; import org.rendersnake.HtmlCanvas; import org.rendersnake.PageContext; import org.rendersnake.Renderable; /** * SinkCanvas is a canvas that ignores all render operations. * * @author ernest micklei */ public class SinkCanvas extends HtmlCanvas { private HtmlCanvas parentCanvas; /** * @param parent */ public SinkCanvas(HtmlCanvas parent) { super(); this.parentCanvas = parent; // create new context for local changes to ignore this.getPageContext().attributes.push(); } public HtmlCanvas _if() throws IOException { // forget all changes made to the context this.getPageContext().attributes.pop(); return parentCanvas; } public PageContext getPageContext() { return parentCanvas.getPageContext(); } public String nextId() { return parentCanvas.nextId(); } public HtmlCanvas render(Renderable component) { return this; } /** * @return */ public HtmlCanvas _render_inside() { return this; } }