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/12/14 12:43:54 UTC

svn commit: r487194 - in /incubator/adffaces/trunk/trinidad/trinidad-impl/src/main: java/org/apache/myfaces/trinidadinternal/validator/ javascript/META-INF/adf/jsLibs/

Author: matzew
Date: Thu Dec 14 04:43:53 2006
New Revision: 487194

URL: http://svn.apache.org/viewvc?view=rev&rev=487194
Log:
some js improvements (dateRestriction better performance);
added hook for hints from converters/validators

Modified:
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateRestrictionValidator.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/ColorFormat.js
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Locale.js

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateRestrictionValidator.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateRestrictionValidator.java?view=diff&rev=487194&r1=487193&r2=487194
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateRestrictionValidator.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateRestrictionValidator.java Thu Dec 14 04:43:53 2006
@@ -16,16 +16,13 @@
 */
 
 import java.io.IOException;
-import java.util.Calendar;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
 
-import javax.faces.validator.ValidatorException;
-import javax.faces.context.FacesContext;
 import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.ValidatorException;
 
 import org.apache.myfaces.trinidad.validator.ClientValidator;
 import org.apache.myfaces.trinidadinternal.convert.GenericConverterFactory;
@@ -41,7 +38,6 @@
   public DateRestrictionValidator()
   {
     super();
-    _initJsDateMap();
   }
 
   @Override
@@ -125,56 +121,11 @@
     outBuffer.append(weekdaysValues);
     outBuffer.append(',');
     outBuffer.append(monthValues);
-    outBuffer.append(',');
-    outBuffer.append(_getMapAsJson(_jsWeekDays));
-    outBuffer.append(',');
-    outBuffer.append(_getMapAsJson(_jsMonths));
     outBuffer.append(")");
 
     return outBuffer.toString();
   }
   
-  private static String _getMapAsJson(Map map)
-  {
-    StringBuilder sb = new StringBuilder();
-    try
-    {
-      JsonUtils.writeMap(sb, map, false);
-    }
-    catch (IOException e)
-    {
-      sb.append("null");
-    }
-    return sb.toString();
-  }
-  
-  private void _initJsDateMap()
-  {
-    _jsWeekDays = new HashMap<Integer, String>();
-    _jsWeekDays.put(Calendar.SUNDAY-1, "sun");
-    _jsWeekDays.put(Calendar.MONDAY-1, "mon");
-    _jsWeekDays.put(Calendar.TUESDAY-1, "tue");
-    _jsWeekDays.put(Calendar.WEDNESDAY-1, "wed");
-    _jsWeekDays.put(Calendar.THURSDAY-1, "thu");
-    _jsWeekDays.put(Calendar.FRIDAY-1, "fri");
-    _jsWeekDays.put(Calendar.SATURDAY-1, "sat");
-    
-    _jsMonths = new HashMap<Integer, String>();
-    _jsMonths.put(Calendar.JANUARY, "jan");
-    _jsMonths.put(Calendar.FEBRUARY, "feb");
-    _jsMonths.put(Calendar.MARCH, "mar");
-    _jsMonths.put(Calendar.APRIL, "apr");
-    _jsMonths.put(Calendar.MAY, "may");
-    _jsMonths.put(Calendar.JUNE, "jun");
-    _jsMonths.put(Calendar.JULY, "jul");
-    _jsMonths.put(Calendar.AUGUST, "aug");
-    _jsMonths.put(Calendar.SEPTEMBER, "sep");
-    _jsMonths.put(Calendar.OCTOBER, "oct");
-    _jsMonths.put(Calendar.NOVEMBER, "nov");
-    _jsMonths.put(Calendar.DECEMBER, "dec");
-  }
   
   private static final Collection<String> _IMPORT_NAMES = Collections.singletonList( "TrNumberConverter()" );
