Hi!
I'm using: SmartGWT 2.2 (LGPL) + GWT 2.04 on Linux.
I need to retrieve some data from my server like: user configurarions and others.
I try to use the JSON and RestDataSource.
Follow my code:
The example server response (j.js):
The console says:
I'm using JSON and RestDataSource with ListGrid and works fine.
The problems:
1) No error generated but the UserName don't change.
2) Even saying to use POST, never works. Only sends GETs.
Not so important.
Another question:
How to get the current <i>locale</i> value?
Any help?
I'm missing something?
Thanks in advance,
Andre Derraik.
I'm using: SmartGWT 2.2 (LGPL) + GWT 2.04 on Linux.
I need to retrieve some data from my server like: user configurarions and others.
I try to use the JSON and RestDataSource.
Follow my code:
Code:
package com.test.client; import com.google.gwt.core.client.EntryPoint; .... /** * Entry point classes define <code>onModuleLoad()</code>. */ public class Test implements EntryPoint { /** * The message displayed to the user when the server cannot be reached or * returns an error. */ private static final String SERVER_ERROR = "An error occurred while " + "attempting to contact the server. Please check your network " + "connection and try again."; public static String UserName = "Gary Oldman"; public final static String URL = "/h/j.js"; // Time in milliseconds (10 seconds) public static double REQUEST_TIMEOUT = 10.0 * 1000.0; /** * This is the entry point method. */ public void onModuleLoad() { // =========================================================== // Create the Fake RestDataSource // =========================================================== final RestDataSource jDS = new RestDataSource() { /** * Transform the request */ @Override protected Object transformRequest(DSRequest dsRequest) { // Set some attributes dsRequest.setContentType("application/json"); dsRequest.setUseSimpleHttp(true); // Set a timeout in milliseconds RPCManager.setDefaultTimeout(REQUEST_TIMEOUT); // Set a prompt for this request RPCManager.setTimeoutErrorMessage(SERVER_ERROR); // Set some attributes switch( dsRequest.getOperationType() ) { case FETCH: break; case ADD: break; case UPDATE: break; case REMOVE: break; default: break; } return super.transformRequest(dsRequest); } /** * Transform the response into Java code. */ @Override protected void transformResponse(DSResponse response, DSRequest request, Object jsonData) { /** * Response: * {"response":{"status":0,"data":{"username":"John Doe","Id":"1","operatorid":"1"}}} */ // Get some data JSONArray values = XMLTools.selectObjects(jsonData, "/response/data/username"); UserName = ((JSONString) values.get(0)).stringValue(); } }; jDS.setID("JSONTestDS"); jDS.setFetchDataURL(URL); jDS.setAddDataURL(URL); jDS.setUpdateDataURL(URL); jDS.setRemoveDataURL(URL); jDS.setDataFormat(DSDataFormat.JSON); jDS.setDataProtocol(DSProtocol.POSTPARAMS); jDS.setClientOnly(false); // Create the DataSource fields DataSourceIntegerField idField = new DataSourceIntegerField("Id"); idField.setPrimaryKey(true); jDS.setFields(idField); // =========================================================== // Create the Buttons // =========================================================== IButton fetch = new IButton("Fetch data"); fetch.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Criteria criteria = new Criteria("Id", "10"); jDS.fetchData(criteria); SC.say("User name: "+UserName); } }); IButton show = new IButton("Show Console"); show.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { SC.showConsole(); } }); // =========================================================== // Create the layouts // =========================================================== HLayout hlayout = new HLayout(); hlayout.setMembersMargin(5); hlayout.addMember(fetch); hlayout.addMember(show); hlayout.draw(); } }
Code:
{"response":{"status":0,"data":{"username":"John Doe","Id":"10","operatorid":"1"}}}
Code:
20:39:02.005:MUP3:INFO:RPCManager:sendQueue[0]: 1 RPCRequest(s); transport: xmlHttpRequest; target: /h/j.js 20:39:02.011:MUP3:DEBUG:RPCManager:XMLHttpRequest GET from /h/j.js with fields: {Id: "10", _operationType: "fetch", _dataSource: "JSONTestDS"} full URL string: /h/j.js?Id=10&_operationType=fetch&_dataSource=JSONTestDS 20:39:02.071:XRP7:INFO:RPCManager:transaction 0 arrived after 64ms 20:39:02.073:XRP7:DEBUG:RPCManager:Result string for transaction 0: "{"response":{"status":0,"data":{"username":"John Doe","Id":"10","operatorid":"1"}}} " 20:39:02.075:XRP7:INFO:RPCManager:rpcResponse(unstructured) results -->"{"response":{"status":0,"data":{"username":"John Doe","Id":"10","operatorid":"1"}}} "<--
The problems:
1) No error generated but the UserName don't change.
2) Even saying to use POST, never works. Only sends GETs.
Not so important.
Another question:
How to get the current <i>locale</i> value?
Any help?
I'm missing something?
Thanks in advance,
Andre Derraik.
Comment