Example usage for com.google.gwt.http.client RequestCallback RequestCallback

List of usage examples for com.google.gwt.http.client RequestCallback RequestCallback

Introduction

In this page you can find the example usage for com.google.gwt.http.client RequestCallback RequestCallback.

Prototype

RequestCallback

Source Link

Usage

From source file:ch.unifr.pai.twice.mousecontrol.client.TouchPadWidget.java

License:Apache License

/**
 * Sends the given query to the mouse pointer controller servlet
 * //from  w w  w . j ava 2  s.  co m
 * @param query
 * @param callback
 */
protected void send(String query, final Command callback) {
    try {
        if (active) {

            new RequestBuilder(RequestBuilder.GET,
                    GWT.getHostPageBaseURL() + controlServlet + "?" + (query != null ? query : "a=x")
                            + (getCurrentClient() != null ? "&targetUUID=" + getCurrentClient() : "")
                            + (uuid != null ? "&uuid=" + uuid : "") + (host != null ? "&host=" + host : "")
                            + (port != null ? "&port=" + port : "") + ("&user=" + Authentication.getUserName()))
                                    .sendRequest(null, new RequestCallback() {

                                        @Override
                                        public void onResponseReceived(Request request, Response response) {
                                            if (response.getStatusCode() > 400)
                                                onError(request, null);
                                            String color = extractColor(response);
                                            if (response.getText().trim().isEmpty()) {
                                                label.setText("No connection available");
                                                noConnection = true;
                                            } else {
                                                if (noConnection) {
                                                    label.setText("");
                                                    noConnection = false;
                                                }

                                                if (color == null || color.isEmpty() || color.equals("#null"))
                                                    color = null;
                                                extractLastAction(response);
                                                setColor(color);
                                                setScreenDimension(extractScreenDimensions(response));
                                                if (callback != null)
                                                    callback.execute();
                                            }
                                        }

                                        @Override
                                        public void onError(Request request, Throwable exception) {
                                            setActive(false);
                                        }
                                    });
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:ch.unifr.pai.twice.mousecontrol.client.TouchPadWidget.java

License:Apache License

/**
 * Request the server for available shared devices
 * /*from ww  w .ja v  a  2 s  . co m*/
 * @param callback
 */
private void getAvailableClients(final Command callback) {
    try {
        new RequestBuilder(RequestBuilder.GET, GWT.getHostPageBaseURL() + controlServlet + "?a=g")
                .sendRequest(null, new RequestCallback() {

                    @Override
                    public void onResponseReceived(Request request, Response response) {
                        if (response.getText() != null && !response.getText().isEmpty()) {
                            availableClients = response.getText().split("\n");
                        }
                        if (callback != null)
                            callback.execute();
                    }

                    @Override
                    public void onError(Request request, Throwable exception) {
                        GWT.log("Available clients request", exception);
                        if (callback != null)
                            callback.execute();
                    }
                });
    } catch (RequestException e) {
        GWT.log("Request Exception", e);
        if (callback != null)
            callback.execute();

    }
}

From source file:ch.unifr.pai.twice.widgets.mpproxy.client.ScreenShotDistributor.java

License:Apache License

/**
 * Send the screenshot to the server//from  w  w w.  j  a  va 2  s .  c om
 */
public void sendScreenShot() {
    String screen = Document.get().getDocumentElement().getInnerHTML();
    if (!screen.equals(lastSent) || lastLeft != Window.getScrollLeft() || lastTop != Window.getScrollTop()) {
        String url = Window.Location.getHref();
        URLParser p = new URLParser(url, Rewriter.getServletPath(Window.Location.getHref()));
        RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,
                GWT.getModuleBaseURL() + "manager?url=" + p.getProxyBasePath() + "&width="
                        + Window.getClientWidth() + "&height=" + Window.getClientHeight() + "&top="
                        + Window.getScrollTop() + "&left=" + Window.getScrollLeft());
        lastSent = screen;
        lastLeft = Window.getScrollLeft();
        lastTop = Window.getScrollTop();
        screen = screen.replace('\n', ' ');
        screen = screen.replaceAll("<body", "<body><div class=\"readOnlyView\" style=\"width:"
                + Window.getClientWidth() + "; height:" + Window.getClientHeight() + ";\"");
        screen = screen.replaceAll("<\\/body>", "</div></body>");
        screen = screen.replaceAll("(<script).*?(\\/script>)", "");
        try {
            rb.sendRequest(screen, new RequestCallback() {

                @Override
                public void onResponseReceived(Request request, Response response) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onError(Request request, Throwable exception) {
                    Window.alert("Screenshot sent");
                }
            });
        } catch (RequestException e) {
            e.printStackTrace();
        }
    }
}

From source file:ch.unifr.pai.twice.widgets.mpProxyScreenShot.client.Viewer.java

License:Apache License

@Override
public void onModuleLoad() {
    Timer t = new Timer() {

        @Override//  www .ja v  a2 s.c  o m
        public void run() {
            try {
                RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Window.Location.getProtocol() + "//"
                        + Window.Location.getHost() + "/miceScreenShot/manager");
                rb.sendRequest(null, new RequestCallback() {

                    @Override
                    public void onResponseReceived(Request request, Response response) {
                        RootPanel.getBodyElement().setInnerHTML(response.getText());
                    }

                    @Override
                    public void onError(Request request, Throwable exception) {
                    }
                });
            } catch (RequestException e) {
                e.printStackTrace();
            }
        }
    };
    t.run();
    //      t.scheduleRepeating(1000);

}

From source file:client.net.sf.saxon.ce.Xslt20ProcessorImpl.java

License:Mozilla Public License

public Node renderXML(JavaScriptObject inSourceDoc, DocumentInfo styleDoc,
        com.google.gwt.dom.client.Node target) {
    try {//from w  w  w  .ja v a 2s .co m
        if (styleDoc == null) {
            throw new Exception("Stylesheet for transform is null");
        }
        docFetchRequired = inSourceDoc != null;
        CompilerInfo info = config.getDefaultXsltCompilerInfo();
        info.setErrorListener(new StandardErrorListener());

        String asyncSourceURI = null;

        // for now - don't use aync when using the JavaScript API calls that return a result
        if (docFetchRequired
                && (localController.getApiCommand() == APIcommand.UPDATE_HTML || (successCallback != null))) {
            asyncSourceURI = SaxonceApi.getAsyncUri(inSourceDoc);
            if (asyncSourceURI != null && asyncSourceURI.toLowerCase().startsWith("file:")) {
                asyncSourceURI = null; // force synchronous fetch if using file-system protocol
            }
        }

        // ----------- Start async code -------------
        fetchedSourceDoc = null;
        transformInvoked = false;

        if (asyncSourceURI != null) {
            final String URI = asyncSourceURI;
            final Node transformTarget = target;

            logger.log(Level.FINE, "Aynchronous GET for: " + asyncSourceURI);
            final HTTPHandler hr = new HTTPHandler();

            hr.doGet(asyncSourceURI, new RequestCallback() {

                public void onError(Request request, Throwable exception) {
                    //hr.setErrorMessage(exception.getMessage());
                    String msg = "HTTP Error " + exception.getMessage() + " for URI " + URI;
                    handleException(new RuntimeException(msg), "onError");
                }

                public void onResponseReceived(Request request, Response response) {
                    int statusCode = response.getStatusCode();
                    if (statusCode == 200) {
                        Logger.getLogger("ResponseReceived").fine("GET Ok for: " + URI);
                        Node responseNode;
                        try {
                            responseNode = (Node) XMLDOM.parseXML(response.getText());
                        } catch (Exception e) {
                            handleException(new RuntimeException(e.getMessage()), "onResponseReceived");
                            return;
                        }
                        DocumentInfo responseDoc = config.wrapXMLDocument(responseNode, URI);
                        // now document is here, we can transform it
                        Node result = invokeTransform(responseDoc, transformTarget);
                        hr.setResultNode(result); // TODO: This isn't used yet
                        // handle OK response from the server 
                    } else if (statusCode < 400) {
                        // transient
                    } else {
                        String msg = "HTTP Error " + statusCode + " " + response.getStatusText() + " for URI "
                                + URI;
                        handleException(new RuntimeException(msg), "onResponseReceived");
                        //hr.setErrorMessage(statusCode + " " + response.getStatusText());
                    }
                } // ends inner method
            }// ends inner class
            ); // ends doGet method call
        }
        // -------------- End async code

        /// we can compile - even while sourcedoc is being fetched asynchronously

        if (stylesheet == null) {
            if (LogConfiguration.loggingIsEnabled()) {
                LogController.InitializeTraceListener();
            }
            logger.log(Level.FINE, "Compiling Stylesheet...");
            PreparedStylesheet sheet = new PreparedStylesheet(config, info);
            sheet.prepare(styleDoc);
            stylesheet = sheet;
            logger.log(Level.FINE, "Stylesheet compiled OK");
        }

        // for async operation - this is called within the callback - so don't call here            
        if (asyncSourceURI == null && inSourceDoc != null) {
            int nodeType = (Node.is(inSourceDoc)) ? ((Node) inSourceDoc).getNodeType() : 0;

            if (nodeType > 0 && nodeType != Node.DOCUMENT_NODE) {
                // add a document node wrapper
                Node sourceNode = (Node) inSourceDoc;
                Document sourceDoc = sourceNode.getOwnerDocument();
                HTMLDocumentWrapper htmlDoc = new HTMLDocumentWrapper(sourceDoc, sourceDoc.getURL(), config,
                        DocType.UNKNOWN);
                fetchedSourceDoc = htmlDoc.wrap(sourceNode);
            } else {
                fetchedSourceDoc = SaxonceApi.getDocSynchronously(inSourceDoc, config);
            }
        }
        // this method only runs if transformInvoked == false - need to get sourceDoc reference if not invoked

        return invokeTransform(fetchedSourceDoc, target);

        //method ends - allowing onResponceReceived handler to call invokeTransform for async operation
    } catch (Exception e) {
        handleException(e, "renderXML");
        return null;
    }
}

From source file:colt.json.gwt.client.JsonClient.java

License:Apache License

public void invoke(final String _url, final String _serviceName, String requestData, final IAsyncJSON result) {
    try {//from w  w  w.  j a  va2s  . c o m
        RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST,
                URL.encode(_url + _serviceName));
        requestBuilder.setHeader("content-type", "application/x-www-form-urlencoded");

        Request request = requestBuilder.sendRequest(requestData, new RequestCallback() {
            public void onError(Request request, Throwable exception) {
                result.error(exception);
            }

            public void onResponseReceived(Request request, Response response) {
                if (200 == response.getStatusCode()) {
                    String text = response.getText();
                    JSONValue parser = JSONParser.parse(text);
                    JSONObject jobj = parser.isObject();
                    result.done(jobj);
                } else {
                    result.error(new RuntimeException(_url + _serviceName + " :("));
                }
            }
        });
    } catch (RequestException e) {
        Window.alert(e.getMessage());
        result.error(e);
    }
}

