/** * Create DataSource for TileGrid * * @param attributes */ private void createScGridDS() { /* * Request url */ String url = getRequestUrl(); /* * Request fields */ DataSourceField[] fields = createDataFields(attributes); dataSource = new RestDataSource() { protected Object transformRequest(DSRequest dsRequest) { dsRequest.setParams(getRequestParams()); return super.transformRequest(dsRequest); } protected void transformResponse(DSResponse response, DSRequest request, Object data) { super.transformResponse(response, request, data); } }; dataSource.setDataFormat(DSDataFormat.JSON); dataSource.setDataProtocol(DSProtocol.GETPARAMS); dataSource.setDataURL(url); dataSource.setFields(fields); /* * finally set data source */ setDataSource(dataSource); }
@Override protected void transformResponse(DSResponse dsResponse, DSRequest dsRequest, Object data) { if (RestConfig.isStatusOk(dsResponse)) { Record[] records = dsResponse.getData(); for (Record record : records) { String mid = record.getAttribute(FIELD_ID); String way = record.getAttribute(FIELD_WAY); String pk = mid; if (way != null) { pk = mid + way; } record.setAttribute(PRIMARY_KEY, pk); } } super.transformResponse(dsResponse, dsRequest, data); }