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,