details:   https://code.openbravo.com/erp/devel/pi/rev/f857a081fd75
changeset: 21749:f857a081fd75
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed Jan 08 03:59:47 2014 +0100
summary:   Fixes issue 25440: List reference not working as widget parameter
Use the correct property name for valuemaps.

details:   https://code.openbravo.com/erp/devel/pi/rev/e7bddfad3ae2
changeset: 21750:e7bddfad3ae2
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed Jan 08 04:00:39 2014 +0100
summary:   Fixes issue 25371: Support list references in parameter windows
Read the valuemap from the database and show it in the process window for a 
list reference

diffstat:

 .project                                                                       
                                       |   7 +
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-param-window-parameter.ftl
 |   7 +
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewParameterHandler.java
      |  84 ++++++++++
 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/WidgetProvider.java
                                   |   6 +-
 4 files changed, 101 insertions(+), 3 deletions(-)

diffs (185 lines):

diff -r 3c21194df724 -r e7bddfad3ae2 .project
--- a/.project  Wed Jan 08 03:35:54 2014 +0100
+++ b/.project  Wed Jan 08 04:00:39 2014 +0100
@@ -23,4 +23,11 @@
                <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
                <nature>org.openarchitectureware.base.oawNature</nature>
        </natures>
+       <linkedResources>
+               <link>
+                       
<name>modules/org.openbravo.client.analytics/mondrian-3.6.1-src</name>
+                       <type>2</type>
+                       
<location>/home/mtaal/mydownloads/reporting/mondrian/mondrian-3.6.1-sources/main</location>
+               </link>
+       </linkedResources>
 </projectDescription>
diff -r 3c21194df724 -r e7bddfad3ae2 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-param-window-parameter.ftl
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-param-window-parameter.ftl
     Wed Jan 08 03:35:54 2014 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-param-window-parameter.ftl
     Wed Jan 08 04:00:39 2014 +0100
@@ -29,6 +29,13 @@
   <#if param.type != "OBSectionItem">
     paramId: '${param.id}',
     width: '${param.width?js_string}',
+    <#if param.valueMapPresent>
+    valueMap: {
+    <#list param.valueMap as valueMapValue>
+      '${valueMapValue.key?js_string}': '${valueMapValue.value?js_string}'<#if 
valueMapValue_has_next>,</#if>
+    </#list>
+    },
+    </#if>
     <#if param.redrawOnChange>
       redrawOnChange: true,
     </#if>
diff -r 3c21194df724 -r e7bddfad3ae2 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewParameterHandler.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewParameterHandler.java
  Wed Jan 08 03:35:54 2014 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewParameterHandler.java
  Wed Jan 08 04:00:39 2014 +0100
@@ -19,6 +19,8 @@
 package org.openbravo.client.application.window;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -29,6 +31,10 @@
 import org.openbravo.client.application.Process;
 import org.openbravo.client.kernel.reference.UIDefinition;
 import org.openbravo.client.kernel.reference.UIDefinitionController;
+import org.openbravo.dal.core.DalUtil;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.model.ad.domain.ListTrl;
+import org.openbravo.model.ad.domain.Reference;
 import org.openbravo.model.ad.ui.FieldGroup;
 import org.openbravo.model.ad.ui.Tab;
 import org.openbravo.model.ad.ui.Window;
@@ -112,6 +118,12 @@
       if (readOnlyLogicMap.containsKey(param)) {
         parameter.setReadOnlyIf(readOnlyLogicMap.get(param));
       }
+      // 17 is the list reference
+      if (param.getReferenceSearchKey() != null
+          && param.getReferenceSearchKey().getParentReference() != null
+          && 
DalUtil.getId(param.getReferenceSearchKey().getParentReference()).equals("17")) 
{
+        parameter.addListReferenceValues(param.getReferenceSearchKey());
+      }
 
       params.add(parameter);
     }
@@ -124,6 +136,7 @@
     String showIf = "";
     String readOnlyIf = "";
     boolean redrawOnChange = false;
