details: https://code.openbravo.com/erp/devel/pi/rev/222a1f0084c5
changeset: 14948:222a1f0084c5
user: Antonio Moreno <antonio.moreno <at> openbravo.com>
date: Wed Dec 21 12:10:00 2011 +0100
summary: Fixed issue 19338. When computing session attributes, readonly logic
will be considered in addition to display logic
diffstat:
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
| 33 ++++++---
1 files changed, 23 insertions(+), 10 deletions(-)
diffs (50 lines):
diff -r 9cd579c40b28 -r 222a1f0084c5
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
---
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
Wed Dec 21 09:52:54 2011 +0100
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
Wed Dec 21 12:10:00 2011 +0100
@@ -382,16 +382,16 @@
if (field.getDisplayLogic() != null && field.isDisplayed() &&
field.isActive()) {
final DynamicExpressionParser parser = new DynamicExpressionParser(
field.getDisplayLogic(), tab);
-
- for (String attrName : parser.getSessionAttributes()) {
- if (!sessionAttributesMap.containsKey(attrName)) {
- final String attrValue = Utility
- .getContext(new DalConnectionProvider(false),
RequestContext.get()
- .getVariablesSecureApp(), attrName,
tab.getWindow().getId());
- sessionAttributesMap.put(attrName.startsWith("#") ?
attrName.replace("#", "_")
- : attrName, attrValue);
- }
- }
+ setSessionAttributesFromParserResult(parser, sessionAttributesMap,
tab.getWindow()
+ .getId());
+ }
+ // We also add session attributes from readonly logic fields
+ if (field.getColumn().getReadOnlyLogic() != null &&
field.isDisplayed()
+ && field.isActive()) {
+ final DynamicExpressionParser parser = new
DynamicExpressionParser(field.getColumn()
+ .getReadOnlyLogic(), tab);
+ setSessionAttributesFromParserResult(parser, sessionAttributesMap,
tab.getWindow()
+ .getId());
}
}
@@ -443,6 +443,19 @@
}
}
+ private void setSessionAttributesFromParserResult(DynamicExpressionParser
parser,
+ Map<String, String> sessionAttributesMap, String windowId) {
+ for (String attrName : parser.getSessionAttributes()) {
+ if (!sessionAttributesMap.containsKey(attrName)) {
+ final String attrValue = Utility.getContext(new
DalConnectionProvider(false),
+ RequestContext.get().getVariablesSecureApp(), attrName, windowId);
+ sessionAttributesMap.put(attrName.startsWith("#") ?
attrName.replace("#", "_") : attrName,
+ attrValue);
+ }
+ }
+
+ }
+
private void computeColumnValues(String mode, Tab tab, List<String>
allColumns,
Map<String, JSONObject> columnValues, BaseOBObject parentRecord, String
parentId,
String changedColumn, JSONObject jsContent, List<String> changeEventCols,
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create
new or port existing apps to sell to consumers worldwide. Explore the
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits