/*
@VaadinApache2LicenseForJavaFiles@
*/
package com.vaadin.terminal;
import com.vaadin.terminal.gwt.server.AbstractApplicationServlet;
/**
* UserError
is a controlled error occurred in application. User
* errors are occur in normal usage of the application and guide the user.
*
* @author Vaadin Ltd.
* @version
* @VERSION@
* @since 3.0
*/
@SuppressWarnings("serial")
public class UserError implements ErrorMessage {
public enum ContentMode {
/**
* Content mode, where the error contains only plain text.
*/
TEXT,
/**
* Content mode, where the error contains preformatted text.
*/
PREFORMATTED,
/**
* Formatted content mode, where the contents is XML restricted to the
* UIDL 1.0 formatting markups.
*/
UIDL,
/**
* Content mode, where the error contains XHTML.
*/
XHTML;
}
/**
* @deprecated from 7.0, use {@link ContentMode#TEXT} instead
*/
@Deprecated
public static final ContentMode CONTENT_TEXT = ContentMode.TEXT;
/**
* @deprecated from 7.0, use {@link ContentMode#PREFORMATTED} instead
*/
@Deprecated
public static final ContentMode CONTENT_PREFORMATTED = ContentMode.PREFORMATTED;
/**
* @deprecated from 7.0, use {@link ContentMode#UIDL} instead
*/
@Deprecated
public static final ContentMode CONTENT_UIDL = ContentMode.UIDL;
/**
* @deprecated from 7.0, use {@link ContentMode#XHTML} instead
*/
@Deprecated
public static final ContentMode CONTENT_XHTML = ContentMode.XHTML;
/**
* Content mode.
*/
private ContentMode mode = ContentMode.TEXT;
/**
* Message in content mode.
*/
private final String msg;
/**
* Error level.
*/
private ErrorLevel level = ErrorLevel.ERROR;
/**
* Creates a textual error message of level ERROR.
*
* @param textErrorMessage
* the text of the error message.
*/
public UserError(String textErrorMessage) {
msg = textErrorMessage;
}
public UserError(String message, ContentMode contentMode,
ErrorLevel errorLevel) {
msg = message;
mode = contentMode;
level = errorLevel;
}
/* Documented in interface */
public ErrorLevel getErrorLevel() {
return level;
}
/* Documented in interface */
public void addListener(RepaintRequestListener listener) {
}
/* Documented in interface */
public void removeListener(RepaintRequestListener listener) {
}
/* Documented in interface */
public void requestRepaint() {
}
/* Documented in interface */
public void paint(PaintTarget target) throws PaintException {
target.startTag("error");
target.addAttribute("level", level.getText());
// Paint the message
switch (mode) {
case TEXT:
target.addText(AbstractApplicationServlet.safeEscapeForHtml(msg));
break;
case UIDL:
target.addUIDL(msg);
break;
case PREFORMATTED:
target.addText("
" + AbstractApplicationServlet.safeEscapeForHtml(msg) + ""); break; case XHTML: target.addText(msg); break; } target.endTag("error"); } /* Documented in interface */ public void requestRepaintRequests() { } /* Documented in superclass */ @Override public String toString() { return msg; } public String getDebugId() { return null; } public void setDebugId(String id) { throw new UnsupportedOperationException( "Setting testing id for this Paintable is not implemented"); } }