details: /erp/devel/pi/rev/1f9e0c090e86 changeset: 9111:1f9e0c090e86 user: Martin Taal <martin.taal <at> openbravo.com> date: Tue Dec 14 06:10:40 2010 +0100 summary: Added refresh after switching from edit to content mode
details: /erp/devel/pi/rev/917bf3aaadc1 changeset: 9112:917bf3aaadc1 user: Martin Taal <martin.taal <at> openbravo.com> date: Tue Dec 14 07:11:13 2010 +0100 summary: Changes for grid properties and linking datasource to the grid diffstat: modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js | 1 + modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_REFERENCE.xml | 14 + modules/org.openbravo.client.querylist/src-db/database/sourcedata/OBUIAPP_PARAMETER.xml | 21 ++ modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListDataSource.java | 22 +- modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListWidgetProvider.java | 22 ++- modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js | 91 +++++++-- 6 files changed, 133 insertions(+), 38 deletions(-) diffs (truncated from 304 to 300 lines): diff -r 56b923ffdec1 -r 917bf3aaadc1 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 Mon Dec 13 23:31:25 2010 +0100 +++ b/modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-widget.js Tue Dec 14 07:11:13 2010 +0100 @@ -194,6 +194,7 @@ if (this.widgetMode === this.CONTENT_MODE) { this.toMode(this.EDIT_MODE); } else { + this.refresh(); this.toMode(this.CONTENT_MODE); } }, diff -r 56b923ffdec1 -r 917bf3aaadc1 modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_REFERENCE.xml --- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_REFERENCE.xml Mon Dec 13 23:31:25 2010 +0100 +++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_REFERENCE.xml Tue Dec 14 07:11:13 2010 +0100 @@ -12,6 +12,20 @@ <!--0FCD269097054C5790CFDC3E9CBEFD21--> <ISVALUEDISPLAYED><![CDATA[N]]></ISVALUEDISPLAYED> <!--0FCD269097054C5790CFDC3E9CBEFD21--></AD_REFERENCE> +<!--B36DF126DF5F4077A37F1E5B963AA636--><AD_REFERENCE> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <AD_REFERENCE_ID><![CDATA[B36DF126DF5F4077A37F1E5B963AA636]]></AD_REFERENCE_ID> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <NAME><![CDATA[Grid Properties Reference]]></NAME> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <DESCRIPTION><![CDATA[Reference used to identify grid properties.]]></DESCRIPTION> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <HELP><![CDATA[Reference used to identify grid properties. ]]></HELP> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <AD_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_MODULE_ID> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <ISBASEREFERENCE><![CDATA[N]]></ISBASEREFERENCE> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <PARENTREFERENCE_ID><![CDATA[10]]></PARENTREFERENCE_ID> +<!--B36DF126DF5F4077A37F1E5B963AA636--> <ISVALUEDISPLAYED><![CDATA[N]]></ISVALUEDISPLAYED> +<!--B36DF126DF5F4077A37F1E5B963AA636--></AD_REFERENCE> + <!--B5730B21173B4AA9BB44ADAE2660A853--><AD_REFERENCE> <!--B5730B21173B4AA9BB44ADAE2660A853--> <AD_REFERENCE_ID><![CDATA[B5730B21173B4AA9BB44ADAE2660A853]]></AD_REFERENCE_ID> <!--B5730B21173B4AA9BB44ADAE2660A853--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 56b923ffdec1 -r 917bf3aaadc1 modules/org.openbravo.client.querylist/src-db/database/sourcedata/OBUIAPP_PARAMETER.xml --- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/OBUIAPP_PARAMETER.xml Mon Dec 13 23:31:25 2010 +0100 +++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/OBUIAPP_PARAMETER.xml Tue Dec 14 07:11:13 2010 +0100 @@ -18,6 +18,27 @@ <!--3A93E12C289149CCB2CD1ECA2643469C--> <EM_OBKMO_WIDGET_CLASS_ID><![CDATA[2A32CF26F3F64FE39C7F94E9D82497D1]]></EM_OBKMO_WIDGET_CLASS_ID> <!--3A93E12C289149CCB2CD1ECA2643469C--></OBUIAPP_PARAMETER> +<!--3C7A51E5281F418589AEBA8EE8659A1C--><OBUIAPP_PARAMETER> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <OBUIAPP_PARAMETER_ID><![CDATA[3C7A51E5281F418589AEBA8EE8659A1C]]></OBUIAPP_PARAMETER_ID> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <AD_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_MODULE_ID> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <NAME><![CDATA[Grid Properties]]></NAME> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <DESCRIPTION><![CDATA[Grid Properties]]></DESCRIPTION> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <SEQNO><![CDATA[0]]></SEQNO> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <AD_REFERENCE_ID><![CDATA[10]]></AD_REFERENCE_ID> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <AD_REFERENCE_VALUE_ID><![CDATA[B36DF126DF5F4077A37F1E5B963AA636]]></AD_REFERENCE_VALUE_ID> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <COLUMNNAME><![CDATA[dummy]]></COLUMNNAME> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <FIELDLENGTH><![CDATA[0]]></FIELDLENGTH> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <ISFIXED><![CDATA[Y]]></ISFIXED> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <FIXEDVALUE><![CDATA[{canMultiSort: false}]]></FIXEDVALUE> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <EVALUATEFIXEDVALUE><![CDATA[N]]></EVALUATEFIXEDVALUE> +<!--3C7A51E5281F418589AEBA8EE8659A1C--> <EM_OBKMO_WIDGET_CLASS_ID><![CDATA[D1E4261099AE4095B2F2DAEE0F7E7784]]></EM_OBKMO_WIDGET_CLASS_ID> +<!--3C7A51E5281F418589AEBA8EE8659A1C--></OBUIAPP_PARAMETER> + <!--8D90A3CDDBC44282992A9858F16EA9A8--><OBUIAPP_PARAMETER> <!--8D90A3CDDBC44282992A9858F16EA9A8--> <OBUIAPP_PARAMETER_ID><![CDATA[8D90A3CDDBC44282992A9858F16EA9A8]]></OBUIAPP_PARAMETER_ID> <!--8D90A3CDDBC44282992A9858F16EA9A8--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 56b923ffdec1 -r 917bf3aaadc1 modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListDataSource.java --- a/modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListDataSource.java Mon Dec 13 23:31:25 2010 +0100 +++ b/modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListDataSource.java Tue Dec 14 07:11:13 2010 +0100 @@ -49,7 +49,7 @@ * @return the total number of objects */ protected int getCount(Map<String, String> parameters) { - return getData(parameters, 0, Integer.MAX_VALUE).size(); + return getData(parameters, 0, (Integer.MAX_VALUE - 1)).size(); } /* @@ -62,22 +62,22 @@ int endRow) { OBContext.setAdminMode(); try { - // WidgetInstance widgetInstance = OBDal.getInstance().get(WidgetInstance.class, - // parameters.get("widgetId")); + WidgetInstance widgetInstance = OBDal.getInstance().get(WidgetInstance.class, + parameters.get("widgetInstanceId")); WidgetClass widgetClass = OBDal.getInstance().get(WidgetClass.class, "D1E4261099AE4095B2F2DAEE0F7E7784"); - WidgetInstance widgetInstance = widgetClass.getOBKMOWidgetInstanceList().get(0); + // WidgetInstance widgetInstance = widgetClass.getOBKMOWidgetInstanceList().get(0); IncludeIn includeIn = QueryListUtils.IncludeIn.WidgetView; List<OBCQL_QueryColumn> columns = QueryListUtils.getColumns(widgetClass .getOBCQLWidgetQueryList().get(0), includeIn); - Query widgetQuery = OBDal.getInstance().getSession() - .createQuery(widgetClass.getOBCQLWidgetQueryList().get(0).getHQL()); + Query widgetQuery = OBDal.getInstance().getSession().createQuery( + widgetClass.getOBCQLWidgetQueryList().get(0).getHQL()); String[] queryAliases = widgetQuery.getReturnAliases(); if (startRow > 0) { widgetQuery.setFirstResult(startRow); } if (endRow > startRow) { - widgetQuery.setFetchSize(endRow - startRow + 1); + widgetQuery.setMaxResults(endRow - startRow + 1); } String[] params = widgetQuery.getNamedParameters(); if (params.length > 0) { @@ -138,15 +138,15 @@ HashMap<String, Object> parameterValues = new HashMap<String, Object>(); for (ParameterValue value : widgetInstance .getOBUIAPPParameterValueEMObkmoWidgetInstanceIDList()) { - parameterValues.put(value.getParameter().getDBColumnName(), - ApplicationUtils.getParameterValue(value)); + parameterValues.put(value.getParameter().getDBColumnName(), ApplicationUtils + .getParameterValue(value)); } for (Parameter parameter : widgetInstance.getWidgetClass() .getOBUIAPPParameterEMObkmoWidgetClassIDList()) { if (!parameterValues.containsKey(parameter.getDBColumnName()) && parameter.isFixed()) { - parameterValues.put(parameter.getDBColumnName(), - ApplicationUtils.getParameterFixedValue(parameters, parameter)); + parameterValues.put(parameter.getDBColumnName(), ApplicationUtils.getParameterFixedValue( + parameters, parameter)); } } return parameterValues; diff -r 56b923ffdec1 -r 917bf3aaadc1 modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListWidgetProvider.java --- a/modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListWidgetProvider.java Mon Dec 13 23:31:25 2010 +0100 +++ b/modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListWidgetProvider.java Tue Dec 14 07:11:13 2010 +0100 @@ -21,6 +21,7 @@ import org.apache.log4j.Logger; import org.codehaus.jettison.json.JSONObject; import org.openbravo.base.exception.OBException; +import org.openbravo.client.application.Parameter; import org.openbravo.client.kernel.KernelConstants; import org.openbravo.client.myob.WidgetInstance; import org.openbravo.client.myob.WidgetProvider; @@ -32,10 +33,27 @@ */ public class QueryListWidgetProvider extends WidgetProvider { + private static String GRID_PROPERTIES_REFERENCE = "B36DF126DF5F4077A37F1E5B963AA636"; private static final Logger log = Logger.getLogger(QueryListWidgetProvider.class); @Override public String generate() { + JSONObject gridPropertiesObject = null; + for (Parameter parameter : getWidgetClass().getOBUIAPPParameterEMObkmoWidgetClassIDList()) { + // fixed parameters are not part of the fielddefinitions + if (parameter.getReferenceSearchKey() != null + && parameter.getReferenceSearchKey().getId().equals(GRID_PROPERTIES_REFERENCE)) { + try { + gridPropertiesObject = new JSONObject(parameter.getFixedValue()); + } catch (Exception e) { + // ignore, invalid grid properties + log.error("Grid properties parameter " + parameter + " has an illegal format " + + e.getMessage(), e); + } + } + } + String gridProperties = (gridPropertiesObject == null ? "" : ", gridProperties: " + + gridPropertiesObject.toString()); return "isc.defineClass('" + KernelConstants.ID_PREFIX + getWidgetClass().getId() @@ -43,7 +61,8 @@ + getWidgetClass().getId() + "', fields:" + QueryListUtils - .getWidgetClassFields(getWidgetClass(), QueryListUtils.IncludeIn.WidgetView) + "});"; + .getWidgetClassFields(getWidgetClass(), QueryListUtils.IncludeIn.WidgetView) + + gridProperties + "});"; } @Override @@ -62,6 +81,7 @@ try { final JSONObject jsonObject = new JSONObject(); addDefaultWidgetProperties(jsonObject, widgetInstance); + jsonObject.put("widgetInstanceId", widgetInstance.getId()); final JSONObject parameters = jsonObject.getJSONObject(WidgetProvider.PARAMETERS); return jsonObject; } catch (Exception e) { diff -r 56b923ffdec1 -r 917bf3aaadc1 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 Mon Dec 13 23:31:25 2010 +0100 +++ b/modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js Tue Dec 14 07:11:13 2010 +0100 @@ -22,51 +22,90 @@ // isc.defineClass('OBQueryListWidget', isc.OBWidget).addProperties({ - widgetId : null, - fields : null, - grid : null, - - createWindowContents : function() { + widgetId: null, + widgetInstanceId: null, + fields: null, + grid: null, + gridProperties: {}, + + createWindowContents: function(){ var layout = isc.VStack.create({ - height : '100%', - width : '100%', - styleName : '' + height: '100%', + width: '100%', + styleName: '' }), url, params = {}; - - this.grid = isc.OBQueryListGrid.create({ - widget : this, - fields : this.fields - }); - + + this.grid = isc.OBQueryListGrid.create(isc.addProperties({ + widget: this, + fields: this.fields + }, this.gridProperties)); + layout.addMembers(this.grid); return layout; + }, + + refresh: function(){ + this.grid.invalidateCache(); + this.grid.filterData(); } - + }); isc.ClassFactory.defineClass('OBQueryListGrid', isc.ListGrid); isc.OBQueryListGrid.addProperties({ - width : '100%', - height : '100%', - dataSource : OB.Datasource.get('DD17275427E94026AD721067C3C91C18'), - + width: '100%', + height: '100%', + dataSource: null, + // some common settings //showFilterEditor: false, //filterOnKeypress: false, - + canEdit: false, alternateRecordStyles: true, canReorderFields: true, canFreezeFields: false, canGroupBy: false, + autoFetchData: true, //canAutoFitFields: false, - + //autoFitFieldWidths: true, //autoFitWidthApproach: 'title', - - setDataSource : function(ds) { - ds.fields = this.widget.fields; - this.dataSource = ds; - } + + initWidget: function(){ + this.setDataSource(OB.Datasource.get('DD17275427E94026AD721067C3C91C18', this)); + return this.Super('initWidget', arguments); + }, + + setDataSource: function(ds){ + if (ds) { + ds.fields = this.widget.fields; + this.dataSource = ds; + } + }, + + filterData: function(criteria, callback, requestProperties){ + if (!criteria) { + criteria = {}; + } + if (!requestProperties) { + requestProperties = {}; + } + requestProperties.showPrompt = false; + criteria.widgetInstanceId = this.widget.dbInstanceId; + return this.Super('filterData', [criteria, callback, requestProperties]); + }, + + fetchData: function(criteria, callback, requestProperties){ + if (!criteria) { + criteria = {}; + } + if (!requestProperties) { + requestProperties = {}; + } + requestProperties.showPrompt = false; ------------------------------------------------------------------------------ Lotusphere 2011 Register now for Lotusphere 2011 and learn how to connect the dots, take your collaborative environment to the next level, and enter the era of Social Business. http://p.sf.net/sfu/lotusphere-d2d _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits