You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mr...@apache.org on 2026/10/04 08:42:05 UTC
(ofbiz-framework) branch trunk updated: Improved: Keep the area id and target of the update areas of forms as expressions (OFBIZ-13644)
This is an automated email from the ASF dual-hosted git repository.
mridulpathak pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push:
new a6bee73947 Improved: Keep the area id and target of the update areas of forms as expressions (OFBIZ-13644)
a6bee73947 is described below
commit a6bee739473261da9e4f7b70c9b4630ca9afecd3
Author: Mridul Pathak <mr...@gmail.com>
AuthorDate: Sun Oct 4 13:49:29 2026 +0530
Improved: Keep the area id and target of the update areas of forms as expressions (OFBIZ-13644)
ModelForm.UpdateArea kept the area id and the target as strings, with a flag, added by OFBIZ-13642 and OFBIZ-13643, that told the getters whether to evaluate them or to take them literally.
They are now FlexibleStringExpander objects: created with getInstance for what is defined in the widgets, so that they are parsed once, and with getLiteral for the values that are already evaluated, so that they are never parsed. The getters that take a context return the evaluated value, and the ones that do not return the original text. The UpdateArea.literal factories and their callers are unchanged.
---
.../org/apache/ofbiz/widget/model/ModelForm.java | 45 +++++++++++-----------
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
index 0932688789..8333d4c032 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
@@ -428,7 +428,7 @@ public abstract class ModelForm extends ModelWidget {
if ("paginate".equals(updateArea.getEventType())) {
int index = onPaginateUpdateAreas.indexOf(updateArea);
if (index != -1) {
- if (!updateArea.areaTarget.isEmpty()) {
+ if (!updateArea.getAreaTarget().isEmpty()) {
onPaginateUpdateAreas.set(index, updateArea);
} else {
// blank target indicates a removing override
@@ -447,7 +447,7 @@ public abstract class ModelForm extends ModelWidget {
} else if ("sort-column".equals(updateArea.getEventType())) {
int index = onSortColumnUpdateAreas.indexOf(updateArea);
if (index != -1) {
- if (!updateArea.areaTarget.isEmpty()) {
+ if (!updateArea.getAreaTarget().isEmpty()) {
onSortColumnUpdateAreas.set(index, updateArea);
} else {
// blank target indicates a removing override
@@ -2287,10 +2287,8 @@ public abstract class ModelForm extends ModelWidget {
*/
public static class UpdateArea {
private final String eventType;
- private final String areaId;
- private final String areaTarget;
- // true when the area id and the target are already evaluated values, which must not be evaluated again
- private final boolean literal;
+ private final FlexibleStringExpander areaIdExdr;
+ private final FlexibleStringExpander areaTargetExdr;
private final String defaultServiceName;
private final String defaultEntityName;
private final CommonWidgetModels.AutoEntityParameters autoEntityParameters;
@@ -2307,9 +2305,8 @@ public abstract class ModelForm extends ModelWidget {
*/
public UpdateArea(Element updateAreaElement, String defaultServiceName, String defaultEntityName) {
this.eventType = updateAreaElement.getAttribute("event-type");
- this.areaId = updateAreaElement.getAttribute("area-id");
- this.areaTarget = updateAreaElement.getAttribute("area-target");
- this.literal = false;
+ this.areaIdExdr = FlexibleStringExpander.getInstance(updateAreaElement.getAttribute("area-id"));
+ this.areaTargetExdr = FlexibleStringExpander.getInstance(updateAreaElement.getAttribute("area-target"));
this.defaultServiceName = defaultServiceName;
this.defaultEntityName = defaultEntityName;
List<? extends Element> parameterElementList = UtilXml.childElementList(updateAreaElement, "parameter");
@@ -2355,7 +2352,8 @@ public abstract class ModelForm extends ModelWidget {
* @param areaTarget The target URL called to update the area
*/
public UpdateArea(String eventType, String areaId, String areaTarget) {
- this(eventType, areaId, areaTarget, Collections.emptyList(), false);
+ this(eventType, FlexibleStringExpander.getInstance(areaId), FlexibleStringExpander.getInstance(areaTarget),
+ Collections.emptyList());
}
/** String constructor.
@@ -2365,15 +2363,15 @@ public abstract class ModelForm extends ModelWidget {
*/
public UpdateArea(String eventType, String areaId, String areaTarget,
List<CommonWidgetModels.Parameter> parameterList) {
- this(eventType, areaId, areaTarget, parameterList, false);
+ this(eventType, FlexibleStringExpander.getInstance(areaId), FlexibleStringExpander.getInstance(areaTarget),
+ parameterList);
}
- private UpdateArea(String eventType, String areaId, String areaTarget,
- List<CommonWidgetModels.Parameter> parameterList, boolean literal) {
+ private UpdateArea(String eventType, FlexibleStringExpander areaIdExdr, FlexibleStringExpander areaTargetExdr,
+ List<CommonWidgetModels.Parameter> parameterList) {
this.eventType = eventType;
- this.areaId = areaId;
- this.areaTarget = areaTarget;
- this.literal = literal;
+ this.areaIdExdr = areaIdExdr;
+ this.areaTargetExdr = areaTargetExdr;
this.defaultServiceName = null;
this.defaultEntityName = null;
this.parameterList = parameterList;
@@ -2390,7 +2388,8 @@ public abstract class ModelForm extends ModelWidget {
*/
public static UpdateArea literal(String eventType, String areaId, String areaTarget,
List<CommonWidgetModels.Parameter> parameterList) {
- return new UpdateArea(eventType, areaId, areaTarget, parameterList, true);
+ return new UpdateArea(eventType, FlexibleStringExpander.getLiteral(areaId),
+ FlexibleStringExpander.getLiteral(areaTarget), parameterList);
}
/** Creates an update area without parameters whose area id and target are already evaluated values, so that they
@@ -2400,7 +2399,7 @@ public abstract class ModelForm extends ModelWidget {
* @return the update area
*/
public static UpdateArea literal(String eventType, String areaId, String areaTarget) {
- return new UpdateArea(eventType, areaId, areaTarget, Collections.emptyList(), true);
+ return literal(eventType, areaId, areaTarget, Collections.emptyList());
}
@Override
@@ -2413,7 +2412,7 @@ public abstract class ModelForm extends ModelWidget {
* @return the area id
*/
public String getAreaId() {
- return areaId;
+ return areaIdExdr.getOriginal();
}
/**
@@ -2422,7 +2421,7 @@ public abstract class ModelForm extends ModelWidget {
* @return the area id
*/
public String getAreaId(Map<String, ? extends Object> context) {
- return literal ? areaId : FlexibleStringExpander.expandString(areaId, context);
+ return areaIdExdr.expandString(context);
}
/**
@@ -2431,7 +2430,7 @@ public abstract class ModelForm extends ModelWidget {
* @return the area target
*/
public String getAreaTarget(Map<String, ? extends Object> context) {
- return literal ? areaTarget : FlexibleStringExpander.expandString(areaTarget, context);
+ return areaTargetExdr.expandString(context);
}
/**
@@ -2464,7 +2463,7 @@ public abstract class ModelForm extends ModelWidget {
@Override
public int hashCode() {
- return areaId.hashCode();
+ return areaIdExdr.getOriginal().hashCode();
}
/**
@@ -2472,7 +2471,7 @@ public abstract class ModelForm extends ModelWidget {
* @return the area target
*/
public String getAreaTarget() {
- return areaTarget;
+ return areaTargetExdr.getOriginal();
}
/**