/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.core.wikitext.editor;
import org.jboss.seam.ui.validator.FormattedTextValidator;
import org.jboss.seam.text.SeamTextParser;
import antlr.SemanticException;
import antlr.Token;
/**
* Disables the Seam Text validation for link tags, so wiki links are OK.
* <p>
* Also provides some conversion to i18n error messages.
* </p>
*
* TODO: Finish the i18n and well, maybe we should just duplicate the
* Seam validator here to drop that dependency on the UI package...
*
* @author Christian Bauer
*/
public class WikiFormattedTextValidator extends FormattedTextValidator {
public SeamTextParser getSeamTextParser(String s) {
SeamTextParser parser = super.getSeamTextParser(s);
parser.setSanitizer(
new SeamTextParser.DefaultSanitizer() {
// Disable this method
public void validateLinkTagURI(Token token, String s) throws SemanticException {}
@Override
public String getInvalidURIMessage(String s) {
return super.getInvalidURIMessage(s);
}
@Override
public String getInvalidElementMessage(String s) {
return super.getInvalidElementMessage(s);
}
@Override
public String getInvalidAttributeMessage(String s, String s1) {
return super.getInvalidAttributeMessage(s, s1);
}
@Override
public String getInvalidAttributeValueMessage(String s, String s1, String s2) {
return super.getInvalidAttributeValueMessage(s, s1, s2);
}
}
);
return parser;
}
@Override
public String getNoViableAltErrorMessage(String s, String s1) {
return super.getNoViableAltErrorMessage(s, s1);
}
@Override
public String getMismatchedTokenErrorMessage(String s, String s1) {
return super.getMismatchedTokenErrorMessage(s, s1);
}
@Override
public String getSemanticErrorMessage(String s) {
return super.getSemanticErrorMessage(s);
}
@Override
public int getNumberOfCharsBeforeErrorLocation() {
return 20;
}
@Override
public int getNumberOfCharsAfterErrorLocation() {
return 20;
}
}