details:   /erp/devel/pi/rev/06dbed3d23df
changeset: 10664:06dbed3d23df
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Tue Feb 15 17:37:22 2011 +0100
summary:   Solved small styling issue: field value of FK has red label

details:   /erp/devel/pi/rev/9806e834e4ff
changeset: 10665:9806e834e4ff
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Tue Feb 15 17:38:20 2011 +0100
summary:   Solve several issues for BP Selector: shows db id and yes/no 
filtering

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-form-styles.css
 |   1 -
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
                                      |   3 +
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
                                                  |  38 ++++++++++
 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
                                                  |  24 ++++-
 4 files changed, 58 insertions(+), 8 deletions(-)

diffs (200 lines):

diff -r 0b99ddfd0f37 -r 9806e834e4ff 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-form-styles.css
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-form-styles.css
     Tue Feb 15 16:41:29 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-form-styles.css
     Tue Feb 15 17:38:20 2011 +0100
@@ -201,7 +201,6 @@
   border: 0px 0px 0px 0px;
 }
 
-.OBFormFieldSelectInputRequiredFocused,
 .OBFormFieldInputRequiredError,
 .OBFormFieldDateInputRequiredError,
 .OBFormFieldInputError,
diff -r 0b99ddfd0f37 -r 9806e834e4ff 
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
  Tue Feb 15 16:41:29 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
  Tue Feb 15 17:38:20 2011 +0100
@@ -36,6 +36,7 @@
 import org.hibernate.Query;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.domaintype.BigDecimalDomainType;
+import org.openbravo.base.model.domaintype.BooleanDomainType;
 import org.openbravo.base.model.domaintype.DateDomainType;
 import org.openbravo.base.model.domaintype.DomainType;
 import org.openbravo.base.model.domaintype.LongDomainType;
@@ -228,6 +229,8 @@
         // add a dummy whereclause to make the query format correct
         whereClause = "1 = 1";
       }