+    List<ValueMapValue> valueMap = new ArrayList<ValueMapValue>();
 
     public OBViewParameter() {
 
@@ -134,6 +147,53 @@
       parameter = param;
     }
 
+    public boolean isValueMapPresent() {
+      return !valueMap.isEmpty();
+    }
+
+    public List<ValueMapValue> getValueMap() {
+      Collections.sort(valueMap, new Comparator<ValueMapValue>() {
+        @Override
+        public int compare(ValueMapValue v1, ValueMapValue v2) {
+          final long seqno1 = v1.seqno;
+          final long seqno2 = v2.seqno;
+
+          // compare the names if no seqno set.
+          if (seqno1 == -1 || seqno2 == -1) {
+            return v1.getValue().compareTo(v2.getValue());
+          }
+
+          return (int) (seqno1 - seqno2);
+        }
+      });
+      return valueMap;
+    }
+
+    public void addListReferenceValues(Reference reference) {
+      for (org.openbravo.model.ad.domain.List list : 
reference.getADListList()) {
+        if (list.isActive()) {
+          addListValueReference(list);
+        }
+      }
+    }
+
+    public void addListValueReference(org.openbravo.model.ad.domain.List 
listValue) {
+      String name = listValue.getName();
+      final String languageId = OBContext.getOBContext().getLanguage().getId();
+      for (ListTrl listTrl : listValue.getADListTrlList()) {
+        if (!listTrl.isActive()) {
+          continue;
+        }
+        if (DalUtil.getId(listTrl.getLanguage()).equals(languageId)) {
+          name = listTrl.getName();
+          break;
+        }
+      }
+      final ValueMapValue vmv = new ValueMapValue(listValue.getSearchKey(), 
name,
+          listValue.getSequenceNumber());
+      valueMap.add(vmv);
+    }
+
     public String getId() {
       return parameter.getId();
     }
@@ -233,6 +293,30 @@
       }
       return parameter.getLength();
     }
+
+    public class ValueMapValue {
+      final String key;
+      final String value;
+      final long seqno;
+
+      ValueMapValue(String key, String value, Long seqno) {
+        this.key = key;
+        this.value = value;
+        this.seqno = (seqno != null ? seqno : -1);
+      }
+
+      public String getKey() {
+        return key;
+      }
+
+      public String getValue() {
+        return value;
+      }
+
+      public long getSeqno() {
+        return seqno;
+      }
+    }
   }
 
   public class OBViewParamGroup extends OBViewParameter {
diff -r 3c21194df724 -r e7bddfad3ae2 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/WidgetProvider.java
--- 
a/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/WidgetProvider.java
       Wed Jan 08 03:35:54 2014 +0100
+++ 
b/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/WidgetProvider.java
       Wed Jan 08 04:00:39 2014 +0100
@@ -92,7 +92,7 @@
   private static final String ABOUTFIELDDEFINITIONS = "aboutFieldDefinitions";
   protected static final String PARAMETERS = "parameters";
   protected static final String FIELDDEFINITIONS = "fieldDefinitions";
-  private static final String ITEMDATA = "itemData";
+  private static final String VALUEMAP = "valueMap";
   private static final String PARAMETERID = "parameterId";
   private static final String PARAMETERNAME = "name";
   private static final String PARAMETERTITLE = "title";
@@ -212,9 +212,9 @@
         final Object valueMap = getComboBoxData(reference);
         if (valueMap != null) {
           if (valueMap instanceof Collection<?>) {
-            fieldDefinition.put(ITEMDATA, (Collection<?>) valueMap);
+            fieldDefinition.put(VALUEMAP, (Collection<?>) valueMap);
           } else {
-            fieldDefinition.put(ITEMDATA, valueMap);
+            fieldDefinition.put(VALUEMAP, valueMap);
           }
         }
         fieldDefinition.put(PARAMETERTITLE, getParameterLabel(parameter));

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to