From source file:com.agnie.gwt.common.client.rpc.LoaderRequestTransport.java

License:Open Source License

protected RequestCallback createRequestCallback(final TransportReceiver receiver) {
    final RequestCallback callback = super.createRequestCallback(receiver);
    RequestCallback newCallback = new RequestCallback() {

        @Override/*from   w  ww  .j a v a  2 s  . co m*/
        public void onResponseReceived(Request request, Response response) {
            if (Response.SC_UNAUTHORIZED == response.getStatusCode()) {
                GWT.log("User session timed out or user logged out");
                Window.Location.assign(urlGenerator.getClientSideLoginURL(urlInfo, appDomain,
                        urlInfo.getParameter(QueryString.GWT_DEV_MODE.getKey())));
            } else {
                callback.onResponseReceived(request, response);
            }
        }

        @Override
        public void onError(Request request, Throwable exception) {
            callback.onError(request, exception);

        }
    };
    return newCallback;
}

From source file:com.ait.tooling.nativetools.client.resting.NResting.java

License:Open Source License

protected IRestingRequest call(final NMethod type, final String url, final String data,
        final NRestingHeaders headers, final IRestingResponseCallback callback) {
    Objects.requireNonNull(callback);

    final long cntr = ++m_docntr;

    final long time = System.currentTimeMillis();

    final NRequestBuilder builder = makeRequestBuilder(type, url);

    if (false == isActive()) {
        callback.onFailure(new InactiveRestingException(type, builder.getUrl(), cntr, time));

        return null;
    }//from ww w  . j  a  v  a  2s . c  om
    final NRestingHeaders head = headers.doRESTHeaders();

    for (String k : head.keys()) {
        builder.setHeader(k, head.get(k));
    }
    int mils = head.getTimeout();

    if (mils > 0) {
        builder.setTimeoutMillis(mils);
    }
    String user = head.getUsername();

    if ((null != user) && (false == user.isEmpty())) {
        builder.setUser(user);

        String pass = head.getPassword();

        if ((null != pass) && (false == pass.isEmpty())) {
            builder.setPassword(pass);
        }
        builder.setIncludeCredentials(head.getIncludeCredentials());
    }
    try {
        return new NRestingRequest(builder.getUrl(), head, type, cntr, time,
                builder.sendRequest(data, new RequestCallback() {
                    @Override
                    public void onResponseReceived(final Request request, final Response response) {
                        callback.onResponse(new NRestingResponse(response.getStatusCode(), response.getText(),
                                new NRestingHeaders(response.getHeaders()).setOptions(head), type,
                                new NRestingRequest(builder.getUrl(), head, type, cntr, time, request),
                                System.currentTimeMillis() - time));
                    }

                    @Override
                    public void onError(final Request request, final Throwable e) {
                        callback.onFailure(new RestingException(e, type, builder.getUrl(), cntr, time));
                    }
                }));
    } catch (RequestException e) {
        callback.onFailure(new RestingException(e, type, builder.getUrl(), cntr, time));
    }
    return null;
}

