Example usage for com.google.gwt.http.client RequestBuilder setCallback

List of usage examples for com.google.gwt.http.client RequestBuilder setCallback

Introduction

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

Prototype

public void setCallback(RequestCallback callback) 

Source Link

Document

Sets the response handler for this request.

Usage

From source file:org.emfjson.gwt.handlers.HttpHandler.java

License:Open Source License

public static void create(final ResourceSet resourceSet, URI createService, final Callback<Resource> callback) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, URL.encode(createService.toString()));
    builder.setHeader("Content-Type", "application/json");
    builder.setCallback(new RequestCallback() {
        @Override/*from ww  w. jav  a 2s .c om*/
        public void onResponseReceived(Request request, Response response) {
            if (response.getStatusCode() == 201) {
                String location = response.getHeader("Location");
                Resource resource = resourceSet.createResource(URI.createURI(location));
                callback.onSuccess(resource);
            } else {
                callback.onFailure(new Exception("Resource has not been created"));
            }
        }

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

    try {
        builder.send();
    } catch (RequestException e) {
        callback.onFailure(e);
    }
}

From source file:org.emfjson.gwt.handlers.HttpHandler.java

License:Open Source License

@Override
public void createInputStream(final URI uri, Map<?, ?> options, final Callback<Map<?, ?>> callback) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(uri.toString()));
    builder.setHeader("Content-Type", "application/json");
    builder.setCallback(new RequestCallback() {
        @Override/* w  ww . j  a  v a 2s .  co  m*/
        public void onResponseReceived(Request request, Response response) {
            Map<String, Object> resultMap = new HashMap<String, Object>();
            Map<String, Object> responseMap = new HashMap<String, Object>();
            resultMap.put(URIConverter.OPTION_RESPONSE, responseMap);

            if (200 == response.getStatusCode()) {
                String responseText = response.getText();
                if (responseText != null) {
                    InputStream stream = new ByteArrayInputStream(responseText.getBytes());
                    responseMap.put(URIConverter.RESPONSE_RESULT, stream);
                }
                callback.onSuccess(resultMap);
            } else {
                callback.onFailure(new Exception("Error " + response.getStatusCode()));
            }
        }

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

    try {
        builder.send();
    } catch (RequestException e) {
        callback.onFailure(e);
    }
}

From source file:org.emfjson.gwt.handlers.HttpHandler.java

License:Open Source License

@Override
public void delete(URI uri, Map<?, ?> options, final Callback<Map<?, ?>> callback) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.DELETE, URL.encode(uri.toString()));
    builder.setHeader("Content-Type", "application/json");
    builder.setCallback(new RequestCallback() {
        @Override/*w ww .j  a  v a  2  s . co  m*/
        public void onResponseReceived(Request request, Response response) {
            Map<String, Object> resultMap = new HashMap<String, Object>();
            Map<String, Object> responseMap = new HashMap<String, Object>();
            resultMap.put(URIConverter.OPTION_RESPONSE, responseMap);

            int code = response.getStatusCode();
            if (code >= 200 && code < 300) {
                responseMap.put(URIConverter.RESPONSE_RESULT, null);
                responseMap.put(URIConverter.RESPONSE_TIME_STAMP_PROPERTY, null);
                responseMap.put(URIConverter.RESPONSE_URI, null);
                callback.onSuccess(resultMap);
            } else {
                callback.onFailure(new Exception(response.getStatusText()));
            }
        }

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

    try {
        builder.send();
    } catch (RequestException e) {
        callback.onFailure(e);
    }
}

From source file:org.emfjson.gwt.handlers.HttpHandler.java

License:Open Source License

@Override
public void store(URI uri, byte[] bytes, Map<?, ?> options, final Callback<Map<?, ?>> callback) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.PUT, URL.encode(uri.toString()));
    builder.setHeader("Content-Type", "application/json");
    builder.setRequestData(new String(bytes));
    builder.setCallback(new RequestCallback() {
        @Override/*from  w  w w.  jav a 2 s.c o  m*/
        public void onResponseReceived(Request request, Response response) {
            Map<String, Object> resultMap = new HashMap<String, Object>();
            Map<String, Object> responseMap = new HashMap<String, Object>();
            resultMap.put(URIConverter.OPTION_RESPONSE, responseMap);

            int code = response.getStatusCode();
            if (code >= 200 && code < 300) {
                responseMap.put(URIConverter.RESPONSE_RESULT,
                        new ByteArrayInputStream(response.getText().getBytes()));
                responseMap.put(URIConverter.RESPONSE_TIME_STAMP_PROPERTY, null);
                responseMap.put(URIConverter.RESPONSE_URI, null);
                callback.onSuccess(resultMap);
            } else {
                callback.onFailure(new Exception("Error " + response.getStatusCode()));
            }
        }

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

    try {
        builder.send();
    } catch (RequestException e) {
        callback.onFailure(e);
    }
}

From source file:org.emfjson.gwt.handlers.HttpHandler.java

License:Open Source License

@Override
public void exists(URI uri, Map<?, ?> options, final Callback<Boolean> callback) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.HEAD, URL.encode(uri.toString()));
    builder.setHeader("Content-Type", "application/json");
    builder.setCallback(new RequestCallback() {
        @Override//from ww  w  .  j a  va  2 s .co  m
        public void onResponseReceived(Request request, Response response) {
            int code = response.getStatusCode();
            if (code >= 200 && code < 300) {
                callback.onSuccess(true);
            } else {
                callback.onSuccess(false);
            }
        }

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

    try {
        builder.send();
    } catch (RequestException e) {
        callback.onFailure(e);
    }
}

From source file:org.fusesource.restygwt.client.dispatcher.CachingDispatcherFilter.java

License:Apache License

/**
 * main filter method for a dispatcherfilter.
 *
 * @return continue filtering or not//from ww  w . ja  v  a2 s  . co m
 */
@Override
public boolean filter(final Method method, final RequestBuilder builder) {
    final CacheKey cacheKey = cacheKey(builder);

    if (cacheKey != null) {
        final Response cachedResponse = cacheStorage.getResultOrReturnNull(cacheKey);
        if (cachedResponse != null) {
            //case 1: we got a result in cache => return it...
            if (LogConfiguration.loggingIsEnabled()) {
                Logger.getLogger(Dispatcher.class.getName()).info("already got a cached response for: "
                        + builder.getHTTPMethod() + " " + builder.getUrl());
            }
            // onResponseReceived can be time consuming and can manipulate the DOM
            // deferring the command keeps the async behaviour of this method call
            Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                @Override
                public void execute() {
                    builder.getCallback().onResponseReceived(null, cachedResponse);
                }
            });
            return false;
        }
        final RequestCallback callback = callbackFactory.createCallback(method);

        //case 2: => no cache in result => queue it....
        if (!cacheStorage.hasCallback(cacheKey)) {
            //case 2.1 => first callback => make a new one and execute...
            cacheStorage.addCallback(cacheKey, builder.getCallback());

            if (LogConfiguration.loggingIsEnabled()) {
                Logger.getLogger(Dispatcher.class.getName()).info(
                        "Sending *caching* http request: " + builder.getHTTPMethod() + " " + builder.getUrl());
            }

            // important part:
            builder.setCallback(callback);
            return true;
        }
        //case 2.2 => a callback already in progress => queue to get response when back
        if (LogConfiguration.loggingIsEnabled()) {
            Logger.getLogger(Dispatcher.class.getName()).info(
                    "request in progress, queue callback: " + builder.getHTTPMethod() + " " + builder.getUrl());
        }
        cacheStorage.addCallback(cacheKey, callback);
        return false;
    }
    // non cachable case
    if (LogConfiguration.loggingIsEnabled()) {
        String content = builder.getRequestData();
        Logger.getLogger(Dispatcher.class.getName()).info("Sending *non-caching* http request: "
                + builder.getHTTPMethod() + " " + builder.getUrl() + " (Content: `" + content + ")");
    }

    //            /*
    //             * add X-Request-Token to all non-caching calls (!= GET) if we have some
    //             */
    //            builder.setHeader("X-Testing", "Bude");

    builder.setCallback(callbackFactory.createCallback(method));
    return true;// continue filtering
}

