You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by ma...@apache.org on 2006/11/17 16:31:02 UTC
svn commit: r476200 - in
/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main:
java/org/apache/myfaces/trinidadinternal/validator/
javascript/META-INF/adf/jsLibs/
Author: matzew
Date: Fri Nov 17 08:31:01 2006
New Revision: 476200
URL: http://svn.apache.org/viewvc?view=rev&rev=476200
Log:
refactor client side converter/validator to lookup messagesKeys and not using constructor (ADFFACES-155)
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/ByteLengthValidator.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/RegExpValidator.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CharSets.js
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/ByteLengthValidator.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/ByteLengthValidator.java?view=diff&rev=476200&r1=476199&r2=476200
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/ByteLengthValidator.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/ByteLengthValidator.java Fri Nov 17 08:31:01 2006
@@ -23,11 +23,14 @@
import java.util.HashSet;
import java.util.Set;
+import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
+import org.apache.myfaces.trinidad.util.MessageFactory;
import org.apache.myfaces.trinidad.validator.ClientValidator;
+import org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.XhtmlLafUtils;
/**
* <p>Enables byte length validation at the client side. </p>
@@ -103,9 +106,10 @@
}
String maxLength = String.valueOf(getMaximum());
-
constr.append(maxLength);
-
+
+ _applyCustomMessage(context, constr, maxLength);
+
constr.append(")");
return constr.toString();
@@ -130,6 +134,29 @@
default:
return null;
}
+ }
+
+ private void _applyCustomMessage(FacesContext context, StringBuffer constr, String maxLength)
+ {
+ String maxMsgDetail = getMessageDetailMaximum();
+ if(maxMsgDetail != null)
+ {
+ String label = "{0}"; // this will get substituted on the client
+ Object[] params = new Object[] {label, "{1}", maxLength};
+ FacesMessage msg = MessageFactory.getMessage(context,
+ ByteLengthValidator.MAXIMUM_MESSAGE_ID,
+ maxMsgDetail,
+ params);
+
+ constr.append(",'");
+ constr.append(XhtmlLafUtils.escapeJS(msg.getSummary()));
+ constr.append("','");
+ constr.append(XhtmlLafUtils.escapeJS(msg.getDetail()));
+ constr.append("'");
+
+ }
+
+
}
static private int _getType(String encoding)
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/RegExpValidator.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/RegExpValidator.java?view=diff&rev=476200&r1=476199&r2=476200
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/RegExpValidator.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/RegExpValidator.java Fri Nov 17 08:31:01 2006
@@ -18,9 +18,11 @@
import java.util.Collection;
import java.util.Collections;
+import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import org.apache.myfaces.trinidad.util.MessageFactory;
import org.apache.myfaces.trinidad.validator.ClientValidator;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlUtils;
@@ -64,11 +66,34 @@
StringBuffer outBuffer = new StringBuffer(22
+ jsPattern.length());
- outBuffer.append("new TrRegExpValidator("); // 21
+ outBuffer.append("new TrRegExpValidator('"); // 21
outBuffer.append(jsPattern);
- outBuffer.append(")"); // 1
+ _applyCustomMessage(context, outBuffer);
+ outBuffer.append("')"); // 1
return outBuffer.toString();
+ }
+
+ private void _applyCustomMessage(FacesContext context, StringBuffer outBuffer)
+ {
+ String noMatchMsg = getMessageDetailNoMatch();
+ if(noMatchMsg != null)
+ {
+ Object[] params = new Object[] {"{0}", "{1}", "{2}"};
+
+ FacesMessage message = MessageFactory.getMessage(context,
+ RegExpValidator.NO_MATCH_MESSAGE_ID,
+ noMatchMsg,
+ params);
+ String esNoMatchMsgPattern = XhtmlUtils.escapeJS(message.getDetail());
+ String esNoMatchMsgSummaryPattern =
+ XhtmlUtils.escapeJS(message.getSummary());
+ outBuffer.append("','"); // 7
+ outBuffer.append(esNoMatchMsgSummaryPattern);
+ outBuffer.append("','"); // 7
+ outBuffer.append(esNoMatchMsgPattern);
+ }
+
}
public Collection<String> getClientImportNames()
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CharSets.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CharSets.js?view=diff&rev=476200&r1=476199&r2=476200
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CharSets.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CharSets.js Fri Nov 17 08:31:01 2006
@@ -15,21 +15,27 @@
*/
function TrByteLengthValidator(
- length
+ length,
+ summary,
+ detail
)
{
this._length = length;
+ this._summary = summary;
+ this._detail = detail;
this._class = "TrByteLengthValidator";
}
TrByteLengthValidator.prototype = new TrValidator();
function CjkFormat(
- length
+ length,
+ summary,
+ detail
)
{
this._base = TrByteLengthValidator;
- this._base(length);
+ this._base(length, summary,detail);
this._class = "CjkFormat";
}
@@ -51,9 +57,20 @@
if (length < 0)
{
- var facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM",
- label,
- parseString);
+ var facesMessage;
+ if(this._summary == undefined)
+ {
+ facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM",
+ label,
+ parseString);
+ }
+ else
+ {
+ facesMessage = _createCustomFacesMessage(this._summary,
+ this._detail,
+ label,
+ parseString);
+ }
throw new TrValidatorException(facesMessage);
}
@@ -67,11 +84,13 @@
function Utf8Format(
- length
+ length,
+ summary,
+ detail
)
{
this._base = TrByteLengthValidator;
- this._base(length);
+ this._base(length, summary,detail);
this._class = "Utf8Format";
}
@@ -101,9 +120,20 @@
if (length < 0)
{
- var facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM",
- label,
- parseString);
+ var facesMessage;
+ if(this._summary == undefined)
+ {
+ facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM",
+ label,
+ parseString);
+ }
+ else
+ {
+ facesMessage = _createCustomFacesMessage(this._summary,
+ this._detail,
+ label,
+ parseString);
+ }
throw new TrValidatorException(facesMessage);
}
@@ -114,11 +144,13 @@
}
function SBFormat(
- length
+ length,
+ summary,
+ detail
)
{
this._base = TrByteLengthValidator;
- this._base(length);
+ this._base(length, summary,detail);
this._class = "SBFormat";
}
@@ -132,9 +164,20 @@
{
if (this._length < parseString.length)
{
- var facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM",
- label,
- parseString);
+ var facesMessage;
+ if(this._summary == undefined)
+ {
+ facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM",
+ label,
+ parseString);
+ }
+ else
+ {
+ facesMessage = _createCustomFacesMessage(this._summary,
+ this._detail,
+ label,
+ parseString);
+ }
throw new TrValidatorException(facesMessage);
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js?view=diff&rev=476200&r1=476199&r2=476200
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js Fri Nov 17 08:31:01 2006
@@ -567,10 +567,14 @@
}
function TrRegExpValidator(
- pattern
+ pattern,
+ summary,
+ detail
)
{
this._pattern = pattern;
+ this._summary = summary;
+ this._detail = detail;
this._class = "TrRegExpValidator";
}
@@ -591,11 +595,23 @@
return parseString;
}
else
- {
- var facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.RegExpValidator.NO_MATCH",
- label,
- parseString,
- this._pattern);
+ {
+ var facesMessage;
+ if(this._summary == undefined)
+ {
+ facesMessage = _createFacesMessage( "org.apache.myfaces.trinidad.validator.RegExpValidator.NO_MATCH",
+ label,
+ parseString,
+ this._pattern);
+ }
+ else
+ {
+ facesMessage = _createCustomFacesMessage(this._summary,
+ this._detail,
+ label,
+ parseString,
+ this._pattern);
+ }
throw new TrValidatorException(facesMessage);
}
}