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

nmalin pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git

commit 850a32df172a636c019c2549884d11d1fee58edf
Author: Nicolas Malin <nicolas.ma...@nereide.fr>
AuthorDate: Thu Feb 3 10:44:12 2022 +0100

    Reverted: Improved: no functional change, adds a BuildBot badge 
(INFRA-22807)
    
    This reverts commit 884864b07ffaa0c6eae79c52d2a37717f1aa5b1e that contains 
a revert error of 9ea7afe97af4e23a5b5694961cc482d653db08b7
---
 README.adoc                                        |   1 -
 .../ofbiz/widget/model/ModelFormFieldBuilder.java  | 107 ++++++++++++---------
 2 files changed, 61 insertions(+), 47 deletions(-)

diff --git a/README.adoc b/README.adoc
index 2d24417..d18f10d 100644
--- a/README.adoc
+++ b/README.adoc
@@ -22,7 +22,6 @@ The Apache OFBiz Project
 
 
image:https://img.shields.io/badge/License-Apache%202.0-blue.svg[link=http://www.apache.org/licenses/LICENSE-2.0]
 
image:https://img.shields.io/badge/Version-trunk-blue.svg[link=https://github.com/apache/ofbiz-framework]
-image:https://ci2.apache.org/badges/ofbizTrunkFrameworkPlugins.svg[link=https://ci2.apache.org/badges/ofbizTrunkFrameworkPlugins.svg]
 
image:https://github.com/apache/ofbiz-framework/actions/workflows/gradle.yaml/badge.svg?branch=trunk[link=https://github.com/apache/ofbiz-framework/actions/workflows/gradle.yaml]
 
image:https://sonarcloud.io/api/project_badges/measure?project=apache_ofbiz-framework&metric=alert_status[link=https://sonarcloud.io/dashboard?id=apache_ofbiz-framework]
 
image:https://github.com/apache/ofbiz-framework/actions/workflows/codeql-analysis.yml/badge.svg[link=https://github.com/apache/ofbiz-framework/actions/workflows/codeql-analysis.yml]
diff --git 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
index d01a8e6..cfbefab 100644
--- 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
+++ 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
@@ -20,10 +20,12 @@ package org.apache.ofbiz.widget.model;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.ofbiz.base.util.Debug;
+import org.apache.ofbiz.base.util.StringUtil;
 import org.apache.ofbiz.base.util.UtilMisc;
 import org.apache.ofbiz.base.util.UtilValidate;
 import org.apache.ofbiz.base.util.UtilXml;
@@ -852,55 +854,68 @@ public class ModelFormFieldBuilder {
         }
         this.serviceName = modelService.getName();
         this.attributeName = modelParam.getName();