From source file:org.fusesource.restygwt.client.dispatcher.CachingRetryingDispatcher.java

License:Apache License

public Request send(Method method, RequestBuilder builder) throws RequestException {

    RequestCallback outerRequestCallback = builder.getCallback();
    final CacheKey cacheKey = new CacheKey(builder);

    final Response cachedResponse = cacheStorage.getResultOrReturnNull(cacheKey);

    if (cachedResponse != null) {

        outerRequestCallback.onResponseReceived(null, cachedResponse);
        return null;

    } else {//from   ww  w  . j av a  2  s . c  om

        RequestCallback retryingCallback = new CachingRetryingCallback(builder, outerRequestCallback);
        builder.setCallback(retryingCallback);

        GWT.log("Sending http request: " + builder.getHTTPMethod() + " " + builder.getUrl() + " ,timeout:"
                + builder.getTimeoutMillis(), null);

        String content = builder.getRequestData();

        if (content != null && content.length() > 0) {
            GWT.log(content, null);
        }

        return builder.send();
    }

}

From source file:org.fusesource.restygwt.client.dispatcher.DefaultDispatcherFilter.java

License:Apache License

/**
 * main filter method for a dispatcherfilter.
 *
 * @return continue filtering or not//from w w  w .ja v  a2  s . c om
 */
