|
From: <tri...@us...> - 2007-11-14 08:17:57
|
Revision: 151
http://equanda.svn.sourceforge.net/equanda/?rev=151&view=rev
Author: triathlon98
Date: 2007-11-14 00:17:56 -0800 (Wed, 14 Nov 2007)
Log Message:
-----------
EQ-81 DoubleTranslator which allows both comma and dot as decimal seperator
Modified Paths:
--------------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java
Added Paths:
-----------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/translators/
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/translators/DoubleTranslator.java
Modified: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java 2007-11-13 17:09:35 UTC (rev 150)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java 2007-11-14 08:17:56 UTC (rev 151)
@@ -24,8 +24,11 @@
package org.equanda.tapestry5.services;
+import org.apache.tapestry.Translator;
import org.apache.tapestry.ioc.Configuration;
+import org.apache.tapestry.ioc.MappedConfiguration;
import org.apache.tapestry.services.LibraryMapping;
+import org.equanda.tapestry5.translators.DoubleTranslator;
/**
* Module definition
@@ -38,4 +41,18 @@
{
configuration.add( new LibraryMapping( "equanda", "org.equanda.tapestry5" ) );
}
+
+ /**
+ * Contributes the following translators:
+ * <ul>
+ * <li>Double : which allows both both and comma as decimal seperator</li>
+ * </ul>
+ *
+ * @param configuration configuration to add to
+ */
+ public static void contributeTranslatorDefaultSource( MappedConfiguration<Class, Translator> configuration)
+ {
+ configuration.add(Double.class, new DoubleTranslator());
+ }
+
}
Added: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/translators/DoubleTranslator.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/translators/DoubleTranslator.java (rev 0)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/translators/DoubleTranslator.java 2007-11-14 08:17:56 UTC (rev 151)
@@ -0,0 +1,51 @@
+// Copyright 2007 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.equanda.tapestry5.translators;
+
+import org.apache.tapestry.Translator;
+import org.apache.tapestry.ValidationException;
+import org.apache.tapestry.ioc.Messages;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
+
+public class DoubleTranslator implements Translator<Double>
+{
+ /**
+ * Parses blank values to null, otherwise parses the client value to a double
+ *
+ * @throws ValidationException if the clientValue can not be parsed
+ */
+ public Double parseClient(String clientValue, Messages messages) throws ValidationException
+ {
+ if (InternalUtils.isBlank(clientValue))
+ return null;
+
+ try
+ {
+ return new Double(clientValue.replace(',','.').trim());
+ }
+ catch (NumberFormatException ex)
+ {
+ throw new ValidationException(messages.format("number-format-exception", clientValue));
+ }
+ }
+
+ /**
+ * Converts null to the blank string, non-null to a string representation.
+ */
+ public String toClient(Double value)
+ {
+ return value == null ? "" : value.toString();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|