details:   /erp/devel/pi/rev/4504c56b5d6e
changeset: 10690:4504c56b5d6e
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed Feb 16 07:30:37 2011 +0100
summary:   Let the filter editor type in selector popup grids be determined by 
the UIDefinition

details:   /erp/devel/pi/rev/78e9be3238df
changeset: 10691:78e9be3238df
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed Feb 16 07:31:11 2011 +0100
summary:   Added checks for undefined

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
             |  10 +++++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
             |  14 ++++++---
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
              |   6 +++-
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
 |  13 +++++----
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
 |   1 +
 5 files changed, 30 insertions(+), 14 deletions(-)

diffs (145 lines):

diff -r 78434f6b08ee -r 78e9be3238df 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
  Wed Feb 16 06:44:17 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
  Wed Feb 16 07:31:11 2011 +0100
@@ -269,8 +269,10 @@
     
     this.setDisabled(true);
 
+    // get the editRow before doing the call
+    var editRow = me.view.viewGrid.getEditRow();
     
OB.RemoteCallManager.call('org.openbravo.client.application.window.FormInitializationComponent',
 allProperties, requestParams, function(response, data, request){
-      var editValues, editRow = me.view.viewGrid.getEditRow();
+      var editValues;
       if (editRow || editRow === 0) {
         editValues = me.view.viewGrid.getEditValues(editRow);
       }
@@ -382,7 +384,7 @@
       delete this.callSaveAfterFICReturn;
       this.saveRow(true);
     }
-    if (editValues.actionAfterFicReturn) {
+    if (editValues && editValues.actionAfterFicReturn) {
       OB.Utilities.callAction(editValues.actionAfterFicReturn);
       delete editValues.actionAfterFicReturn;
     }
@@ -496,6 +498,10 @@
   },
   
   setColumnValuesInEditValues: function(columnName, columnValue, editValues){
+    // no editvalues even anymore, go away
+    if (!editValues) {
+      return;
+    }
     var id, identifier, field = this.getFieldFromColumnName(columnName), i, 
valueMap = {}, 
       entries = columnValue.entries;
     var prop = this.view.getPropertyFromDBColumnName(columnName);
diff -r 78434f6b08ee -r 78e9be3238df 
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
  Wed Feb 16 06:44:17 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
  Wed Feb 16 07:31:11 2011 +0100
@@ -48,7 +48,6 @@
   // Controls if an edit link column is created in the grid, set to false to
   // prevent this.
   editGrid: true,
-  updateEditorItemsInPlace: false,
   
   // ** {{{ editLinkFieldProperties }}} **
   // The properties of the ListGridField created for the edit links.
@@ -1219,13 +1218,18 @@
       this.view.toolBar.updateButtonState();
     }
   },
-  
-  
+    
   // saveEdits: when saving, first check if a FIC call needs to be done to 
update to the 
   // latest values. This can happen when the focus is in a field and the save 
action is
   // done, at that point first try to force a fic call (handleItemChange) and 
if that
   // indeed happens stop the saveEdit until the fic returns
   saveEdits: function(editCompletionEvent, callback, rowNum, colNum, 
validateOnly, ficCallDone){
+    if (!rowNum && rowNum !== 0) {
+      rowNum = this.getEditRow();
+    }
+    if (!colNum && colNum !== 0) {
+      colNum = this.getEditCol();
+    }
     if (!validateOnly && !ficCallDone) {
       var editForm = this.getEditForm(), focusItem = editForm.getFocusItem();
       if (focusItem) {
@@ -1233,11 +1237,11 @@
         editForm.handleItemChange(focusItem);        
         if (editForm.inFicCall) {
           // use editValues object as the edit form will be re-used for a next 
row
-          var editValues = this.getEditValues(rowNum || this.getEditRow());
+          var editValues = this.getEditValues(rowNum);
           editValues.actionAfterFicReturn = {
             target: this,
             method: this.saveEdits,
-            parameters: [editCompletionEvent, callback, this.getEditRow(), 
this.getEditCol(), validateOnly, true]
+            parameters: [editCompletionEvent, callback, rowNum, colNum, 
validateOnly, true]
           };
           return;
         }
diff -r 78434f6b08ee -r 78e9be3238df 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
   Wed Feb 16 06:44:17 2011 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
   Wed Feb 16 07:31:11 2011 +0100
@@ -252,8 +252,12 @@
   }
 
   /**
-   * Returns the filterEditorProperties property set on the gridfield.
+   * Returns the filterEditorProperties property set on the gridfield. Note 
for implementations in
+   * the subclass: field maybe null.
    * 
+   * @param field
+   *          the field to generate the filter editor properties for, note it 
is allowed to pass
+   *          null, implementors should gracefully handle this.
    * @return
    */
   protected String getFilterEditorPropertiesProperty(Field field) {
diff -r 78434f6b08ee -r 78e9be3238df 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
--- 
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
      Wed Feb 16 06:44:17 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
      Wed Feb 16 07:31:11 2011 +0100
@@ -678,6 +678,13 @@
       this.displayField = displayField;
     }
 
+    public String getFilterEditorProperties() {
+      if (getUIDefinition() != null) {
+        return getUIDefinition().getFilterEditorProperties(null);
+      }
+      return ", filterEditorType: 'OBTextItem'";
+    }
+
     public List<LocalSelectorFieldProperty> getProperties() {
       final List<LocalSelectorFieldProperty> result = new 
ArrayList<LocalSelectorFieldProperty>();
       result.add(createLocalSelectorFieldProperty("title", title));
@@ -688,18 +695,12 @@
       if ((domainType instanceof PrimitiveDomainType)) {
         final PrimitiveDomainType primitiveDomainType = (PrimitiveDomainType) 
domainType;
         if 
(Date.class.isAssignableFrom(primitiveDomainType.getPrimitiveType())) {
-          
result.add(createNonStringLocalSelectorFieldProperty("filterEditorType", 
"OBDateItem"));
           // TODO: hardcoded width for date
           result.add(createLocalSelectorFieldProperty("width", 100));
-        } else if 
(Boolean.class.isAssignableFrom(primitiveDomainType.getPrimitiveType())) {
-          
result.add(createNonStringLocalSelectorFieldProperty("filterEditorType", 
"OBYesNoItem"));
-          
result.add(createNonStringLocalSelectorFieldProperty("formatCellValue",
-              " function(value) { return 
OB.Utilities.getYesNoDisplayValue(value);}"));
         }
       }
       if (domainType instanceof ForeignKeyDomainType) {
         result.add(createLocalSelectorFieldProperty("displayField", 
displayField));
-        
result.add(createNonStringLocalSelectorFieldProperty("filterEditorType", 
"OBTextItem"));
       }
       return result;
     }
diff -r 78434f6b08ee -r 78e9be3238df 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
--- 
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
      Wed Feb 16 06:44:17 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
      Wed Feb 16 07:31:11 2011 +0100
@@ -38,6 +38,7 @@
         {<#list selectorGridField.properties as property>
         ${property.name}: ${property.value}<#if property_has_next>,</#if>
          </#list>
+         ${selectorGridField.filterEditorProperties}
         }<#if selectorGridField_has_next>,</#if>
     </#list>
     ],

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