No, it's not the template. Actually as soon as you pass in SetField.runAction() 
(for widgets, similar for minilang) and have (for instance) fr as locale in 
your env, you are screwed: the decimals are lost.
That's why I changed things there.

Moreover this issue does not appear for points which comes directly from the DB 
and use the same path to the geoLocation.ftl template but no set field
For instance partymgr/control/PartyGeoLocation?partyId=DemoCustomer
or facility/control/EditFacilityGeoPoint?facilityId=WebStoreWarehouse

Jacques

On Thursday, January 02, 2014 1:08 PM adrian.c...@sandglass-software.com wrote
> That appears to be a problem in the template.
> 
> Adrian Crum
> Sandglass Software
> www.sandglass-software.com
> 
> On 1/2/2014 6:40 AM, Jacques Le Roux wrote:
>> I'm not quite sure to follow you. For isntance, currently if you change
>>   type="Float" locale="en"/>
>> for
>> />
>> in
>> <screen name="ExampleGeoLocationPointSet1">
>> 
>> You get an error in HtmlWidget.StringHtmlWrapperForFtl():
>> freemarker.core.NonNumericalException: point.lon is not a number, it is
>> org.ofbiz.widget.screen.HtmlWidget$StringHtmlWrapperForFtl 
>> 
>> Jacques
>> 
>> On Thursday, January 02, 2014 12:23 PM adrian.c...@sandglass-software.com 
>> wrote
>>> The String would be converted to a Float. What would be the issue?
>>> 
>>> Adrian Crum
>>> Sandglass Software
>>> www.sandglass-software.com
>>> 
>>> On 1/2/2014 6:12 AM, Jacques Le Roux wrote:
>>>> Though Adrian,
>>>> 
>>>> There is something which makes me wonder.
>>>> 
>>>> Suppose we were not in the geolocation context, and we want to set a Float 
>>>> value like it's done in
>>>> 
>>>> <screen name="ExampleGeoLocationPointSet1">
>>>> and
>>>> <simple-method method-name="editGeoLocation" short-description="Edit 
>>>> GeoLocation">
>>>> 
>>>> And we have a floating-point DB field
>>>> 
>>>> Won't we get the same issue?
>>>> 
>>>> Jacques
>>>> 
>>>> 
>>>> On Thursday, January 02, 2014 8:52 AM jacques.le.r...@les7arts.com wrote
>>>>> It's just a temporary hack I hastily commited last night, so as I was 
>>>>> unsure I preferred to be safe than sorry.
>>>>> Good to know that MethodContext is thread safe.
>>>>> 
>>>>> I have still to check but your new data model proposition sounds to me at 
>>>>> 1st glance.
>>>>> 
>>>>> Note that the current works well, even for i18n, as long as you only use 
>>>>> a direct relation with data.
>>>>> But if you use <set> to save your data in DB then the problem arises.. 
>>>>> That's why I got this way...
>>>>> 
>>>>> Jacques
>>>>> 
>>>>> On Thursday, January 02, 2014 1:39 AM adrian.c...@sandglass-software.com 
>>>>> wrote
>>>>>> There is no need to synchronize on the <set> element model - it is
>>>>>> thread-safe. The MethodContext instance is per-thread, so it doesn't
>>>>>> need synchronization either.
>>>>>> 
>>>>>> Please take some time to understand the architecture before committing
>>>>>> changes like this.
>>>>>> 
>>>>>> Adrian Crum
>>>>>> Sandglass Software
>>>>>> www.sandglass-software.com
>>>>>> 
>>>>>> On 1/1/2014 7:15 PM, jler...@apache.org wrote:
>>>>>>> Author: jleroux
>>>>>>> Date: Thu Jan  2 00:15:38 2014
>>>>>>> New Revision: 1554706
>>>>>>> 
>>>>>>> URL: http://svn.apache.org/r1554706
>>>>>>> Log:
>>>>>>> This is a temporary hack waiting for a better geolocation data model, 
>>>>>>> related with OFBIZ-5453
>>>>>>> 
>>>>>>> Modified:
>>>>>>>        
>>>>>>> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java
>>>>>>> 
>>>>>>> Modified: 
>>>>>>> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java
>>>>>>> URL:
>>>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java?rev=1554706&r1=1554705&r2=1554706&view=diff
>>>>>>> ==============================================================================
>>>>>>>  ---
>>>>>>> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java
>>>>>>>  (original) +++
>>>>>>> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java
>>>>>>>  Thu Jan  2 00:15:38 2014 @@ -144,10
>>>>>>>                     +144,17 @@ public final class SetOperation extends 
>>>>>>> Debug.logWarning(exc, "Error evaluating scriptlet ["
>>>>>>>                 + this.scriptlet + "]: " + exc, module); }
>>>>>>>             } else if (!this.fromFma.isEmpty()) {
>>>>>>> +            Locale localeTemp = null; // FIXME this is a temporary 
>>>>>>> hack waiting for a better geolocation data model,
>>>>>>>                 related with OFBIZ-5453 if (!this.localeFse.isEmpty() 
>>>>>>> && this.type.length() > 0) {
>>>>>>> -                methodContext.setLocale(new 
>>>>>>> Locale(this.localeFse.expandString(methodContext.getEnvMap())));
>>>>>>> +                localeTemp = methodContext.getLocale();
>>>>>>> +                synchronized (this) {
>>>>>>> +                    methodContext.setLocale(new 
>>>>>>> Locale(this.localeFse.expandString(methodContext.getEnvMap())));
>>>>>>> +                    newValue = 
>>>>>>> this.fromFma.get(methodContext.getEnvMap());
>>>>>>> +                    methodContext.setLocale(localeTemp);
>>>>>>> +                }
>>>>>>> +            } else {
>>>>>>> +                newValue = this.fromFma.get(methodContext.getEnvMap());
>>>>>>>                 }
>>>>>>> -            newValue = this.fromFma.get(methodContext.getEnvMap());
>>>>>>>                 if (Debug.verboseOn())
>>>>>>>                     Debug.logVerbose("In screen getting value for field 
>>>>>>> from [" + this.fromFma.toString() + "]: " +
>>>>>>>             newValue, module); } else if (!this.valueFse.isEmpty()) {

Reply via email to