-  private static Map<Integer, String> _jsMonths = null;
-  private static Map<Integer, String> _jsWeekDays = null;
 }

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=487194&r1=487193&r2=487194
==============================================================================
--- 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 Thu Dec 14 04:43:53 2006
@@ -41,6 +41,17 @@
 }
 
 CjkFormat.prototype = new TrByteLengthValidator();
+CjkFormat.prototype.getHints = function(
+  converter
+  )
+{
+  var messages = new Array();
+  messages.push(TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM_HINT",
+	  this._length)
+	);
+	return messages;
+}
 CjkFormat.prototype.validate  = function(
   parseString,
   label,
@@ -97,6 +108,17 @@
 
 
 Utf8Format.prototype = new TrByteLengthValidator();
+Utf8Format.prototype.getHints = function(
+  converter
+  )
+{
+  var messages = new Array();
+  messages.push(TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM_HINT",
+	  this._length)
+	);
+	return messages;
+}
 Utf8Format.prototype.validate  = function(
   parseString,
   label,
@@ -159,6 +181,17 @@
 
 
 SBFormat.prototype = new TrByteLengthValidator();
+SBFormat.prototype.getHints = function(
+  converter
+  )
+{
+  var messages = new Array();
+  messages.push(TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.validator.ByteLengthValidator.MAXIMUM_HINT",
+	  this._length)
+	);
+	return messages;
+}
 SBFormat.prototype.validate  = function(
   parseString,
   label,

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/ColorFormat.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/ColorFormat.js?view=diff&rev=487194&r1=487193&r2=487194
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/ColorFormat.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/ColorFormat.js Thu Dec 14 04:43:53 2006
@@ -41,6 +41,13 @@
 }
 
 TrColorConverter.prototype = new TrConverter();
+
+TrColorConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.ColorConverter.FORMAT_HINT",
+	  this._pattern);
+}
 TrColorConverter.prototype.getAsString = function(
   formatColor)
 {

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=487194&r1=487193&r2=487194
==============================================================================
--- 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 Thu Dec 14 04:43:53 2006
@@ -33,6 +33,12 @@
 
 TrIntegerConverter.prototype = new TrConverter();
 
+TrIntegerConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.IntegerConverter.FORMAT_HINT",
+	  null);
+}
 
 TrIntegerConverter.prototype.getAsString = function(
   number,
@@ -75,6 +81,12 @@
 
 TrLongConverter.prototype = new TrConverter();
 
+TrLongConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.LongConverter.FORMAT_HINT",
+	  null);
+}
 
 TrLongConverter.prototype.getAsString = function(
   number,
@@ -117,6 +129,12 @@
 
 TrShortConverter.prototype = new TrConverter();
 
+TrShortConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.ShortConverter.FORMAT_HINT",
+	  null);
+}
 
 TrShortConverter.prototype.getAsString = function(
   number,
@@ -159,6 +177,12 @@
 
 TrByteConverter.prototype = new TrConverter();
 
+TrByteConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.ByteConverter.FORMAT_HINT",
+	  null);
+}
 
 TrByteConverter.prototype.getAsString = function(
   number,
@@ -202,6 +226,12 @@
 
 TrDoubleConverter.prototype = new TrConverter();
 
+TrDoubleConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.DoubleConverter.FORMAT_HINT",
+	  null);
+}
 
 TrDoubleConverter.prototype.getAsString = function(
   number,
@@ -244,6 +274,13 @@
 
 TrFloatConverter.prototype = new TrConverter();
 
+TrFloatConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.FloatConverter.FORMAT_HINT",
+	  null);
+}
+
 TrFloatConverter.prototype.getAsString = function(
   number,
   label
@@ -280,6 +317,24 @@
 }
 
 TrRangeValidator.prototype = new TrValidator();