+    } else if (domainType instanceof BooleanDomainType) {
+      whereClause = field.getClauseLeftPart() + " = " + value;
     } else {
       whereClause = "C_IGNORE_ACCENT(" + field.getClauseLeftPart() + ")";
       whereClause += " LIKE C_IGNORE_ACCENT(";
diff -r 0b99ddfd0f37 -r 9806e834e4ff 
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
      Tue Feb 15 16:41:29 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
      Tue Feb 15 17:38:20 2011 +0100
@@ -42,6 +42,8 @@
 import org.openbravo.client.kernel.Component;
 import org.openbravo.client.kernel.ComponentProvider;
 import org.openbravo.client.kernel.Template;
+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.dal.service.OBCriteria;
@@ -542,6 +544,7 @@
 
       localSelectorField.setFilter(selectorField.isFilterable());
       localSelectorField.setDomainType(domainType);
+      localSelectorField.setUIDefinition(getUIDefinition(selectorField));
 
       // determine format
       // if (selectorField.getProperty() != null) {
@@ -637,6 +640,7 @@
     private boolean filter;
     private boolean sort;
     private DomainType domainType;
+    private UIDefinition uiDefinition;
 
     public DomainType getDomainType() {
       return domainType;
@@ -676,6 +680,7 @@
       result.add(createLocalSelectorFieldProperty("name", name));
       result.add(createLocalSelectorFieldProperty("canFilter", filter));
       result.add(createLocalSelectorFieldProperty("canSort", sort));
+      result.add(createLocalSelectorFieldProperty("type", getType()));
       if ((domainType instanceof PrimitiveDomainType)) {
         final PrimitiveDomainType primitiveDomainType = (PrimitiveDomainType) 
domainType;
         if 
(Date.class.isAssignableFrom(primitiveDomainType.getPrimitiveType())) {
@@ -755,6 +760,21 @@
         this.value = value;
       }
     }
+
+    public String getType() {
+      if (getUIDefinition() == null) {
+        return "text";
+      }
+      return getUIDefinition().getName();
+    }
+
+    public UIDefinition getUIDefinition() {
+      return uiDefinition;
+    }
+
+    public void setUIDefinition(UIDefinition uiDefinition) {
+      this.uiDefinition = uiDefinition;
+    }
   }
 
   /**
@@ -771,6 +791,24 @@
 
   }
 
+  private UIDefinition getUIDefinition(SelectorField selectorField) {
+    if (selectorField.getObuiselSelector().getTable() != null
+        && selectorField.getProperty() != null) {
+      final String entityName = 
selectorField.getObuiselSelector().getTable().getName();
+      final Entity entity = ModelProvider.getInstance().getEntity(entityName);
+      final Property property = DalUtil.getPropertyFromPath(entity, 
selectorField.getProperty());
+      return 
UIDefinitionController.getInstance().getUIDefinition(property.getColumnId());
+    } else if (selectorField.getObuiselSelector().getTable() != null
+        && selectorField.getObuiselSelector().isCustomQuery()
+        && selectorField.getReference() != null) {
+      return 
UIDefinitionController.getInstance().getUIDefinition(selectorField.getReference());
+    } else if (selectorField.getObserdsDatasourceField().getReference() != 
null) {
+      return UIDefinitionController.getInstance().getUIDefinition(
+          selectorField.getObserdsDatasourceField().getReference());
+    }
+    return null;
+  }
+
   private DomainType getDomainType(SelectorField selectorField) {
     if (selectorField.getObuiselSelector().getTable() != null
         && selectorField.getProperty() != null) {
diff -r 0b99ddfd0f37 -r 9806e834e4ff 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
--- 
a/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
      Tue Feb 15 16:41:29 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
      Tue Feb 15 17:38:20 2011 +0100
@@ -81,7 +81,7 @@
         }
         
         // on purpose not sending the third boolean param
-        this.selector.form.view.getContextInfo(criteria, {});
+        isc.addProperties(criteria, 
this.selector.form.view.getContextInfo(false, true));
         
         // also adds the special ORG parameter
         if (this.selector.form.getField('organization')) {
@@ -312,6 +312,7 @@
   popupTextMatchStyle: 'startswith',
   suggestionTextMatchStyle: 'startswith',
   selectOnFocus: true,
+  showOptionsFromDataSource: true,
   // setting this to false means that the change handler is called when picking
   // a value and not earlier
   addUnknownValues: false,
@@ -333,8 +334,6 @@
     showHeaderContextMenu: false
   },
   
-  valueMap: {},
-  
   init: function(){
     this.icons = [{
       src: this.popupIconSrc,
@@ -372,18 +371,22 @@
       });
     }
     
+    this.optionCriteria = {
+      _selectorDefinitionId: this.selectorDefinitionId
+    };
+    
     return this.Super('init', arguments);
   },
   
   setValueFromGrid: function(record){
     this._hasChanged = true;
     if (!record) {
-      this.clearValue();
+      this.setValue(null);
     } else {
       this.setValue(record[this.valueField]);
     }
-    this._doFICCall = true;
     if (this.form && this.form.handleItemChange) {
+      this._hasChanged = true;
       this.form.handleItemChange(this);
     }
   },
@@ -400,6 +403,13 @@
     return true;
   },
   
+  pickValue: function(value) {
+    var ret = this.Super('pickValue', arguments);
+    this._hasChanged = true;
+    this.form.handleItemChange(this);
+    return ret;
+  },
+  
   getPickListFilterCriteria: function(){
     var criteria = this.Super('getPickListFilterCriteria'), defValue, prop;
     
@@ -413,7 +423,7 @@
     }
     
     // on purpose not passing the third boolean param
-    this.form.view.getContextInfo(criteria, {});
+    isc.addProperties(criteria, this.form.view.getContextInfo(false, true));
     
     // adds the selector id to filter used to get filter information
     criteria._selectorDefinitionId = this.selectorDefinitionId;
@@ -508,7 +518,7 @@
       this.form.setValue(this.displayField, record[this.gridDisplayField]);
       this.updateValueMap(true);
     }
-    this._doFICCall = true;
+    this._hasChanged = true;
     this.form.handleItemChange(this);
   },
   

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