package pt.ist.vaadinframework.terminal; import pt.ist.bennu.core.domain.exceptions.DomainException; import com.vaadin.data.Buffered; import com.vaadin.data.Buffered.SourceException; import com.vaadin.terminal.ErrorMessage; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; public class DomainExceptionErrorMessage extends SourceException { public DomainExceptionErrorMessage(Buffered source, DomainException cause) { super(source, cause); } /** * @see com.vaadin.terminal.ErrorMessage#getErrorLevel() */ @Override public final int getErrorLevel() { return ErrorMessage.ERROR; } /** * @see com.vaadin.terminal.Paintable#paint(com.vaadin.terminal.PaintTarget) */ @Override public void paint(PaintTarget target) throws PaintException { target.startTag("error"); target.addAttribute("level", "error"); StringBuilder sb = new StringBuilder(); final String message = getCause().getLocalizedMessage(); if (message != null) { sb.append("<p>"); sb.append(message); sb.append("</p>"); } target.addXMLSection("div", sb.toString(), "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"); target.endTag("error"); } }