+TrRangeValidator.prototype.getHints = function(
+  converter
+  )
+{
+	var hints = new Array();
+	hints.push(
+  	TrMessageFactory.createMessage(
+      "org.apache.myfaces.trinidad.validator.RangeValidator.MAXIMUM_HINT",
+	    ""+this._maxValue)
+   );
+	hints.push(
+  	TrMessageFactory.createMessage(
+      "org.apache.myfaces.trinidad.validator.RangeValidator.MINIMUM_HINT",
+	    ""+this._minValue)
+   );
+
+  return hints;
+}
 TrRangeValidator.prototype.validate  = function(
   value,
   label,
@@ -327,6 +382,17 @@
 }
 
 TrLengthValidator.prototype = new TrValidator();
+TrLengthValidator.prototype.getHints = function(
+  converter
+  )
+{
+  return _returnHints(
+    this._maxValue,
+    this._minValue,
+    "org.apache.myfaces.trinidad.validator.LengthValidator.MAXIMUM_HINT",
+    "org.apache.myfaces.trinidad.validator.LengthValidator.MINIMUM_HINT"
+  );
+}
 TrLengthValidator.prototype.validate  = function(
   value,
   label,
@@ -365,6 +431,17 @@
 }
 
 TrDateTimeRangeValidator.prototype = new TrValidator();
+TrDateTimeRangeValidator.prototype.getHints = function(
+  converter
+  )
+{
+  return _returnHints(
+    converter.getAsString(new Date(this._maxValue)),
+    converter.getAsString(new Date(this._minValue)),
+    "org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.MAXIMUM_HINT",
+    "org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.MINIMUM_HINT"
+  );
+}
 TrDateTimeRangeValidator.prototype.validate  = function(
   value,
   label,
@@ -393,20 +470,29 @@
 
 function TrDateRestrictionValidator(
   weekdaysValue,
-  monthValue,
-  weekdaysMap,
-  monthMap)
+  monthValue)
 {
   this._weekdaysValue = weekdaysValue;
   this._monthValue = monthValue;
-  this._weekdaysMap = weekdaysMap;
-  this._monthMap = monthMap;
+  this._weekdaysMap = {'2':'tue','4':'thu','6':'sat','1':'mon','3':'wed','5':'fri','0':'sun'};
+  this._monthMap = {'2':'mar','4':'may','9':'oct','8':'sep','11':'dec','6':'jul','1':'feb','3':'apr','10':'nov','7':'aug','5':'jun','0':'jan'};
 
   // for debugging
   this._class = "TrDateRestrictionValidator";
 }
 
 TrDateRestrictionValidator.prototype = new TrValidator();
+TrDateRestrictionValidator.prototype.getHints = function(
+  converter
+  )
+{
+  return _returnHints(
+    this._weekdaysValue,
+    this._monthValue,
+    "org.apache.myfaces.trinidad.validator.DateRestrictionValidator.WEEKDAY_HINT",
+    "org.apache.myfaces.trinidad.validator.DateRestrictionValidator.MONTH_HINT"
+  );
+}
 TrDateRestrictionValidator.prototype.validate  = function(
   value,
   label,
@@ -424,7 +510,7 @@
   		{
         facesMessage = _createFacesMessage("org.apache.myfaces.trinidad.validator.DateRestrictionValidator.WEEKDAY",
                                         label,
-                                        ""+value,
+                                        ""+converter.getAsString(value),
                                         dayString);
         throw new TrConverterException(facesMessage);
   		}
@@ -442,7 +528,7 @@
   		{
         facesMessage = _createFacesMessage("org.apache.myfaces.trinidad.validator.DateRestrictionValidator.MONTH",
                                         label,
-                                        ""+value,
+                                        ""+converter.getAsString(value),
                                         monthString);
         throw new TrConverterException(facesMessage);
   		}
@@ -584,6 +670,17 @@
 }
 
 TrRegExpValidator.prototype = new TrValidator();
