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

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

Introduction

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

Prototype

public abstract int getReadyState();

Source Link

Document

Get's the current ready-state

Usage

From source file:io.reinert.requestor.RequestDispatcherImpl.java

License:Apache License

@Override
protected <D> void send(RequestOrder request, final Deferred<D> deferred, Class<D> resolveType,
        @Nullable Class<?> parametrizedType) {
    final HttpMethod httpMethod = request.getMethod();
    final String url = request.getUrl();
    final Headers headers = request.getHeaders();
    final Payload payload = request.getPayload();
    final ResponseType responseType = request.getResponseType();

    // Create XMLHttpRequest
    final XMLHttpRequest xmlHttpRequest = (XMLHttpRequest) XMLHttpRequest.create();

    // Open XMLHttpRequest
    try {//from  w  w w.j  a  va2s  . c  om
        xmlHttpRequest.open(httpMethod.getValue(), url);
    } catch (JavaScriptException e) {
        RequestPermissionException requestPermissionException = new RequestPermissionException(url);
        requestPermissionException.initCause(new RequestException(e.getMessage()));
        deferred.reject(requestPermissionException);
        return;
    }

    // Set withCredentials
    xmlHttpRequest.setWithCredentials(request.isWithCredentials());

    // Fulfill headers
    try {
        setHeaders(headers, xmlHttpRequest);
    } catch (JavaScriptException e) {
        deferred.reject(new RequestException("Could not manipulate the XHR headers: " + e.getMessage()));
        return;
    }

    // Set responseType
    xmlHttpRequest.setResponseType(responseType.getValue());

    // Create RequestCallback
    final RequestCallback callback = getRequestCallback(request, xmlHttpRequest, deferred, resolveType,
            parametrizedType);

    // Create the underlying request from gwt.http module
    final com.google.gwt.http.client.Request gwtRequest = new com.google.gwt.http.client.Request(xmlHttpRequest,
            request.getTimeout(), callback);

    // Properly configure XMLHttpRequest's onreadystatechange
    xmlHttpRequest.setOnReadyStateChange(new ReadyStateChangeHandler() {
        public void onReadyStateChange(com.google.gwt.xhr.client.XMLHttpRequest xhr) {
            if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                xhr.clearOnReadyStateChange();
                ((XMLHttpRequest) xhr).clearOnProgress();
                gwtRequest.fireOnResponseReceived(callback);
            }
        }
    });

    // Set XMLHttpRequest's onprogress if available binding to promise's progress
    xmlHttpRequest.setOnProgress(new ProgressHandler() {
        @Override
        public void onProgress(ProgressEvent progress) {
            deferred.notifyDownload(new RequestProgressImpl(progress));
        }
    });

    // Set XMLHttpRequest's upload onprogress if available binding to promise's progress
    xmlHttpRequest.setUploadOnProgress(new ProgressHandler() {
        @Override
        public void onProgress(ProgressEvent progress) {
            deferred.notifyUpload(new RequestProgressImpl(progress));
        }
    });

    // Pass the connection to the deferred to enable it to cancel the request if necessary (RECOMMENDED)
    deferred.setHttpConnection(getConnection(gwtRequest));

    // Send the request
    try {
        if (payload != null) {
            if (payload.isString() != null) {
                xmlHttpRequest.send(payload.isString());
            } else {
                xmlHttpRequest.send(payload.isJavaScriptObject());
            }
        } else {
            xmlHttpRequest.send();
        }
    } catch (JavaScriptException e) {
        deferred.reject(new RequestDispatchException("Could not send the XHR: " + e.getMessage()));
    }
}

From source file:jake2.gwt.client.GwtResourceLoaderImpl.java

License:Open Source License

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

    final String eol = path.endsWith(".bsp") ? "\n" : "\r";

    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 + eol);
                receivingMsg = true;/*from   w ww . j  a va  2 s.c o 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 #" + currentSequenceNumber + "\n");
                        Compatibility.printStackTrace(e);
                        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 + eol);

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

From source file:net.npe.gwt.xhr.client.ArrayBufferRequest.java

License:MIT License

public ArrayBufferRequest(String url, final Handler handler) {
    xhr = XMLHttpRequest.create();/*  ww w  .j  a  v a 2s  .c  o m*/
    xhr.setResponseType(ResponseType.ArrayBuffer);
    xhr.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override
        public void onReadyStateChange(XMLHttpRequest xhr) {
            if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                if (xhr.getStatus() >= 400) {
                    if (handler != null)
                        handler.onFailure();
                } else {
                    if (handler != null)
                        handler.onSuccess(xhr.getResponseArrayBuffer());
                }
            }
        }
    });
    xhr.open("GET", url);
}

From source file:net.npe.image.util.gwt.GwtImageReader.java

License:MIT License

public static void read(final String url, final PixelImageRequestHandler handler) {
    XMLHttpRequest xhr = XMLHttpRequest.create();
    xhr.setResponseType(ResponseType.ArrayBuffer);
    xhr.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override//  w w  w . j ava 2  s  .c o m
        public void onReadyStateChange(XMLHttpRequest xhr) {
            if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                if (xhr.getStatus() >= 400) {
                    handler.onFailure(xhr.getStatusText());
                } else {
                    ImageType type = ImageReader.getImageType(url);
                    if (type != null) {
                        ArrayBuffer arrayBuffer = xhr.getResponseArrayBuffer();
                        try {
                            PixelImage image = read(arrayBuffer, type);
                            handler.onSuccess(image);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    } else {
                        handler.onFailure("Unsupport image format: " + url);
                    }
                }
            }
        }
    });
    xhr.open("GET", url);
}

From source file:net.npe.image.util.gwt.GwtImageReader.java

License:MIT License

