This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch maintenance-branch
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/maintenance-branch by this 
push:
     new 5eb3e2a768 CAUSEWAY-3804: updates value semantics for big decimal
     new e21c783b3b Merge branch 'CAUSEWAY-3804' into maintenance-branch
5eb3e2a768 is described below

commit 5eb3e2a76818cfe1aa517f441df01b81dc9dd017
Author: Dan Haywood <[email protected]>
AuthorDate: Tue Jul 16 11:16:30 2024 +0100

    CAUSEWAY-3804: updates value semantics for big decimal
    
    to take notice of relevant config param when rendering value for parsing 
(editing)
---
 .../metamodel/valuesemantics/BigDecimalValueSemantics.java  | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
index 47c7d137cf..90855c3fdb 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
@@ -49,6 +49,8 @@ import lombok.NonNull;
 import lombok.Setter;
 import lombok.val;
 
+import static 
org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract.FormatUsageFor.PARSING;
+
 @Component
 @Named("causeway.metamodel.value.BigDecimalValueSemantics")
 @Priority(PriorityPrecedence.LATE)
@@ -123,7 +125,7 @@ implements
     public String parseableTextRepresentation(final 
ValueSemanticsProvider.Context context, final BigDecimal value) {
         return value==null
                 ? null
-                : getNumberFormat(context)
+                : getNumberFormat(context, PARSING)
                     .format(value);
     }
 
@@ -149,7 +151,12 @@ implements
     protected void configureDecimalFormat(
             final Context context, final DecimalFormat format, final 
FormatUsageFor usedFor) {
 
-        
format.setGroupingUsed(causewayConfiguration.getValueTypes().getBigDecimal().getDisplay().isUseGroupingSeparator());
+        val bigDecimalConfig = 
causewayConfiguration.getValueTypes().getBigDecimal();
+        format.setGroupingUsed(
+                usedFor == PARSING
+                    ? bigDecimalConfig.getEditing().isUseGroupingSeparator()
+                    : bigDecimalConfig.getDisplay().isUseGroupingSeparator()
+        );
 
         if(context==null) {
             return;
@@ -176,7 +183,7 @@ implements
                 format.setMinimumFractionDigits(optionalInt.getAsInt());
             } else {
                 // otherwise, apply a minScale if configured.
-                
minScaleFrom(causewayConfiguration.getValueTypes().getBigDecimal())
+                minScaleFrom(bigDecimalConfig)
                         .ifPresent(format::setMinimumFractionDigits);
             }
         }

Reply via email to