+TrRegExpValidator.prototype.getHints = function(
+  converter
+  )
+{
+  var hints = new Array();
+  hints.push(TrMessageFactory.createMessage(
+      "org.apache.myfaces.trinidad.validator.RegExpValidator.NO_MATCH_HINT",
+      ""+this._pattern)
+  );
+  return hints;
+}
 TrRegExpValidator.prototype.validate  = function(
   parseString,
   label,
@@ -620,4 +717,36 @@
     }
     throw new TrValidatorException(facesMessage); 
   }
+}
+
+function _returnHints(
+  max,
+  min,
+  maxKey,
+  minKey
+)
+{
+  var hints = null;
+  if(max)
+  {
+    hints = new Array();
+    hints.push(
+      TrMessageFactory.createMessage(
+        maxKey,
+	      ""+max)
+	  );
+  }
+  if(min)
+  {
+    if(!hints)
+    {
+      hints = new Array();
+    }
+    hints.push(
+      TrMessageFactory.createMessage(
+        minKey,
+	      ""+min)
+     );
+  }
+  return hints;
 }

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js?view=diff&rev=487194&r1=487193&r2=487194
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js Thu Dec 14 04:43:53 2006
@@ -1049,6 +1049,14 @@
 }
 
 TrDateTimeConverter.prototype = new TrConverter();
+
+TrDateTimeConverter.prototype.getFormatHint = function()
+{
+	return TrMessageFactory.createMessage(
+    "org.apache.myfaces.trinidad.convert.DateTimeConverter.FORMAT_HINT",
+    this._pattern);
+}
+
 TrDateTimeConverter.prototype.getAsString = function(
   formatTime
   )

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Locale.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Locale.js?view=diff&rev=487194&r1=487193&r2=487194
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Locale.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Locale.js Thu Dec 14 04:43:53 2006
@@ -549,6 +549,46 @@
 LocaleSymbols.prototype.getLocaleElements = _getLocaleElements;
 
 /**
+ * ConverterHint "interface" for a client side TrConverter instance.
+ * The ConverterHint "interface" is for guiding a user on the desired format to ensure
+ * that no converter exceptions are thrown.
+ *
+ */
+function TrConverterHint()
+{
+  // for debugging
+  this._class = "TrConverterHint";
+}
+
+/**
+ * Returns a hint for the used converter, which format is
+ * expected by the ui component.
+ */
+TrConverterHint.prototype.getFormatHint = function(){}
+
+/**
+ * ValidatorHint "interface" for a client side TrValidator instance.
+ * The ValidatorHint "interface" is to guide a user when entering a
+ * value to an input component, to ensure that no validator exceptions is thrown.
+ */
+function TrValidatorHint()
+{
+  // for debugging
+  this._class = "TrValidatorHint";
+}
+
+/**
+ * Since an implementation of this "interface" can have multiple
+ * hints available, we return all available hint messages in an JavaScript Array.
+ * 
+ * @param converter converter is passed to this method, because sometimes a default converter is used
+ * and the validator, implementing this interface, shouldn't need to figure out
+ * anything about that
+ */
+TrConverterHint.prototype.getHints = function(converter){}
+
+
+/**
  * Converter "interface" similar to javax.faces.convert.Converter,
  * except that all relevant information must be passed to the constructor
  * as the context and component are not passed to the getAsString or getAsObject method 
@@ -852,4 +892,29 @@
     
   // TODO should I be doing string concat here, or have a map of key -> detailKey?
   return TrMessageFactory._TRANSLATIONS[key+"_detail"];
+}
+
+TrMessageFactory.getString = function(
+  key
+  )
+{
+  return TrMessageFactory.getSummaryString(key);
+}
+
+TrMessageFactory.createMessage = function(
+  key,
+  parameters
+  )
+{  
+  // the strings to create a facesMessage to use have been sent down
+  var message = TrMessageFactory.getSummaryString(key);       
+  if ( message != null )
+  {
+    if ( parameters != null )
+    {
+      message = TrFastMessageFormatUtils.format(message,parameters);
+    }
+  }
+    
+  return message;
 }