Example usage for com.google.gwt.xhr.client XMLHttpRequest setOnReadyStateChange

List of usage examples for com.google.gwt.xhr.client XMLHttpRequest setOnReadyStateChange

Introduction

In this page you can find the example usage for com.google.gwt.xhr.client XMLHttpRequest setOnReadyStateChange.

Prototype

public abstract void setOnReadyStateChange(ReadyStateChangeHandler handler);

Source Link

Document

Sets the ReadyStateChangeHandler to be notified when the object's ready-state changes.

Usage

From source file:com.badlogic.gdx.backends.gwt.preloader.AssetDownloader.java

License:Apache License

public void loadText(String url, final AssetLoaderListener<String> listener) {
    XMLHttpRequest request = XMLHttpRequest.create();
    request.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override/*from   www .j  a v a 2 s  .c  o  m*/
        public void onReadyStateChange(XMLHttpRequest xhr) {
            if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                if (xhr.getStatus() != 200) {
                    listener.onFailure();
                } else {
                    listener.onSuccess(xhr.getResponseText());
                }
            }
        }
    });
    setOnProgress(request, listener);
    request.open("GET", url);
    request.setRequestHeader("Content-Type", "text/plain; charset=utf-8");
    request.send();
}

From source file:com.badlogic.gdx.backends.gwt.preloader.AssetDownloader.java

License:Apache License

public void loadBinary(final String url, final AssetLoaderListener<Blob> listener) {
    XMLHttpRequest request = XMLHttpRequest.create();
    request.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override/*  w  w w  .j  a va2  s . co m*/
        public void onReadyStateChange(XMLHttpRequest xhr) {
            if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                if (xhr.getStatus() != 200) {
                    listener.onFailure();
                } else {
                    Int8Array data = TypedArrays.createInt8Array(xhr.getResponseArrayBuffer());
                    listener.onSuccess(new Blob(data));
                }
            }
        }
    });
    setOnProgress(request, listener);
    request.open("GET", url);
    request.setResponseType(ResponseType.ArrayBuffer);
    request.send();
}

From source file:com.badlogic.gdx.backends.gwt.preloader.BinaryLoader.java

License:Apache License

public BinaryLoader(String url, LoaderCallback<Blob> callback) {
    this.callback = callback;
    XMLHttpRequest request = XMLHttpRequest.create();
    request.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override/*from  w w w .java2s.c o  m*/
        public void onReadyStateChange(XMLHttpRequest xhr) {
            if (xhr.getReadyState() == 4) {
                int status = xhr.getStatus();
                if (status != 200) {
                    BinaryLoader.this.callback.error();
                } else {
                    BinaryLoader.this.callback.success(new Blob(xhr.getResponseText()));
                }
            }
        }
    });
    overrideMimeType(request, "text/plain; charset=x-user-defined");
    request.open("GET", url);
    request.send();
}

From source file:com.cgxlib.xq.client.plugins.deferred.PromiseReqBuilder.java

License:Apache License

/**
 * Using this constructor we access to some things in the xmlHttpRequest
 * which are not available in GWT, like adding progress handles or sending
 * javascript data (like forms in modern html5 file api).
 *//* ww w  .  jav a  2  s .co m*/