@Override
public boolean filter(final Method method, final RequestBuilder builder) {
    if (LogConfiguration.loggingIsEnabled()) {
        Logger.getLogger(Dispatcher.class.getName())
                .info("Sending http request: " + builder.getHTTPMethod() + " " + builder.getUrl());
    }

    builder.setCallback(callbackFactory.createCallback(method));
    return true;
}

From source file:org.gk.engine.client.utils.ComLibrary.java

License:Open Source License

public static void requestGet(String url) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));
    builder.setCallback(new RequestCallback() {

        @Override/*from ww  w .j  av  a  2  s. c om*/
        public void onError(Request request, Throwable exception) {
            EngineLogger.log(exception);
        }

        @Override
        public void onResponseReceived(Request request, Response response) {
            // responseOK??set
            if (response.getStatusCode() == Response.SC_OK) {
                setLibrary(response.getText());
                ready = true;
            } else {
                loadingLibraryByEventBus();
            }
        }
    });
    try {
        builder.send();
    } catch (RequestException e) {
        EngineLogger.log(e);
    }
}

From source file:org.gwtbootstrap3.demo.client.application.extras.SummernoteView.java

License:Apache License

@Inject
SummernoteView(final Binder uiBinder) {

    initWidget(uiBinder.createAndBindUi(this));

    // Hint for words
    hintWords.setHint("\\b(\\w{1,})$", new DefaultHintHandler() {

        List<String> words = new ArrayList<>(Arrays.asList("apple", "orange", "watermelon", "lemon"));

        @Override/*  ww  w . ja  v  a  2s. c  om*/
        public String[] onSearch(String keyword) {
            List<String> result = new ArrayList<>(0);
            for (String word : words) {
                if (word.indexOf(keyword) == 0)
                    result.add(word);
            }
            return result.toArray(new String[0]);
        }
    });

    // Hint for emoji
    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, "https://api.github.com/emojis");
    requestBuilder.setCallback(new RequestCallback() {

        @Override
        public void onResponseReceived(Request request, Response response) {
            String text = response.getText();
            final JSONObject emojiUrls = JSONParser.parseStrict(text).isObject();
            GWT.log("Found " + emojiUrls.size() + " emojis");
            hintEmoji.setHint(":([\\-+\\w]+)$", new DefaultHintHandler() {

                @Override
                public String[] onSearch(String keyword) {
                    List<String> result = new ArrayList<>(0);
                    for (String key : emojiUrls.keySet()) {
                        if (key.indexOf(keyword) == 0)
                            result.add(key);
                    }
                    return result.toArray(new String[0]);
                }

                @Override
                public String getTemplate(String item) {
                    String url = emojiUrls.get(item).isString().stringValue();
                    return "<img src=\"" + url + "\" style=\"width:20px\"/> :" + item + ":";
                }

                @Override
                public Node getContent(String item) {
                    String url = emojiUrls.get(item).isString().stringValue();
                    ImageElement img = Document.get().createImageElement();
                    img.setSrc(url);
                    img.getStyle().setWidth(20, Unit.PX);
                    return img;
                }
            });
            hintEmoji.reconfigure();
        }

        @Override
        public void onError(Request request, Throwable exception) {
            GWT.log("Error while requesting emojis", exception);
        }
    });
    try {
        requestBuilder.send();
    } catch (RequestException e) {
        GWT.log("Error while sending request for emojis", e);
    }

    // Customize toolbar
    customToolbar.setFontNames(SummernoteFontName.HELVETICA_NEUE, SummernoteFontName.VERDANA,
            SummernoteFontName.ARIAL);
    customToolbar.setToolbar(new Toolbar().addGroup(ToolbarButton.FONT_NAME, ToolbarButton.FONT_SIZE)
            .addGroup(ToolbarButton.UNDO, ToolbarButton.REDO).addGroup(ToolbarButton.CODE_VIEW)
            .addGroup(ToolbarButton.TABLE));

    // Language
    SummernoteLanguage defaultLanguage = languageNote.getLanguage();
    for (SummernoteLanguage language : SummernoteLanguage.values()) {
        languageBox.addItem(language.getCode(), language.name());
    }
    languageBox.setSelectedIndex(defaultLanguage.ordinal());
}