public static void createCanvas(final String url, final CanvasRequestHandler handler) {
    XMLHttpRequest xhr = XMLHttpRequest.create();
    xhr.setResponseType(ResponseType.ArrayBuffer);
    xhr.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override/*from  w ww . java 2 s. com*/
        public void onReadyStateChange(XMLHttpRequest xhr) {
            if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                if (xhr.getStatus() >= 400) {
                    handler.onFailure(xhr.getStatusText());
                } else {
                    ImageType type = ImageReader.getImageType(url);
                    if (type != null) {
                        ArrayBuffer arrayBuffer = xhr.getResponseArrayBuffer();
                        try {
                            Canvas canvas = createCanvas(arrayBuffer, type);
                            handler.onSuccess(canvas);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    } else {
                        handler.onFailure("Unsupport image format: " + url);
                    }
                }
            }
        }
    });
    xhr.open("GET", url);
}

From source file:net.zschech.gwt.comet.client.impl.HTTPRequestCometTransport.java

License:Apache License

@Override
public void connect(int connectionCount) {
    super.connect(connectionCount);
    read = 0;//w ww.j a v  a 2 s  .  co m

    xmlHttpRequest = XMLHttpRequest.create();
    try {
        xmlHttpRequest.open("GET", getUrl(connectionCount));
        xmlHttpRequest.setRequestHeader("Accept", "application/comet");
        xmlHttpRequest.setOnReadyStateChange(new ReadyStateChangeHandler() {
            @Override
            public void onReadyStateChange(XMLHttpRequest request) {
                if (!disconnecting) {
                    switch (request.getReadyState()) {
                    case XMLHttpRequest.LOADING:
                        onReceiving(request.getStatus(), request.getResponseText());
                        break;
                    case XMLHttpRequest.DONE:
                        onLoaded(request.getStatus(), request.getResponseText());
                        break;
                    }
                }
            }
        });
        xmlHttpRequest.send();
    } catch (JavaScriptException e) {
        xmlHttpRequest = null;
        listener.onError(new RequestException(e.getMessage()), false);
    }
}

From source file:org.atmosphere.gwt.client.impl.HTTPRequestCometTransport.java

License:Apache License

@Override
public void connect(int connectionCount) {
    init();//w  w w .jav a  2  s .co  m
    xmlHttpRequest = XMLHttpRequest.create();
    try {
        xmlHttpRequest.open("GET", getUrl(connectionCount));
        xmlHttpRequest.setRequestHeader("Accept", "application/comet");
        xmlHttpRequest.setOnReadyStateChange(new ReadyStateChangeHandler() {
            @Override
            public void onReadyStateChange(XMLHttpRequest request) {
                if (!aborted) {
                    switch (request.getReadyState()) {
                    case XMLHttpRequest.LOADING:
                        onReceiving(request.getStatus(), request.getResponseText());
                        if (needPolling()) {
                            pollingTimer.scheduleRepeating(POLLING_INTERVAL);
                        }
                        break;
                    case XMLHttpRequest.DONE:
                        onLoaded(request.getStatus(), request.getResponseText());
                        pollingTimer.cancel();
                        break;
                    }
                } else {
                    request.clearOnReadyStateChange();
                    if (request.getReadyState() != XMLHttpRequest.DONE) {
                        request.abort();
                    }
                }
            }
        });
        xmlHttpRequest.send();
    } catch (JavaScriptException e) {
        if (xmlHttpRequest != null) {
            xmlHttpRequest.abort();
            xmlHttpRequest = null;
        }
        listener.onError(new RequestException(e.getMessage()), false);
    }
}

From source file:org.oscim.tiling.source.LwHttp.java

License:Open Source License

public void sendRequest(MapTile tile, final UrlTileDataSource dataSource) {

    String url = mTileSource.getTileUrl(tile);

    mHttpRequest = XMLHttpRequest.create();
    mHttpRequest.open("GET", url);
    mHttpRequest.setResponseType(ResponseType.ArrayBuffer);

    mResponseHandler = new ReadyStateChangeHandler() {

        @Override//  w  w w .  ja v  a2s  . c  o m
        public void onReadyStateChange(XMLHttpRequest xhr) {
            int state = xhr.getReadyState();
            //log.debug(mCurrentUrl + "response " + status + "/" + state);

            if (state == XMLHttpRequest.DONE) {
                if (xhr.getStatus() == 200) {
                    Uint8Array buf = Uint8ArrayNative.create(xhr.getResponseArrayBuffer());
                    dataSource.process(new Buffer(buf));
                } else {
                    dataSource.process(null);
                }
                mHttpRequest = null;
            }
        }
    };

    mHttpRequest.setOnReadyStateChange(mResponseHandler);
    mHttpRequest.send();
}

From source file:org.parallax3d.parallax.platforms.gwt.preloader.AssetDownloader.java

License:Apache License

public void loadText(String url, final FileListener<String> listener) {
    XMLHttpRequest request = XMLHttpRequest.create();
    request.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override//from   w w  w.j  a  v a  2 s  .co  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:org.parallax3d.parallax.platforms.gwt.preloader.AssetDownloader.java

License:Apache License

public void loadBinary(final String url, final FileListener<Blob> listener) {
    XMLHttpRequest request = XMLHttpRequest.create();
    request.setOnReadyStateChange(new ReadyStateChangeHandler() {
        @Override/*from w w  w .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 {
                    Int8Array data = TypedArrays.createInt8Array(xhr.getResponseArrayBuffer());
                    listener.onSuccess(new Blob(data));
                }
            }
        }
    });
    setOnProgress(request, listener);
    request.open("GET", url);
    request.setResponseType(ResponseType.ArrayBuffer);
    request.send();
}