details:   /erp/devel/pi/rev/5a042c7ac2c6
changeset: 10570:5a042c7ac2c6
user:      Antonio Moreno <antonio.moreno <at> openbravo.com>
date:      Fri Feb 11 13:22:28 2011 +0100
summary:   Implemented autoExpand functionality

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
   |   5 +
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewGridComponent.java
 |  31 +++++++++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
              |   8 +-
 3 files changed, 38 insertions(+), 6 deletions(-)

diffs (88 lines):

diff -r 7c14027bb49a -r 5a042c7ac2c6 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
       Fri Feb 11 12:39:24 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
       Fri Feb 11 13:22:28 2011 +0100
@@ -60,6 +60,11 @@
        <#if field_has_next>,</#if>
     </#list>
     ],
+    autoExpandFieldNames:[
+    <#list data.autoExpandFields as field>
+        '${field}'<#if field_has_next>,</#if>
+    </#list>
+    ],
     whereClause: '${data.whereClause?js_string}',
     orderByClause: '${data.orderByClause?js_string}',
     filterClause: '${data.filterClause?js_string}',
diff -r 7c14027bb49a -r 5a042c7ac2c6 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewGridComponent.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewGridComponent.java
     Fri Feb 11 12:39:24 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewGridComponent.java
     Fri Feb 11 13:22:28 2011 +0100
@@ -124,6 +124,28 @@
     return fkFields;
   }
 
+  public List<String> getAutoExpandFields() {
+    List<LocalField> autoExpandFields = new ArrayList<LocalField>();
+    for (LocalField field : getFields()) {
+      if (new Boolean(field.getAutoExpand())) {
+        autoExpandFields.add(field);
+      }
+    }
+    Collections.sort(autoExpandFields, new LengthComparator());
+    List<String> autoExpandFieldsStr = new ArrayList<String>();
+    for (LocalField field : autoExpandFields) {
+      autoExpandFieldsStr.add(field.getProperty().getName());
+    }
+    return autoExpandFieldsStr;
+  }
+
+  private class LengthComparator implements Comparator<LocalField> {
+    @Override
+    public int compare(LocalField o1, LocalField o2) {
+      return o2.getLength().compareTo(o1.getLength());
+    }
+  }
+
   public List<LocalField> getFields() {
     if (fields != null) {
       return fields;
@@ -321,8 +343,8 @@
 
     // can the column be auto expanded to fill any remaining space
     public String getAutoExpand() {
-      return Boolean
-          .toString(uiDefinition instanceof StringUIDefinition || 
!property.isPrimitive());
+      return (Boolean.toString(!name.equalsIgnoreCase("documentno")
+          && (uiDefinition instanceof StringUIDefinition || 
!property.isPrimitive())));
     }
 
     public String getName() {
@@ -392,6 +414,11 @@
     public void setRedrawOnChange(boolean redrawOnChange) {
       this.redrawOnChange = redrawOnChange;
     }
+
+    public Long getLength() {
+      return field.getDisplayedLength();
+    }
+
   }
 
   private class GridFieldComparator implements Comparator<Field> {
diff -r 7c14027bb49a -r 5a042c7ac2c6 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
  Fri Feb 11 12:39:24 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
  Fri Feb 11 13:22:28 2011 +0100
@@ -686,10 +686,10 @@
   
   // determine which field can be autoexpanded to use extra space
   getAutoFitExpandField: function(){
-    for (var i = 0; i < this.fields.length; i++) {
-      var field = this.fields[i];
-      if (field.autoExpand) {
-        return field;
+    for (var i = 0; i < this.autoExpandFieldNames.length; i++) {
+      var field = this.getField(this.autoExpandFieldNames[i]);
+      if(field && field.name){
+        return field.name;
       }
     }
     return this.Super('getAutoFitExpandField', arguments);

------------------------------------------------------------------------------
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