Example usage for com.google.gwt.chrome.def BackgroundPageCallback BackgroundPageCallback

List of usage examples for com.google.gwt.chrome.def BackgroundPageCallback BackgroundPageCallback

Introduction

In this page you can find the example usage for com.google.gwt.chrome.def BackgroundPageCallback BackgroundPageCallback.

Prototype

BackgroundPageCallback

Source Link

Usage

From source file:org.rest.client.activity.AboutActivity.java

License:Apache License

private void getAppVersion() {
    clientFactory.getChromeMessagePassing().postMessage("getManifest", "", new BackgroundPageCallback() {

        @Override/*from ww w.ja  va2 s.  c o  m*/
        public void onSuccess(String result) {
            try {
                JSONValue value = JSONParser.parseStrict(result);
                ManifestDetails manifest = value.isObject().getJavaScriptObject().cast();
                if (view != null) {
                    view.setManifest(manifest);
                } else {
                    if (RestClient.isDebug()) {
                        Log.warn("View is null. cant set manifest data.");
                    }
                }
            } catch (Exception e) {
                if (RestClient.isDebug()) {
                    Log.warn("Can't parse manifest info", e);
                }
            }

        }

        @Override
        public void onError(String message) {
            if (RestClient.isDebug()) {
                Log.error("Unknown error occured: " + message);
            }
        }
    });
}

From source file:org.rest.client.activity.RequestActivity.java

License:Apache License

/**
 * Register event handlers from system's event bus to handle relevant data.
 * Registered events://from   w  w w .  ja  va 2 s. c  o m
 *  - Request start 
 *  - Request end
 *  - 
 */
private void observeEvents() {

    //When request starts disable UI controls
    RequestStartActionEvent.register(eventBus, new RequestStartActionEvent.Handler() {
        @Override
        public void onStart(Date time) {
            requestView.handleRequestStartActionEvent(time);
            GoogleAnalytics.sendEvent("Engagement", "Click", "Request start");
            GoogleAnalyticsApp.sendEvent("Engagement", "Click", "Request start");
        }
    });

    OverwriteUrlEvent.register(eventBus, new OverwriteUrlEvent.Handler() {
        @Override
        public void onUrlChange(String url) {
            requestView.setUrl(url);
        }
    });

    RequestChangeEvent.register(eventBus, new RequestChangeEvent.Handler() {
        @Override
        public void onChange(RequestChangeEvent event) {
            requestView.handleRequestChangeEvent(event);
        }
    });

    RequestEndEvent.register(eventBus, new RequestEndEvent.Handler() {
        @Override
        public void onResponse(boolean success, final Response response, long requestTime) {

            requestView.handleRequestEndEvent();

            if (responseView != null) {
                responseView.asWidget().removeFromParent();
                responseView = null;
            }

            responseView = clientFactory.getResponseView();
            viewFlowPanel.add(responseView);
            responseView.setPresenter(RequestActivity.this);
            responseView.setResponseData(success, response, requestTime);

            /**
             * Get request and response headers data from Chrome Extensions API
             */
            clientFactory.getChromeMessagePassing().postMessage(
                    ExternalEventsFactory.EXT_GET_COLLECTED_REQUEST_DATA, null, new BackgroundPageCallback() {
                        @Override
                        public void onSuccess(String result) {
                            if (result == null) {
                                responseView.setRequestHeadersExternal(null);
                                responseView.setResponseHeadersExternal(null);
                                responseView.scrollToView();
                                return;
                            }
                            JSONObject parsedResponse = null;
                            try {
                                parsedResponse = JSONParser.parseStrict(result).isObject();
                            } catch (Exception e) {
                                responseView.setRequestHeadersExternal(null);
                                responseView.setResponseHeadersExternal(null);
                                responseView.scrollToView();
                                return;
                            }

                            responseView.setRequestHeadersExternal(
                                    extractHeadersExternal(parsedResponse, "REQUEST_HEADERS"));
                            responseView.setResponseHeadersExternal(
                                    extractHeadersExternal(parsedResponse, "RESPONSE_HEADERS"));

                            //look for redirections
                            JSONValue redirectValue = parsedResponse.get("REDIRECT_DATA");
                            if (redirectValue != null) {
                                ArrayList<RedirectData> redirects = getRedirectData(redirectValue.isArray());
                                if (redirects != null && redirects.size() > 0) {
                                    responseView.setRedirectData(redirects);
                                }
                            }

                            responseView.scrollToView();
                        }

                        @Override
                        public void onError(String message) {
                            if (RestClient.isDebug()) {
                                Log.error("Unknown error occured: " + message);
                            }
                        }
                    });
        }
    });

    ProjectChangeRequestEvent.register(eventBus, new ProjectChangeRequestEvent.Handler() {
        @Override
        public void onProjectChange(final ProjectObject project) {
            if (project == null) {
                return;
            }
            ProjectStoreWebSql store = clientFactory.getProjectsStore();
            store.put(project, project.getId(), new StoreResultCallback<Integer>() {

                @Override
                public void onSuccess(Integer result) {
                    ProjectChangeEvent ev = new ProjectChangeEvent(project);
                    eventBus.fireEvent(ev);

                    if (RestClient.currentlyOpenedProject == project.getId()) {
                        requestView.updateProjectMetadata(project);
                    }
                }

                @Override
                public void onError(Throwable e) {
                    if (RestClient.isDebug()) {
                        Log.error("Unable to update project data", e);
                    }
                    StatusNotification.notify("Unable to update project data", StatusNotification.TYPE_ERROR,
                            StatusNotification.TIME_SHORT);
                }
            });
        }
    });
    ProjectDeleteRequestEvent.register(eventBus, new ProjectDeleteRequestEvent.Handler() {

        @Override
        public void onProjectDelete(final int projectId) {
            ProjectStoreWebSql projectStore = clientFactory.getProjectsStore();
            projectStore.remove(projectId, new StoreResultCallback<Boolean>() {

                @Override
                public void onSuccess(Boolean result) {
                    if (!result.booleanValue()) {
                        if (RestClient.isDebug()) {
                            Log.error("Unable to delete project data");
                        }
                        StatusNotification.notify("Unable to delete project data",
                                StatusNotification.TYPE_ERROR, StatusNotification.TIME_SHORT);
                        return;
                    }

                    RequestDataStoreWebSql requestsStore = clientFactory.getRequestDataStore();
                    requestsStore.getService().deleteFromProject(projectId, new VoidCallback() {

                        @Override
                        public void onFailure(DataServiceException error) {
                            if (RestClient.isDebug()) {
                                Log.error("Unable to delete project related  data", error);
                            }
                            ProjectDeleteEvent ev = new ProjectDeleteEvent(projectId);
                            eventBus.fireEvent(ev);
                            goTo(new RequestPlace(null));
                        }

                        @Override
                        public void onSuccess() {
                            ProjectDeleteEvent ev = new ProjectDeleteEvent(projectId);
                            eventBus.fireEvent(ev);
                            goTo(new RequestPlace(null));
                        }
                    });

                }

                @Override
                public void onError(Throwable e) {
                    if (RestClient.isDebug()) {
                        Log.error("Unable to delete project data", e);
                    }
                    StatusNotification.notify("Unable to delete project data", StatusNotification.TYPE_ERROR,
                            StatusNotification.TIME_SHORT);
                }
            });
        }
    });
}

