My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.gwtextux.client.data;

import com.google.gwt.core.client.JavaScriptObject;
import com.gwtext.client.core.UrlParam;
import com.gwtext.client.data.DataProxy;
import com.gwtext.client.util.JavaScriptObjectHelper;

public abstract class GWTProxy extends DataProxy{

public GWTProxy(){
jsObj = create();
}

protected native JavaScriptObject create() /*-{
var o=new $wnd.Ext.ux.data.GWTProxy();
o.gwtmem=this;
return o;
}-*/;

private static native void init()/*-{
$wnd.Ext.namespace("Ext.ux");
$wnd.Ext.namespace("Ext.ux.data");
$wnd.Ext.ux.data.GWTProxy = function(){
$wnd.Ext.ux.data.GWTProxy.superclass.constructor.call(this);
};

$wnd.Ext.extend($wnd.Ext.ux.data.GWTProxy, $wnd.Ext.data.DataProxy, {
load : function(params, reader, callback, scope, arg){
var o = {
params : params || {},
request: {
callback : callback,
scope : scope,
arg : arg
},
reader: reader,
callback : this.loadResponse,
scope: this
};
this.gwtmem.@com.gwtextux.client.data.GWTProxy::load(IILjava/lang/String;Ljava/lang/String;Lcom/google/gwt/core/client/JavaScriptObject;)
(params.start==undefined?-1:params.start, params.limit==undefined?-1:params.limit,params.sort==undefined?null:params.sort,params.dir==undefined?null:params.dir,o);
},
loadResponse : function(o, success, totalRecords, response){
if(!success){
this.fireEvent("loadexception", this, o, response);
o.request.callback.call(o.request.scope, null, o.request.arg, false);
return;
}
var result;
try {
result = o.reader.readRecords(response);
result.totalRecords=totalRecords;
}catch(e){
this.fireEvent("loadexception", this, o, response, e);
o.request.callback.call(o.request.scope, null, o.request.arg, false);
return;
}
this.fireEvent("load", this, o, o.request.arg);
o.request.callback.call(o.request.scope, result, o.request.arg, true);
}
});

}-*/;

/**
* Return the base params.
*
* @return the base params
*/
public UrlParam[] getBaseParams(JavaScriptObject store) {
JavaScriptObject baseParamsNative = convertBaseParams(store);
JavaScriptObject[] urlParamsJ = JavaScriptObjectHelper.toArray(baseParamsNative);
UrlParam[] baseParams = new UrlParam[urlParamsJ.length];
for (int i = 0; i < urlParamsJ.length; i++) {
UrlParam urlParam = new UrlParam(urlParamsJ[i]);
baseParams[i] = urlParam;
}
return baseParams;
}

private native JavaScriptObject convertBaseParams(JavaScriptObject store) /*-{
var params = new Array();
var i = 0;
var o = store.baseParams;
for(var key in o){
var ov = o[key];
var param = @com.gwtext.client.core.UrlParam::instance(Ljava/lang/String;Ljava/lang/String;)(key, String(ov));
params[i] = param.@com.gwtext.client.core.JsObject::getJsObj()();
i++;
}
return params;
}-*/;

public void load(int start, int limit, String sort, String dir, JavaScriptObject o){
JavaScriptObject store = JavaScriptObjectHelper.getAttributeAsJavaScriptObject(JavaScriptObjectHelper.getAttributeAsJavaScriptObject(o, "request"), "scope");
load(start, limit, sort, dir, o, getBaseParams(store));
}

public abstract void load(int start, int limit, String sort, String dir, JavaScriptObject o, UrlParam[] baseParams);

protected void loadResponse(JavaScriptObject o, boolean success, int totalRecords, Object[][] data) {
loadResponse(o, true, totalRecords, JavaScriptObjectHelper.convertToJavaScriptArray(data));
}

protected native void loadResponse(JavaScriptObject o, boolean success, int totalRecords, JavaScriptObject response)/*-{
var m = this.@com.gwtext.client.core.JsObject::getJsObj()();
m.loadResponse(o, success, totalRecords, response);
}-*/;

static{
init();
}
}

Change log

r187 by abhijeet.maharana on Sep 20, 2008   Diff
 Issue 36 .
Exception is thrown if a base param isn't
a String.
Go to: 
Project members, sign in to write a code review

Older revisions

r161 by michal.bergmann on Jul 26, 2008   Diff
changed loadResponse method
r31 by michal.bergmann on Mar 17, 2008   Diff
update, baseParams added to GWTProxy
r20 by michal.bergmann on Mar 7, 2008   Diff
GwtProxy
All revisions of this file

File info

Size: 4786 bytes, 113 lines
Powered by Google Project Hosting