details: /erp/devel/pi/rev/c11b81a99695
changeset: 9388:c11b81a99695
user: Iván Perdomo <ivan.perdomo <at> openbravo.com>
date: Fri Dec 24 12:41:10 2010 +0100
summary: Refactored Parameter handling
- Added utility class (ParameterUtils)
- Change ParameterActionHandler to use this new class
details: /erp/devel/pi/rev/be1eb4ed1b6a
changeset: 9389:be1eb4ed1b6a
user: Iván Perdomo <ivan.perdomo <at> openbravo.com>
date: Fri Dec 24 12:46:31 2010 +0100
summary: Fixes handling of default parameter values
- Added support for default values on new widget instances
- Added setDbInstanceId method to be an a way to sync calls
details: /erp/devel/pi/rev/0c884939d01f
changeset: 9390:0c884939d01f
user: Iván Perdomo <ivan.perdomo <at> openbravo.com>
date: Fri Dec 24 12:47:58 2010 +0100
summary: Fixes synchronization problem when adding new widget
- Fixes JSLint warnings, wrong like break
- Sync the call to fetchData through setDbInstanceId
diffstat:
modules/org.openbravo.client.application/src/org/openbravo/client/application/ParameterUtils.java
| 84 ++++++++++
modules/org.openbravo.client.application/src/org/openbravo/client/application/ParametersActionHandler.java
| 37 +----
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
| 23 ++
modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-myopenbravo.js
| 2 +-
modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js
| 6 +-
modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js
| 21 +-
6 files changed, 129 insertions(+), 44 deletions(-)
diffs (278 lines):
diff -r b29165c217a8 -r 0c884939d01f
modules/org.openbravo.client.application/src/org/openbravo/client/application/ParameterUtils.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ParameterUtils.java
Fri Dec 24 12:47:58 2010 +0100
@@ -0,0 +1,84 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.1 (the "License"), being the Mozilla Public License
+ * Version 1.1 with a permitted attribution clause; you may not use this
+ * file except in compliance with the License. You may obtain a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2010 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s): ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.client.application;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.log4j.Logger;
+import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.base.model.ModelProvider;
+import org.openbravo.base.model.domaintype.BigDecimalDomainType;
+import org.openbravo.base.model.domaintype.DateDomainType;
+import org.openbravo.base.model.domaintype.DomainType;
+import org.openbravo.base.model.domaintype.LongDomainType;
+import org.openbravo.base.model.domaintype.StringDomainType;
+import org.openbravo.base.util.Check;
+
+/**
+ * Utility class for Parameters handling
+ *
+ * @author iperdomo
+ */
+public class ParameterUtils {
+ private static Logger log = Logger.getLogger(ParameterUtils.class);
+
+ public static void setParameterValue(Parameter parameter, ParameterValue
parameterValue,
+ JSONObject requestValue) {
+ try {
+ setValue(parameterValue, getParameterDomainType(parameter),
requestValue.getString("value"));
+ } catch (Exception e) {
+ log.error("Error trying to set value for paramter: "
+ + parameterValue.getParameter().getName(), e);
+ }
+ }
+
+ public static void setDefaultParameterValue(ParameterValue value) {
+ Check.isNotNull(value, "Default value is based on Parameter defintion");
+ setValue(value, getParameterDomainType(value.getParameter()),
value.getParameter()
+ .getDefaultValue());
+ }
+
+ private static void setValue(ParameterValue parameterValue, DomainType
domainType,
+ String stringValue) {
+ final SimpleDateFormat xmlDateFormat = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+ try {
+ if (domainType.getClass().equals(StringDomainType.class)) {
+ parameterValue.setValueString(stringValue);
+ } else if (domainType.getClass().equals(DateDomainType.class)) {
+ Date date = xmlDateFormat.parse(stringValue);
+ parameterValue.setValueDate(date);
+ } else if
(domainType.getClass().getSuperclass().equals(BigDecimalDomainType.class)
+ || domainType.getClass().equals(LongDomainType.class)) {
+ parameterValue.setValueNumber(new BigDecimal(stringValue));
+ } else { // default
+ parameterValue.setValueString(stringValue);
+ }
+ } catch (Exception e) {
+ log.error("Error trying to set value for paramter: "
+ + parameterValue.getParameter().getName(), e);
+ }
+ }
+
+ private static DomainType getParameterDomainType(Parameter parameter) {
+ return
ModelProvider.getInstance().getReference(parameter.getReference().getId())
+ .getDomainType();
+ }
+}
diff -r b29165c217a8 -r 0c884939d01f
modules/org.openbravo.client.application/src/org/openbravo/client/application/ParametersActionHandler.java
---
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ParametersActionHandler.java
Fri Dec 24 12:25:53 2010 +0100
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ParametersActionHandler.java
Fri Dec 24 12:47:58 2010 +0100
@@ -18,9 +18,6 @@
*/
package org.openbravo.client.application;
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.Date;
import java.util.Map;
import javax.enterprise.context.ApplicationScoped;
@@ -28,12 +25,6 @@
import org.apache.log4j.Logger;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONObject;
-import org.openbravo.base.model.ModelProvider;
-import org.openbravo.base.model.domaintype.BigDecimalDomainType;
-import org.openbravo.base.model.domaintype.DateDomainType;
-import org.openbravo.base.model.domaintype.DomainType;
-import org.openbravo.base.model.domaintype.LongDomainType;
-import org.openbravo.base.model.domaintype.StringDomainType;
import org.openbravo.base.provider.OBProvider;
import org.openbravo.base.structure.BaseOBObject;
import org.openbravo.client.kernel.BaseActionHandler;
@@ -131,10 +122,10 @@
value = OBProvider.getInstance().get(ParameterValue.class);
value.setParameter(param);
value.set(dbFilterProperty, filterObject);
- setParameterValue(param, value, p);
+ ParameterUtils.setParameterValue(param, value, p);
} else {
value = obq.list().get(0);
- setParameterValue(param, value, p);
+ ParameterUtils.setParameterValue(param, value, p);
}
OBDal.getInstance().save(value);
}
@@ -149,30 +140,6 @@
}
}
- private void setParameterValue(Parameter parameter, ParameterValue
parameterValue,
- JSONObject requestValue) {
- try {
- final DomainType domainType = ModelProvider.getInstance().getReference(
- parameter.getReference().getId()).getDomainType();
- final String stringValue = requestValue.getString("value");
- final SimpleDateFormat xmlDateFormat = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
-
- if (domainType.getClass().equals(StringDomainType.class)) {
- parameterValue.setValueString(stringValue);
- } else if (domainType.getClass().equals(DateDomainType.class)) {
- Date date = xmlDateFormat.parse(stringValue);
- parameterValue.setValueDate(date);
- } else if
(domainType.getClass().getSuperclass().equals(BigDecimalDomainType.class)
- || domainType.getClass().equals(LongDomainType.class)) {
- parameterValue.setValueNumber(new BigDecimal(stringValue));
- } else { // default
- parameterValue.setValueString(stringValue);
- }
- } catch (Exception e) {
- log.error("Error trying to set value for paramter: " +
parameter.getName(), e);
- }
- }
-
private Map<String, String> getMessge(String type, String message) {
OBError m = new OBError();
m.setTitle("");
diff -r b29165c217a8 -r 0c884939d01f
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
---
a/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
Fri Dec 24 12:25:53 2010 +0100
+++
b/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
Fri Dec 24 12:47:58 2010 +0100
@@ -32,6 +32,9 @@
import org.openbravo.base.exception.OBException;
import org.openbravo.base.provider.OBProvider;
import org.openbravo.base.secureApp.VariablesSecureApp;
+import org.openbravo.client.application.Parameter;
+import org.openbravo.client.application.ParameterValue;
+import org.openbravo.client.application.ParameterUtils;
import org.openbravo.client.kernel.BaseActionHandler;
import org.openbravo.client.kernel.RequestContext;
import org.openbravo.dal.core.OBContext;
@@ -252,6 +255,9 @@
widget.put("dbInstanceId", newWidgetInstance.getId());
log.debug(">> new widget added: " + newWidgetInstance.getId());
hasAddedInstances = true;
+
+ // Process parameter values
+ processParameters(widget, newWidgetInstance);
}
if (isOpenbravoTypeInstance &&
maxOpenbravoTypeInstanceRow[newColNum.intValue()] < newRowNum) {
maxOpenbravoTypeInstanceRow[newColNum.intValue()] = newRowNum;
@@ -298,4 +304,21 @@
}
}
+ private void processParameters(JSONObject widget, WidgetInstance
widgetInstance)
+ throws JSONException {
+ for (Parameter p : widgetInstance.getWidgetClass()
+ .getOBUIAPPParameterEMObkmoWidgetClassIDList()) {
+
+ if (p.getDefaultValue() == null) {
+ continue;
+ }
+
+ final ParameterValue value =
OBProvider.getInstance().get(ParameterValue.class);
+ value.setParameter(p);
+ value.setObkmoWidgetInstance(widgetInstance);
+ ParameterUtils.setDefaultParameterValue(value);
+ OBDal.getInstance().save(value);
+ }
+ OBDal.getInstance().flush();
+ }
}
diff -r b29165c217a8 -r 0c884939d01f
modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-myopenbravo.js
---
a/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-myopenbravo.js
Fri Dec 24 12:25:53 2010 +0100
+++
b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-myopenbravo.js
Fri Dec 24 12:47:58 2010 +0100
@@ -618,7 +618,7 @@
isc.isAn.Array(responseWidgets)) {
for (k = 0; k < responseWidgets.length; k++) {
if (widget.isSameWidget(responseWidgets[k], true)) {
- widget.dbInstanceId = responseWidgets[k].dbInstanceId;
+ widget.setDbInstanceId(responseWidgets[k].dbInstanceId);
break;
}
}
diff -r b29165c217a8 -r 0c884939d01f
modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js
---
a/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js
Fri Dec 24 12:25:53 2010 +0100
+++
b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js
Fri Dec 24 12:47:58 2010 +0100
@@ -428,7 +428,11 @@
return this.ID === widget.ID;
},
-
+
+ setDbInstanceId: function(instanceId) {
+ this.dbInstanceId = instanceId;
+ },
+
saveParameters: function(){
var post, i, param, paramObj, fieldDef;
if (isc.isA.emptyObject(this.parameters)) {
diff -r b29165c217a8 -r 0c884939d01f
modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js
---
a/modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js
Fri Dec 24 12:25:53 2010 +0100
+++
b/modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js
Fri Dec 24 12:47:58 2010 +0100
@@ -37,13 +37,16 @@
var currentHeight = this.getHeight(),
//currentBodyHeight = this.body.getHeight(),
headerHeight = this.headerDefaults.height,
- newGridHeight = this.grid.headerHeight
- + (this.grid.cellHeight * (this.rowsNumber ?
this.rowsNumber : 10))
- + this.grid.summaryRowHeight
- + 2;
+ newGridHeight = this.grid.headerHeight +
+ (this.grid.cellHeight * (this.rowsNumber ?
this.rowsNumber : 10)) +
+ this.grid.summaryRowHeight + 2;
this.setHeight(headerHeight + newGridHeight + 13);
- //this.body.setHeight(newBodyHeight);
+ },
+
+ setDbInstanceId: function (instanceId) {
+ this.Super('setDbInstanceId', instanceId);
+ this.grid.fetchData();
},
createWindowContents: function(){
@@ -102,7 +105,7 @@
canReorderFields: false,
canFreezeFields: false,
canGroupBy: false,
- autoFetchData: true,
+ autoFetchData: false,
canAutoFitFields: false,
showGridSummary: true,
@@ -118,7 +121,11 @@
if (ds) {
ds.fields = this.widget.fields;
this.dataSource = ds;
- this.filterData();
+
+ if(this.widget && this.widget.dbInstanceId) {
+ this.filterData();
+ }
+
}
},
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits