List of usage examples for com.google.gwt.chrome.def BackgroundPageCallback BackgroundPageCallback
BackgroundPageCallback
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); } } }); }