-        if ("find".equals(defaultFieldType)) {
-            if (modelParam.getType().indexOf("Double") != -1 || 
modelParam.getType().indexOf("Float") != -1
-                    || modelParam.getType().indexOf("Long") != -1 || 
modelParam.getType().indexOf("Integer") != -1) {
-                ModelFormField.RangeFindField textField = new 
ModelFormField.RangeFindField(FieldInfo.SOURCE_AUTO_SERVICE, 6,
-                        null);
-                this.setFieldInfo(textField);
-            } else if (modelParam.getType().indexOf("Timestamp") != -1) {
-                ModelFormField.DateFindField dateTimeField = new 
ModelFormField.DateFindField(FieldInfo.SOURCE_AUTO_SERVICE,
-                        "timestamp");
-                this.setFieldInfo(dateTimeField);
-            } else if (modelParam.getType().indexOf("Date") != -1) {
-                ModelFormField.DateFindField dateTimeField = new 
ModelFormField.DateFindField(FieldInfo.SOURCE_AUTO_SERVICE,
-                        "date");
-                this.setFieldInfo(dateTimeField);
-            } else if (modelParam.getType().indexOf("Time") != -1) {
-                ModelFormField.DateFindField dateTimeField = new 
ModelFormField.DateFindField(FieldInfo.SOURCE_AUTO_SERVICE,
-                        "time");
-                this.setFieldInfo(dateTimeField);
-            } else {
-                ModelFormField.TextFindField textField = new 
ModelFormField.TextFindField(FieldInfo.SOURCE_AUTO_SERVICE, null);
-                this.setFieldInfo(textField);
+        String modelParamFieldType = 
computeFieldTypeToUse(modelParam.getType());
+        FieldInfo fieldInfo = null;
+        switch (defaultFieldType) {
+        case "display":
+            fieldInfo = new 
ModelFormField.DisplayField(FieldInfo.SOURCE_AUTO_SERVICE, null);
+            break;
+        case "hidden":
+            fieldInfo = new 
ModelFormField.HiddenField(FieldInfo.SOURCE_AUTO_SERVICE, null);
+            break;
+        case "find":
+            if ("text".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.TextFindField(FieldInfo.SOURCE_AUTO_SERVICE, null);
+            } else if ("numeric".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.RangeFindField(FieldInfo.SOURCE_AUTO_SERVICE, 6, null);
+            } else if ("timestamp".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.DateFindField(FieldInfo.SOURCE_AUTO_SERVICE, "timestamp");
+            } else if ("date".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.DateFindField(FieldInfo.SOURCE_AUTO_SERVICE, "date");
+            } else if ("time".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.DateFindField(FieldInfo.SOURCE_AUTO_SERVICE, "time");
             }
-        } else if ("display".equals(defaultFieldType)) {
-            ModelFormField.DisplayField displayField = new 
ModelFormField.DisplayField(FieldInfo.SOURCE_AUTO_SERVICE, null);
-            this.setFieldInfo(displayField);
-        } else {
-            // default to "edit"
-            if (modelParam.getType().indexOf("Double") != -1 || 
modelParam.getType().indexOf("Float") != -1
-                    || modelParam.getType().indexOf("Long") != -1 || 
modelParam.getType().indexOf("Integer") != -1) {
-                ModelFormField.TextField textField = new 
ModelFormField.TextField(FieldInfo.SOURCE_AUTO_SERVICE, 6, null, null);
-                this.setFieldInfo(textField);
-            } else if (modelParam.getType().indexOf("Timestamp") != -1) {
-                ModelFormField.DateTimeField dateTimeField = new 
ModelFormField.DateTimeField(FieldInfo.SOURCE_AUTO_SERVICE,
-                        "timestamp");
-                this.setFieldInfo(dateTimeField);
-            } else if (modelParam.getType().indexOf("Date") != -1) {
-                ModelFormField.DateTimeField dateTimeField = new 
ModelFormField.DateTimeField(FieldInfo.SOURCE_AUTO_SERVICE,
-                        "date");
-                this.setFieldInfo(dateTimeField);
-            } else if (modelParam.getType().indexOf("Time") != -1) {
-                ModelFormField.DateTimeField dateTimeField = new 
ModelFormField.DateTimeField(FieldInfo.SOURCE_AUTO_SERVICE,
-                        "time");
-                this.setFieldInfo(dateTimeField);
-            } else {
-                ModelFormField.TextField textField = new 
ModelFormField.TextField(FieldInfo.SOURCE_AUTO_SERVICE, null);
-                this.setFieldInfo(textField);
+            break;
+        default: // default to "edit"
+            if ("text".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.TextField(FieldInfo.SOURCE_AUTO_SERVICE, null);
+            } else if ("numeric".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.TextField(FieldInfo.SOURCE_AUTO_SERVICE, 6, null, null);
+            } else if ("timestamp".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.DateTimeField(FieldInfo.SOURCE_AUTO_SERVICE, "timestamp");
+            } else if ("date".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.DateTimeField(FieldInfo.SOURCE_AUTO_SERVICE, "date");
+            } else if ("time".equals(modelParamFieldType)) {
+                fieldInfo = new 
ModelFormField.DateTimeField(FieldInfo.SOURCE_AUTO_SERVICE, "time");
             }
         }
-        return true;
+        this.setFieldInfo(fieldInfo);
+        return fieldInfo != null;
+    }
+
+    /**
+     * For a service model parameter type, return the logique field type to use
+     * If nothing found, return text
+     * @param modelParamType
+     * @return
+     */
+    private String computeFieldTypeToUse(String modelParamType) {
+        final Map<String, String> switchType = Map.of("Double", "numeric",
+                "Float", "numeric",
+                "Long", "numeric",
+                "Integer", "numeric",
+                "BigDecimal", "numeric",
+                "Timestamp", "timestamp",
+                "Date", "date",
+                "Time", "time");
+        String typeToConvert = "";
+        if (modelParamType.contains(".")) {
+            LinkedList<String> splitString = new 
LinkedList<>(StringUtil.split(modelParamType, "."));
+            typeToConvert = splitString.getLast();
+        } else {
+            typeToConvert = modelParamType;
+        }
+        return switchType.containsKey(typeToConvert) ? 
switchType.get(typeToConvert) : "text";
     }
 
     private boolean induceFieldInfoFromServiceParam(String defaultFieldType, 
ModelReader entityModelReader,

Reply via email to