package org.rendersnake.tools;
import java.io.IOException;
import org.rendersnake.HtmlCanvas;
import org.rendersnake.Renderable;
import org.rendersnake.RenderableWrapper;
import org.rendersnake.error.RenderException;
import static org.rendersnake.HtmlAttributesFactory.*;
/**
* Inspector can display debugging information for a component.
*
* @author ernestmicklei
*
*/
public class Inspector extends RenderableWrapper {
public Renderable target;
public Inspector(Renderable toInspect) {
super(toInspect);
this.target = toInspect;
}
public static void renderCssOn(HtmlCanvas html) throws IOException {// @formatter:off
html
.style(type("text/css"))
.write(".rendersnake-inspector { border: 1px solid red }")
._style();
}
// @formatter:on
public void renderOn(HtmlCanvas html) throws IOException {// @formatter:off
// no need to inspect an exception
if (target instanceof RenderException) {
target.renderOn(html);
return;
}
html
.div(class_("rendersnake-inspector"))
.write(target.getClass().getName());
html.getPageContext().renderForInpectorOn(this,html);
target.renderOn(html);
html._div();
}
// @formatter:on
}