details: /erp/devel/pi/rev/7f46d8acefa3
changeset: 10853:7f46d8acefa3
user: Gorka Ion Damián <gorkaion.damian <at> openbravo.com>
date: Wed Feb 23 18:34:56 2011 +0100
summary: [OBUISEL] Properly set default expression filter on picklist using
Custom Query selectors.
diffstat:
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
| 19 +++++++--
1 files changed, 14 insertions(+), 5 deletions(-)
diffs (51 lines):
diff -r f94b103c7ff4 -r 7f46d8acefa3
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
---
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
Wed Feb 23 17:27:11 2011 +0100
+++
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
Wed Feb 23 18:34:56 2011 +0100
@@ -169,10 +169,17 @@
}
additionalFilter.append(getDefaultFilterExpression(sel, parameters));
+ StringBuffer defaultExpressionsFilter = new StringBuffer();
boolean hasFilter = false;
for (SelectorField field : sel.getOBUISELSelectorFieldList()) {
+ if (StringUtils.isEmpty(field.getClauseLeftPart())) {
+ continue;
+ }
String value = parameters.get(field.getDisplayColumnAlias());
- if (field.getDefaultExpression() != null &&
!"Window".equals(requestType)) {
+ // Add field default expression on picklist if it is not already
filtered. Default expressions
+ // on selector popup are already evaluated and their values came in the
parameters object.
+ if (field.getDefaultExpression() != null && !"Window".equals(requestType)
+ && StringUtils.isEmpty(value)) {
try {
String defaultValue = "";
Object defaultValueObject =
ParameterUtils.getJSExpressionResult(parameters,
@@ -181,15 +188,14 @@
defaultValue = defaultValueObject.toString();
}
if (StringUtils.isNotEmpty(defaultValue)) {
- additionalFilter.append(NEW_FILTER_CLAUSE);
- additionalFilter.append(getWhereClause(defaultValue, field,
xmlDateFormat));
+ defaultExpressionsFilter.append(NEW_FILTER_CLAUSE);
+ defaultExpressionsFilter.append(getWhereClause(defaultValue,
field, xmlDateFormat));
}
} catch (Exception e) {
log.error("Error evaluating filter expression: " + e.getMessage(),
e);
}
}
- if ((field.isFilterable() || field.getDefaultExpression() != null)
- && field.getClauseLeftPart() != null &&
StringUtils.isNotEmpty(value)) {
+ if (field.isFilterable() && StringUtils.isNotEmpty(value)) {
String whereClause = getWhereClause(value, field, xmlDateFormat);
if (!hasFilter) {
additionalFilter.append(NEW_FILTER_CLAUSE);
@@ -208,6 +214,9 @@
if (hasFilter) {
additionalFilter.append(")");
}
+ if (defaultExpressionsFilter.length() > 0) {
+ additionalFilter.append(defaultExpressionsFilter);
+ }
HQL = HQL.replace(ADDITIONAL_FILTERS, additionalFilter.toString());
return HQL;
}
------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in
Real-Time with Splunk. Collect, index and harness all the fast moving IT data
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business
insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits