Package edu.stanford.bmir.protege.web.client.ui.util

Source Code of edu.stanford.bmir.protege.web.client.ui.util.GWTProxy

package edu.stanford.bmir.protege.web.client.ui.util;

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.@edu.stanford.bmir.protege.web.client.ui.util.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();
  }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.ui.util.GWTProxy

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.