From source file:org.rest.client.activity.RequestActivity.java

License:Apache License

private void createExternalRequest(final String requestUUID) {
    clientFactory.getChromeMessagePassing().postMessage(ExternalEventsFactory.EXT_GET_EXTERNAL_REQUEST_DATA,
            requestUUID, new BackgroundPageCallback() {
                @Override/*from  w  ww .  jav a  2  s.  c  o m*/
                public void onSuccess(String result) {
                    if (result.isEmpty()) {
                        StatusNotification.notify("Data from external extension is no longer available :(",
                                StatusNotification.TYPE_CRITICAL, StatusNotification.TIME_MEDIUM);
                        return;
                    }
                    JSONValue parsedValue = null;
                    try {
                        parsedValue = JSONParser.parseStrict(result);
                    } catch (Exception e) {
                    }
                    if (parsedValue == null) {
                        Log.error("Malformed External Data Exception. Passed data: " + result);
                        StatusNotification.notify("Unable to read data from external extension :(",
                                StatusNotification.TYPE_CRITICAL, StatusNotification.TIME_MEDIUM);
                        return;
                    }
                    JSONObject obj = parsedValue.isObject();
                    if (obj.containsKey("error")) {
                        if (obj.get("error").isBoolean().booleanValue()) {
                            Log.error("Error get External Data. Message: "
                                    + obj.get("message").isString().stringValue());
                            StatusNotification.notify(obj.get("message").isString().stringValue(),
                                    StatusNotification.TYPE_CRITICAL, StatusNotification.TIME_MEDIUM);
                            return;
                        }
                    }
                    if (obj.containsKey("data")) {
                        JSONObject dataObj = obj.get("data").isObject();
                        if (dataObj.containsKey("url")) {
                            requestView.setUrl(dataObj.get("url").isString().stringValue());
                        }
                        if (dataObj.containsKey("method")) {
                            requestView.setMethod(dataObj.get("method").isString().stringValue());
                        }
                        if (dataObj.containsKey("headers")) {
                            requestView.setHeaders(dataObj.get("headers").isString().stringValue());
                        }
                        if (dataObj.containsKey("payload")) {
                            requestView.setPayload(dataObj.get("payload").isString().stringValue());
                        }
                        if (dataObj.containsKey("encoding")) {
                            requestView.setEncoding(dataObj.get("encoding").isString().stringValue());
                        }
                    }
                    RestClient.fixChromeLayout();
                }

                @Override
                public void onError(String message) {
                    if (RestClient.isDebug()) {
                        Log.error("Unknown error occured: " + message);
                    }
                }
            });

}