public PromiseReqBuilder(Settings settings) {
    String httpMethod = settings.getType();
    String url = settings.getUrl();
    IsProperties data = settings.getData();
    String ctype = settings.getContentType();
    Boolean isFormData = data != null && data.getDataImpl() instanceof JavaScriptObject
            && JsUtils.isFormData(data.<JavaScriptObject>getDataImpl());

    XMLHttpRequest xmlHttpRequest = XMLHttpRequest.create();
    try {
        if (settings.getUsername() != null && settings.getPassword() != null) {
            xmlHttpRequest.open(httpMethod, url, settings.getUsername(), settings.getPassword());
        } else if (settings.getUsername() != null) {
            xmlHttpRequest.open(httpMethod, url, settings.getUsername());
        } else {
            xmlHttpRequest.open(httpMethod, url);
        }
    } catch (JavaScriptException e) {
        RequestPermissionException requestPermissionException = new RequestPermissionException(url);
        requestPermissionException.initCause(new RequestException(e.getMessage()));
        onError(null, e);
        return;
    }

    JsUtils.prop(xmlHttpRequest, "onprogress", JsUtils.wrapFunction(new Function() {
        public void f() {
            JsCache p = arguments(0);
            double total = p.getDouble("total");
            double loaded = p.getDouble("loaded");
            double percent = loaded == 0 ? 0 : total == 0 ? 100 : (100 * loaded / total);
            dfd.notify(total, loaded, percent, "download");
        }
    }));

    JavaScriptObject upload = JsUtils.prop(xmlHttpRequest, "upload");
    JsUtils.prop(upload, "onprogress", JsUtils.wrapFunction(new Function() {
        public void f() {
            JsCache p = arguments(0);
            double total = p.getDouble("total");
            double loaded = p.getDouble("loaded");
            double percent = 100 * loaded / total;
            dfd.notify(total, loaded, percent, "upload");
        }
    }));

    IsProperties headers = settings.getHeaders();
    if (headers != null) {
        for (String headerKey : headers.getFieldNames()) {
            xmlHttpRequest.setRequestHeader(headerKey, String.valueOf(headers.get(headerKey)));
        }
    }

    if (data != null && !isFormData && !"GET".equalsIgnoreCase(httpMethod)) {
        xmlHttpRequest.setRequestHeader("Content-Type", ctype);
    }

    // Using xq to set credentials since this method was added in 2.5.1
    // xmlHttpRequest.setWithCredentials(true);
    JsUtils.prop(xmlHttpRequest, "withCredentials", settings.getWithCredentials());

    final Request request = createRequestVltr(xmlHttpRequest, settings.getTimeout(), this);

    xmlHttpRequest.setOnReadyStateChange(new ReadyStateChangeHandler() {
        public void onReadyStateChange(XMLHttpRequest xhr) {
            if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                xhr.clearOnReadyStateChange();
                fireOnResponseReceivedVltr(request, PromiseReqBuilder.this);
            }
        }
    });

    try {
        JsUtils.runJavascriptFunction(xmlHttpRequest, "send",
                isFormData ? data.getDataImpl() : settings.getDataString());
    } catch (JavaScriptException e) {
        onError(null, e);
    }
}

From source file:com.codenvy.plugin.contribution.client.steps.GenerateReviewFactoryStep.java

License:Open Source License

private void saveFactory(final FormData formData, final AsyncCallback<Factory> callback) {
    final String requestUrl = apiTemplate.saveFactory();

    final XMLHttpRequest xhr = XMLHttpRequest.create();
    xhr.open(HTTPMethod.POST, requestUrl);
    xhr.setRequestHeader(ACCEPT, APPLICATION_JSON);
    xhr.setOnReadyStateChange(new ReadyStateChangeHandler() {

        @Override/*  w ww . j a v  a2 s.co  m*/
        public void onReadyStateChange(final XMLHttpRequest request) {
            if (request.getReadyState() == XMLHttpRequest.DONE) {
                if (request.getStatus() == Response.SC_OK) {
                    request.clearOnReadyStateChange();
                    final String payLoad = request.getResponseText();
                    final Factory createdFactory = dtoFactory.createDtoFromJson(payLoad, Factory.class);

                    if (createdFactory.getId() == null || createdFactory.getId().isEmpty()) {
                        final ServiceError error = dtoFactory.createDtoFromJson(payLoad, ServiceError.class);
                        callback.onFailure(new Exception(error.getMessage()));
                    } else {
                        callback.onSuccess(createdFactory);
                    }
                } else {
                    final Response response = new ResponseImpl(request);
                    callback.onFailure(new ServerException(response));
                }
            }

        }
    });

    if (!sendFormData(xhr, formData)) {
        callback.onFailure(new Exception("Could not call service"));
    }
}