From source file:com.ait.tooling.nativetools.client.rpc.JSONCommandRequest.java

License:Open Source License

protected final Request call(final String command, NObject request, final AsyncCallback<NObject> callback,
        final IXSRFTokenQueue supplier) {
    Objects.requireNonNull(callback);

    StringOps.requireTrimOrNull(command);

    request = Objects.requireNonNull(request);

    final long counter = ++s_counter;

    final long reqtime = System.currentTimeMillis();

    if (false == isActive()) {
        logFailure(command, counter, reqtime, new Exception("Not active"));

        return null;
    }//from w ww  .  j av  a2s.  c om
    try {
        doPrepareBuilderCall(m_builder, command, counter, request, isXSRFActive() ? supplier : null);

        logRequest(command, counter, reqtime, request);

        final NObject send = new NObject("request", request);

        if (isCommandInBody()) {
            send.put("command", command);
        }
        return m_builder.sendRequest(toJSONString(send), new RequestCallback() {
            @Override
            public void onResponseReceived(final Request request, final Response response) {
                final int code = response.getStatusCode();

                if (Response.SC_OK != code) {
                    onBadStatusCode(m_builder, command, counter, reqtime, callback, code);

                    return;
                }
                try {
                    NObject result = parseJSONString(response.getText());

                    if (null == result) {
                        doFailure(command, callback, counter, reqtime, new Exception("JSON is not NObject"));

                        return;
                    }
                    if (result.isObject("piggyback")) {
                        final NObject piggyback = result.getAsObject("piggyback");

                        if (null != piggyback) {
                            onPiggyBack(m_builder, command, counter, piggyback);
                        }
                    }
                    if (result.isArray("xsrftokens")) {
                        final NArray xsrftokens = result.getAsArray("xsrftokens");

                        if (null != xsrftokens) {
                            final int size = xsrftokens.size();

                            if (size > 0) {
                                final IXSRFTokenQueue xsrf = getXSRFTokenQueueForURL(getURL());

                                if (null != xsrf) {
                                    for (int i = 0; i < size; i++) {
                                        final String token = StringOps.toTrimOrNull(xsrftokens.getAsString(i));

                                        if (null != token) {
                                            xsrf.push(new XSRFToken(token));
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (result.isObject("result")) {
                        result = result.getAsObject("result");

                        if (null != result) {
                            logResult(command, counter, reqtime, result);

                            callback.onSuccess(result);

                            return;
                        }
                        doFailure(command, callback, counter, reqtime,
                                new Exception("JSON field result not NObject or null"));

                        return;
                    } else if (result.isString("error")) {
                        final String error = result.getAsString("error");

                        if (null != error) {
                            doFailure(command, callback, counter, reqtime, new Exception(error));

                            return;
                        }
                        doFailure(command, callback, counter, reqtime,
                                new Exception("JSON field error not String or null"));

                        return;
                    }
                    doFailure(command, callback, counter, reqtime,
                            new Exception("JSON did not contain result or error"));

                    return;
                } catch (Exception e) {
                    doFailure(command, callback, counter, reqtime, e);
                }
            }

            @Override
            public void onError(final Request request, final Throwable e) {
                doFailure(command, callback, counter, reqtime, e);
            }
        });
    } catch (RequestException e) {
        doFailure(command, callback, counter, reqtime, e);
    }
    return null;
}

From source file:com.ait.toolkit.cordova.client.plugins.blackberry.pushwoosh.PushWooshBlackBerry.java

License:Open Source License

public void register() {
    RequestBuilder req = new RequestBuilder(RequestBuilder.POST, getBaseUrl() + "registerDevice");
    req.setHeader("Content-type", "application/json; charset=utf-8");
    req.setRequestData(getPushWooshRegisterPayload());
    req.setCallback(new RequestCallback() {

        @Override//  w  ww.  j  a v a  2 s.co m
        public void onResponseReceived(Request request, Response response) {
            if (response.getStatusCode() == 200) {
                registerCallback.onSuccess(response.getText());
            } else {
                registerCallback.onError(-1);
            }
        }

        @Override
        public void onError(Request request, Throwable exception) {
            registerCallback.onError(-1);
        }
    });
    try {
        req.send();
    } catch (RequestException e) {
        e.printStackTrace();
    }
}