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

Reply via email to