From source file:com.google.speedtracer.client.util.Xhr.java

License:Apache License

private static void request(XMLHttpRequest xhr, String method, String url, String requestData,
        String contentType, XhrCallback callback) {
    try {//  w w w  .j a  va  2  s . com
        xhr.setOnReadyStateChange(new Handler(callback));
        xhr.open(method, url);
        xhr.setRequestHeader("Content-type", contentType);
        xhr.send(requestData);
    } catch (Exception e) {
        // Just fail.
        callback.onFail(xhr);
        xhr.clearOnReadyStateChange();
    }
}

From source file:com.google.speedtracer.client.util.Xhr.java

License:Apache License

private static void request(XMLHttpRequest xhr, String method, String url, final XhrCallback callback) {
    try {/*from  w  w w .  j ava 2  s. com*/
        xhr.setOnReadyStateChange(new Handler(callback));
        xhr.open(method, url);
        xhr.send();
    } catch (Exception e) {
        // Just fail.
        callback.onFail(xhr);
        xhr.clearOnReadyStateChange();
    }
}

From source file:com.googlecode.gwtquake.client.GwtResourceLoaderImpl.java

License:Open Source License

public void loadResourceAsync(final String path, final ResourceLoader.Callback callback) {
    XMLHttpRequest req = XMLHttpRequest.create();

    final Exception e = new Exception();
    final int mySequenceNumber = freeSequenceNumber++;

    req.setOnReadyStateChange(new ReadyStateChangeHandler() {
        boolean receivingMsg;

        public void onReadyStateChange(final XMLHttpRequest xhr) {
            if (xhr.getReadyState() == 3 && !receivingMsg) {
                Com.Printf("Receiving #" + mySequenceNumber + ": " + path + "\n");
                receivingMsg = true;//from   www . j a v  a  2s  .  co m
            } else if (xhr.getReadyState() == 4) {
                if (mySequenceNumber < ignoreSequenceNumbersBelow) {
                    Com.Printf("Ignoring outdated response #" + mySequenceNumber + ": " + path + "\n");
                } else {
                    String response;
                    if (xhr.getStatus() != 200) {
                        Com.Printf("Failed to load file #" + mySequenceNumber + ": " + path + " status: "
                                + xhr.getStatus() + "/" + xhr.getStatusText() + "\n");
                        ResourceLoader.fail(new IOException("status = " + xhr.getStatus()));
                        response = null;
                    } else {
                        response = xhr.getResponseText();
                        Com.Printf("Received response #" + mySequenceNumber + ": " + path + "\r");
                    }
                    readyList.add(0, new ResponseHandler(mySequenceNumber, callback, response));
                    if (mySequenceNumber == currentSequenceNumber) {
                        processReadyList();
                    }
                }
            }
        }
    });

    Com.Printf("Requesting: " + path + "\n");

    overrideMimeType(req, "text/plain; charset=x-user-defined");
    req.open("GET", "/baseq2/" + path);
    req.send();
}

From source file:elemental.js.util.Xhr.java

License:Apache License

private static void request(XMLHttpRequest xhr, String method, String url, String requestData,
        String contentType, Callback callback) {
    try {/* ww  w .  j av a2 s .  com*/
        xhr.setOnReadyStateChange(new Handler(callback));
        xhr.open(method, url);
        xhr.setRequestHeader("Content-type", contentType);
        xhr.send(requestData);
    } catch (JavaScriptException e) {
        // Just fail.
        callback.onFail(xhr);
        xhr.clearOnReadyStateChange();
    }
}

From source file:elemental.js.util.Xhr.java

License:Apache License

private static void request(XMLHttpRequest xhr, String method, String url, final Callback callback) {
    try {//from w w w  . j av  a2 s .c  o  m
        xhr.setOnReadyStateChange(new Handler(callback));
        xhr.open(method, url);
        xhr.send();
    } catch (JavaScriptException e) {
        // Just fail.
        callback.onFail(xhr);
        xhr.clearOnReadyStateChange();
    }
}