details: /erp/devel/pi/rev/815895c88aa0
changeset: 10753:815895c88aa0
user: Gorka Ion Damián <gorkaion.damian <at> openbravo.com>
date: Thu Feb 17 19:52:35 2011 +0100
summary: [OBUISEL] Apply field's default filter expression on picklist.
details: /erp/devel/pi/rev/765c03feab88
changeset: 10754:765c03feab88
user: Gorka Ion Damián <gorkaion.damian <at> openbravo.com>
date: Thu Feb 17 19:53:01 2011 +0100
summary: Add default filter expressions for Customer and Vendor fields of BP
selector.
diffstat:
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
| 29 +++++++--
src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml
| 2 +
2 files changed, 23 insertions(+), 8 deletions(-)
diffs (75 lines):
diff -r b808332ac975 -r 765c03feab88
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
Thu Feb 17 19:45:07 2011 +0100
+++
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
Thu Feb 17 19:53:01 2011 +0100
@@ -154,8 +154,16 @@
boolean hasFilter = false;
for (SelectorField field : sel.getOBUISELSelectorFieldList()) {
String value = parameters.get(field.getDisplayColumnAlias());
- if (field.isFilterable() && field.getClauseLeftPart() != null
- && StringUtils.isNotEmpty(value)) {
+ if (!parameters.containsKey(field.getDisplayColumnAlias())
+ && field.getDefaultExpression() != null &&
!"Window".equals(requestType)) {
+ try {
+ value = (String) evaluateExpression(field.getDefaultExpression(),
parameters);
+ } catch (Exception e) {
+ log.error("Error evaluating filter expression: " + e.getMessage(),
e);
+ }
+ }
+ if ((field.isFilterable() || field.getDefaultExpression() != null)
+ && field.getClauseLeftPart() != null &&
StringUtils.isNotEmpty(value)) {
String whereClause = getWhereClause(value, field, xmlDateFormat);
if (!hasFilter) {
additionalFilter.append(NEW_FILTER_CLAUSE);
@@ -301,6 +309,15 @@
return "";
}
+ Object result = evaluateExpression(sel.getFilterExpression(), parameters);
+ if (result != null && !result.toString().equals("")) {
+ return NEW_FILTER_CLAUSE + "(" + result.toString() + ")";
+ }
+
+ return "";
+ }
+
+ private Object evaluateExpression(String expression, Map<String, String>
parameters) {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("js");
// Initializing the OB JavaScript object
@@ -309,15 +326,11 @@
// Applying filter expression
try {
- Object result = engine.eval(sel.getFilterExpression());
- if (result != null && !result.toString().equals("")) {
- return NEW_FILTER_CLAUSE + "(" + result.toString() + ")";
- }
+ return engine.eval(expression);
} catch (Exception e) {
log.error("Error evaluating filter expression: " + e.getMessage(), e);
}
-
- return "";
+ return null;
}
/**
diff -r b808332ac975 -r 765c03feab88
src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml
--- a/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml Thu Feb 17
19:45:07 2011 +0100
+++ b/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml Thu Feb 17
19:53:01 2011 +0100
@@ -473,6 +473,7 @@
<!--A246D4AC538E42BE9F0CD8182A558712--> <SORTNO><![CDATA[7]]></SORTNO>
<!--A246D4AC538E42BE9F0CD8182A558712--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
<!--A246D4AC538E42BE9F0CD8182A558712--> <ISOUTFIELD><![CDATA[N]]></ISOUTFIELD>
+<!--A246D4AC538E42BE9F0CD8182A558712--> <DEFAULT_EXPRESSION><![CDATA[if
(OB.isSalesTransaction()) { 'true' } else {''}]]></DEFAULT_EXPRESSION>
<!--A246D4AC538E42BE9F0CD8182A558712-->
<DISPLAY_EXPRESSION><![CDATA[customer]]></DISPLAY_EXPRESSION>
<!--A246D4AC538E42BE9F0CD8182A558712-->
<CLAUSE_LEFT_PART><![CDATA[bp.customer]]></CLAUSE_LEFT_PART>
<!--A246D4AC538E42BE9F0CD8182A558712-->
<AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
@@ -833,6 +834,7 @@
<!--F91FD25B57A74BD587AEDB091A0FD53D--> <SORTNO><![CDATA[8]]></SORTNO>
<!--F91FD25B57A74BD587AEDB091A0FD53D--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
<!--F91FD25B57A74BD587AEDB091A0FD53D--> <ISOUTFIELD><![CDATA[N]]></ISOUTFIELD>
+<!--F91FD25B57A74BD587AEDB091A0FD53D--> <DEFAULT_EXPRESSION><![CDATA[if
(OB.isSalesTransaction()) { '' } else {'true'}]]></DEFAULT_EXPRESSION>
<!--F91FD25B57A74BD587AEDB091A0FD53D-->
<DISPLAY_EXPRESSION><![CDATA[vendor]]></DISPLAY_EXPRESSION>
<!--F91FD25B57A74BD587AEDB091A0FD53D-->
<CLAUSE_LEFT_PART><![CDATA[bp.vendor]]></CLAUSE_LEFT_PART>
<!--F91FD25B57A74BD587AEDB091A0FD53D-->
<AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits