List of usage examples for com.google.gwt.json.client JSONValue isObject
public JSONObject isObject()
From source file:gov.nist.spectrumbrowser.client.SensorDataStream.java
License:Open Source License
@Override public void onMessage(String msg) { // TODO : Make this configurable. int nSpectrums = 200; // # of spectrums to show in the spectrogram window. double yScale = 0; try {// w ww. j a va2s. c o m if (state == STATUS_MESSAGE_NOT_SEEN) { JSONValue statusMessage = JSONParser.parseLenient(msg); JSONObject jsonObj = statusMessage.isObject(); if (jsonObj.get("status").isString().stringValue().equals("NO_DATA")) { Window.alert("NO Data Available"); websocket.close(); spectrumBrowserShowDatasets.draw(); } else if (jsonObj.get("status").isString().stringValue().equals("OK")) { state = STATUS_MESSAGE_SEEN; } } else if (state == STATUS_MESSAGE_SEEN) { dataMessage = JSONParser.parseLenient(msg); logger.finer("msg = " + msg); JSONObject mpar = dataMessage.isObject().get("mPar").isObject(); nFrequencyBins = (int) mpar.get("n").isNumber().doubleValue(); // The default cutoff value (add 2 to the noise floor). cutoff = round(dataMessage.isObject().get("cutoff").isNumber().doubleValue()); if (cutoff < 0) cutoffTextBox.setText(Integer.toString((int) (cutoff - 0.5))); else cutoffTextBox.setText(Integer.toString((int) (cutoff + 0.5))); logger.finer("n = " + nFrequencyBins); minFreqHz = (long) mpar.get("fStart").isNumber().doubleValue(); maxFreqHz = (long) mpar.get("fStop").isNumber().doubleValue(); minFreq = (mpar.get("fStart").isNumber().doubleValue() / 1E6); maxFreq = mpar.get("fStop").isNumber().doubleValue() / 1E6; sys2detect = dataMessage.isObject().get("Sys2Detect").isString().stringValue(); // For computing the occupancy, determine the cutoff. logger.finer("fStart / fStop = " + Double.toString(minFreq) + " " + Double.toString(maxFreq)); Context2d ctx = frequencyValuesCanvas.getContext2d(); ctx.setTextAlign(TextAlign.LEFT); ctx.fillText(Double.toString(maxFreq), 0, 10, 100); ctx.fillText("Freq (MHz)", 0, SpectrumBrowser.SPEC_HEIGHT / 2 - 4, 100); ctx.fillText(Double.toString(minFreq), 0, SpectrumBrowser.SPEC_HEIGHT - 4, 100); spectrogramFragment = Canvas.createIfSupported(); spectrogramFragment.setWidth(SpectrumBrowser.SPEC_WIDTH + "px"); spectrogramFragment.setHeight(SpectrumBrowser.SPEC_HEIGHT + "px"); spectrogramFragment.setCoordinateSpaceWidth(SpectrumBrowser.SPEC_WIDTH); spectrogramFragment.setCoordinateSpaceHeight(SpectrumBrowser.SPEC_HEIGHT); spectrogramFragment.getCanvasElement().setWidth(SpectrumBrowser.SPEC_WIDTH); spectrogramFragment.getCanvasElement().setHeight(SpectrumBrowser.SPEC_HEIGHT); state = DATA_MESSAGE_SEEN; context2d.setFillStyle(CssColor.make("black")); context2d.fillRect(0, 0, SpectrumBrowser.SPEC_WIDTH, SpectrumBrowser.SPEC_HEIGHT); spectrogramFragment.setVisible(false); double timePerMeasurement = (float) mpar.get("tm").isNumber().doubleValue(); timeResolution = (float) (dataMessage.isObject().get("_spectrumsPerFrame").isNumber().doubleValue() * timePerMeasurement); HTML html = new HTML("<h2>Sensor Data Stream for " + sensorId + "</h2>"); titlePanel.add(html); HTML help = new HTML("<p>Click on spectrogram to freeze/unfreze. " + "Click on occupancy point to show spectrum</p>"); titlePanel.add(help); String filter = dataMessage.isObject().get(Defines.STREAMING_FILTER).isString().stringValue(); float freqResolution = round((float) (maxFreq - minFreq) / nFrequencyBins * 1000); html = new HTML("<h3>Resolution Bandwidth = " + freqResolution + " kHz.; Detected System = " + sys2detect + "; Time resoultion = " + AbstractSpectrumBrowserScreen.round2(timeResolution) + " s. Aggregation Filter = " + filter + " </h3>"); titlePanel.add(html); } else if (state == DATA_MESSAGE_SEEN) { String[] values = msg.split(","); int powerValues[] = new int[values.length]; int occupancyCount = 0; for (int i = 0; i < values.length; i++) { powerValues[i] = Integer.parseInt(values[i].trim()); if (powerValues[i] > cutoff) { occupancyCount++; } } float occupancy = round(((double) occupancyCount / (double) values.length) * 100); double xScale = ((double) SpectrumBrowser.SPEC_WIDTH / (double) nSpectrums); if (chartApiLoaded && occupancyDataTable == null) { occupancyDataTable = DataTable.create(); spectrumDataTable = DataTable.create(); occupancyPlotOptions = ScatterChartOptions.create(); occupancyPlotOptions.setBackgroundColor("#f0f0f0"); occupancyPlotOptions.setPointSize(5); occupancyPlotOptions.setHAxis(HAxis.create("Time (sec)")); VAxis vaxis = VAxis.create("Occupancy %"); vaxis.setMaxValue(100.0); vaxis.setMinValue(0); occupancyPlotOptions.setVAxis(vaxis); Legend legend = Legend.create(); legend.setPosition(LegendPosition.NONE); occupancyPlotOptions.setLegend(legend); spectrumPlotOptions = ScatterChartOptions.create(); spectrumPlotOptions.setBackgroundColor("#f0f0f0"); spectrumPlotOptions.setPointSize(5); spectrumPlotOptions.setHAxis(HAxis.create("Frequency (MHz)")); spectrumPlotOptions.setVAxis(VAxis.create("Power (dBm)")); legend = Legend.create(); legend.setPosition(LegendPosition.NONE); spectrumPlotOptions.setLegend(legend); occupancyPlot = new ScatterChart(); spectrumPlot = new ScatterChart(); occupancyPlot.addSelectHandler(new SelectHandler() { @Override public void onSelect(SelectEvent event) { if (!isFrozen) { logger.finer("Please Freeze canvas before clicking"); return; } else { double minPower = 10000; double maxPower = -10000; for (int i = 0; i < powerValuesList.size(); i++) { int[] data = powerValuesList.get(i); for (int j = 0; j < data.length; j++) { if (data[j] < minPower) { minPower = data[j]; } if (data[j] > maxPower) { maxPower = data[j]; } } } JsArray<Selection> selection = occupancyPlot.getSelection(); int row = selection.get(0).getRow(); logger.finer("Selected row" + row); int[] spectrumData = powerValuesList.get(row); double mhzPerDivision = (maxFreq - minFreq) / spectrumData.length; for (int i = 0; i < spectrumData.length; i++) { double freq = minFreq + mhzPerDivision * i; spectrumDataTable.setCell(i, 0, freq, freq + " Mhz"); spectrumDataTable.setCell(i, 1, spectrumData[i], spectrumData[i] + " dBm"); } HAxis haxis = HAxis.create("Freq. MHz."); haxis.setMinValue(minFreq); haxis.setMaxValue(maxFreq); VAxis vaxis = VAxis.create("Power (dBm)"); vaxis.setMinValue(minPower); vaxis.setMaxValue(maxPower); spectrumPlotOptions.setVAxis(vaxis); spectrumPlotOptions.setHAxis(haxis); spectrumPlot.draw(spectrumDataTable, spectrumPlotOptions); } } }); occupancyPlot.setPixelSize(SpectrumBrowser.SPEC_WIDTH + 260, SpectrumBrowser.SPEC_HEIGHT); occupancyPlot.setTitle("Occupancy"); spectrumPlot.setPixelSize(SpectrumBrowser.SPEC_WIDTH + 260, SpectrumBrowser.SPEC_HEIGHT); occupancyPanel.add(occupancyPlot); spectrumPanel.add(spectrumPlot); occupancyDataTable.addColumn(ColumnType.NUMBER, "Time (sec)"); occupancyDataTable.addColumn(ColumnType.NUMBER, "Occupancy %"); spectrumDataTable.addColumn(ColumnType.NUMBER, "Frequency (MHz)"); spectrumDataTable.addColumn(ColumnType.NUMBER, "Power (milliwatts)"); spectrumDataTable.setColumnLabel(0, "Frequency (MHz)"); spectrumDataTable.setColumnLabel(1, "Power (mw)"); occupancyDataTable.addRows(nSpectrums); spectrumDataTable.addRows(powerValues.length); DataView dataView = DataView.create(occupancyDataTable); for (int i = 0; i < nSpectrums; i++) { occupancyDataTable.setCell(i, 0, round3(i * timeResolution), round3(i * timeResolution) + " sec"); occupancyDataTable.setCell(i, 1, 0, "0 % occupancy"); occupancyPlot.draw(dataView, occupancyPlotOptions); } // Initialize the spectrum list for (int i = 0; i < nSpectrums; i++) { int[] dummyValues = new int[values.length]; for (int j = 0; j < dummyValues.length; j++) { dummyValues[j] = 0; } powerValuesList.add(dummyValues); } counter = nSpectrums - 1; } if (!isFrozen) { if (occupancyDataTable != null) { occupancyDataTable.removeRow(0); occupancyDataTable.addRow(); int rowCount = occupancyDataTable.getNumberOfRows(); counter++; for (int i = 0; i < nSpectrums; i++) { occupancyDataTable.setCell(i, 0, round3(i * timeResolution), round3(i * timeResolution) + " sec"); } occupancyDataTable.setCell(rowCount - 1, 1, occupancy, occupancy + " % occupancy"); occupancyPlot.redraw(); powerValuesList.remove(0); powerValuesList.add(powerValues); // occupancyPlot.draw(dataTable); } context2d.save(); Context2d tempContext = spectrogramFragment.getContext2d(); tempContext.drawImage(spectrogramCanvas.getCanvasElement(), 0, 0, (double) SpectrumBrowser.SPEC_WIDTH, (double) SpectrumBrowser.SPEC_HEIGHT); RootPanel.get().add(spectrogramFragment); // nSpectrums = powerValues.length / nFrequencyBins; yScale = (double) SpectrumBrowser.SPEC_HEIGHT / (double) nFrequencyBins; for (int i = 0; i < powerValues.length; i++) { CssColor color = colorMap.getColor(powerValues[i]); int row = (int) ((i % nFrequencyBins) * yScale); int col = (int) ((i / nFrequencyBins) * xScale); context2d.setFillStyle(color); double x = SpectrumBrowser.SPEC_WIDTH - col - xScale; double y = SpectrumBrowser.SPEC_HEIGHT - row - yScale; double w = xScale; double h = yScale; context2d.fillRect(x, y, w, h); } context2d.translate(-xScale, 0); context2d.drawImage(spectrogramFragment.getCanvasElement(), 0, 0, spectrogramFragment.getCanvasElement().getWidth(), spectrogramFragment.getCanvasElement().getHeight(), 0, 0, SpectrumBrowser.SPEC_WIDTH, SpectrumBrowser.SPEC_HEIGHT); // reset the transformation matrix context2d.setTransform(1, 0, 0, 1, 0, 0); RootPanel.get().remove(spectrogramFragment); } } } catch (Throwable ex) { logger.log(Level.SEVERE, "ERROR parsing data ", ex); } }
From source file:gov.nist.spectrumbrowser.client.SensorInfoDisplay.java
License:Open Source License
void initUiElements() { try {/*from w ww.j a v a 2 s. c o m*/ sensorDescriptionPanel = new VerticalPanel(); // sensorDescriptionPanel.setTitle("Select a band of interest"); sensorDescriptionPanel.setVisible(false); sensorDescriptionPanel.setBorderWidth(2); sensorDescriptionPanel.setStyleName("sensorInformation"); startDateCalendar = new DateBox(); startDateCalendar.setFireNullValues(true); startDateCalendar.setTitle("Click to select a start date."); showStatisticsButton = new Button("Generate Daily Occupancy Chart"); showStatisticsButton.setTitle("Click to generate daily occupancy chart"); userDayCountMenuBar = new MenuBar(true); userDayCountLabel = new Label(); readingsCountLabel = new Label(); readingsCountLabel.setText("measurements"); userDayCountMenuBar = new MenuBar(true); dayInputSelect = new TextInputBox("Duration (days): ", "1"); showStatisticsButton.addClickHandler(new ClickHandler() { @Override public void onClick(com.google.gwt.event.dom.client.ClickEvent event) { if (isSelected()) { if (spectrumBrowserShowDatasets.isFrozen()) { Window.alert("Busy generating chart. Please wait."); } else { long startTime = getSelectedStartTime() + dayBoundaryDelta; int days = getDayCount(); logger.finer("Day Count = " + days + " startTime = " + startTime); if (days > 0) { spectrumBrowserShowDatasets.setStatus("Computing Occupancy Chart -- please wait"); spectrumBrowser.showWaitImage(); ArrayList<SpectrumBrowserScreen> navigation = new ArrayList<SpectrumBrowserScreen>(); navigation.add(SensorInfoDisplay.this.spectrumBrowserShowDatasets); spectrumBrowserShowDatasets.freeze(); new DailyStatsChart(SensorInfoDisplay.this.spectrumBrowser, SensorInfoDisplay.this.spectrumBrowserShowDatasets, navigation, getId(), latitude, longitude, altitude, startTime, days, sensorInfo.getSelectedBand().getSysToDetect(), getMinFreq(), getMaxFreq(), getSubBandMinFreq(), getSubBandMaxFreq(), sensorInfo.getMeasurementType(), verticalPanel); } } } } }); showSensorDataButton = new Button("Live Sensor Data"); showSensorDataButton.setTitle("Click to see near real-time sensor readings"); showSensorDataButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (spectrumBrowserShowDatasets.isFrozen()) { Window.alert("Busy generating chart. Please wait!"); } else { new SensorDataStream(getId(), selectedBand.getSystemToDetect(), selectedBand.getMinFreq(), selectedBand.getMaxFreq(), verticalPanel, spectrumBrowser, spectrumBrowserShowDatasets).draw(); } } }); showLastCaptureButton = new Button("Last Acquisition"); showLastCaptureButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (spectrumBrowserShowDatasets.isFrozen()) { Window.alert("Busy generating chart. Please wait!"); } else { spectrumBrowser.showWaitImage(); SensorInfoDisplay.this.spectrumBrowser.getSpectrumBrowserService().getLastAcquisitionTime( getId(), selectedBand.getSystemToDetect(), selectedBand.getMinFreq(), selectedBand.getMaxFreq(), new SpectrumBrowserCallback<String>() { @Override public void onSuccess(String result) { JSONValue jsonValue = JSONParser.parseLenient(result); long selectionTime = (long) jsonValue.isObject().get("aquisitionTimeStamp") .isNumber().doubleValue(); if (selectionTime != -1 && sensorInfo.getMeasurementType().equals(Defines.FFT_POWER)) { ArrayList<SpectrumBrowserScreen> navigation = new ArrayList<SpectrumBrowserScreen>(); navigation.add(SensorInfoDisplay.this.spectrumBrowserShowDatasets); new FftPowerOneAcquisitionSpectrogramChart(getId(), selectionTime, selectedBand.getSystemToDetect(), selectedBand.getMinFreq(), selectedBand.getMaxFreq(), verticalPanel, spectrumBrowser, navigation); } else { Window.alert("No capture found"); } } @Override public void onFailure(Throwable throwable) { logger.log(Level.SEVERE, "Problem communicating with web server", throwable); } }); } } }); downloadDataButton = new Button("Download Data"); downloadDataButton.setTitle("Click to download data."); downloadDataButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (spectrumBrowserShowDatasets.isFrozen()) { Window.alert("Busy generating chart. Please wait!"); } else { ArrayList<SpectrumBrowserScreen> navigation = new ArrayList<SpectrumBrowserScreen>(); navigation.add(SensorInfoDisplay.this.spectrumBrowserShowDatasets); new DowloadData(getId(), tSelectedStartTime, dayCount, selectedBand.getSystemToDetect(), selectedBand.getMinFreq(), selectedBand.getMaxFreq(), verticalPanel, SensorInfoDisplay.this.spectrumBrowser, navigation).draw(); } } }); viewCaptureEventsButton = new Button("View Capture Events"); viewCaptureEventsButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { ArrayList<SpectrumBrowserScreen> navigation = new ArrayList<SpectrumBrowserScreen>(); navigation.add(SensorInfoDisplay.this.spectrumBrowserShowDatasets); new ViewCaptureEvents(getId(), tSelectedStartTime, dayCount, selectedBand.getFreqRange().getBandName(), selectedBand.getMinFreq(), selectedBand.getMaxFreq(), verticalPanel, SensorInfoDisplay.this.spectrumBrowser, navigation); } }); // TODO -- move this to the admin page maybe? startDateCalendar.addValueChangeHandler(new ValueChangeHandler<Date>() { @Override public void onValueChange(ValueChangeEvent<Date> event) { Date eventDate = event.getValue(); if (eventDate == null) { Window.alert("Invalid date"); setSelectedStartTime(sensorInfo.gettStartDayBoundary()); updateAcquistionCount(); return; } long dayBoundary = getSelectedDayBoundary(eventDate.getTime() / 1000) + getDayBoundaryDelta(); logger.finer("Calendar valueChanged " + dayBoundary + " sensorInfo.tStartDayBoundary " + sensorInfo.gettStartDayBoundary() + " sensorInfo.tEndReadings " + sensorInfo.gettEndReadings()); if (dayBoundary < sensorInfo.gettStartDayBoundary()) { Window.alert("Date outside available range"); setSelectedStartTime(sensorInfo.gettStartDayBoundary()); updateAcquistionCount(); } else if (dayBoundary >= sensorInfo.gettEndReadings()) { Window.alert("Date beyond available range"); setSelectedStartTime(sensorInfo.gettStartDayBoundary()); updateAcquistionCount(); } else { logger.finer("Date in acceptable range"); setSelectedStartTime(getSelectedDayBoundary(eventDate.getTime() / 1000)); updateAcquistionCount(); } } }); showSensorInfoButton = new Label(getId()); showSensorInfoButton.getElement().getStyle().setCursor(Cursor.POINTER); showSensorInfoButton.setStyleName("dangerous"); showSensorInfoButton.setTitle("Click to show/hide detail"); showSensorInfoButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (sensorDescriptionPanel.isVisible()) { sensorDescriptionPanel.setVisible(false); } else { sensorDescriptionPanel.setVisible(true); } } }); showSensorInfoButton.setVisible(false); sensorInfoPanel.add(showSensorInfoButton); sensorInfoPanel.add(sensorDescriptionPanel); } catch (Exception ex) { logger.log(Level.SEVERE, "Error creating sensor marker", ex); spectrumBrowser.displayError("Internal error creating marker"); } }
From source file:gov.nist.spectrumbrowser.client.SpectrumBrowser.java
License:Open Source License
@Override public void onModuleLoad() { logger.fine("onModuleLoad"); spectrumBrowserService.getScreenConfig(new SpectrumBrowserCallback<String>() { @Override/*from www.j a va 2 s .c o m*/ public void onSuccess(String result) { try { logger.finer("Result: " + result); JSONValue jsonValue = JSONParser.parseLenient(result); SpectrumBrowser.MAP_WIDTH = (int) jsonValue.isObject().get(Defines.MAP_WIDTH).isNumber() .doubleValue(); SpectrumBrowser.MAP_HEIGHT = (int) jsonValue.isObject().get(Defines.MAP_HEIGHT).isNumber() .doubleValue(); SpectrumBrowser.SPEC_WIDTH = (int) jsonValue.isObject().get(Defines.SPEC_WIDTH).isNumber() .doubleValue(); SpectrumBrowser.SPEC_HEIGHT = (int) jsonValue.isObject().get(Defines.SPEC_HEIGHT).isNumber() .doubleValue(); Window.setTitle("MSOD:Login"); for (int i = 0; i < RootPanel.get().getWidgetCount(); i++) { RootPanel.get().remove(i); } rootVerticalPanel = new VerticalPanel(); rootVerticalPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); rootVerticalPanel.setStyleName("loginPanel"); RootPanel.get().add(rootVerticalPanel); ImagePreloader.load(SpectrumBrowser.getIconsPath() + "ajax-loader.gif", new ImageLoadHandler() { @Override public void imageLoaded(ImageLoadEvent event) { waitImage.setUrl(event.getImageUrl()); waitImage.setVisible(false); } }); HorizontalPanel waitImagePanel = new HorizontalPanel(); waitImagePanel.setHeight(40 + "px"); waitImage = new FitImage(); waitImagePanel.add(waitImage); rootVerticalPanel.add(waitImagePanel); HorizontalPanel hpanel = new HorizontalPanel(); int height = 50; Image nistLogo = new Image(SpectrumBrowser.getIconsPath() + "nist-logo.png"); nistLogo.setPixelSize((int) (215.0 / 95.0) * height, height); Image ntiaLogo = new Image(SpectrumBrowser.getIconsPath() + "ntia-logo.png"); ntiaLogo.setPixelSize(height, height); hpanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT); hpanel.add(nistLogo); HTML html = new HTML("<h2>CAC Measured Spectrum Occupancy Database (BETA)</h2>"); hpanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); hpanel.add(html); hpanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); hpanel.add(ntiaLogo); rootVerticalPanel.add(hpanel); verticalPanel = new VerticalPanel(); verticalPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); verticalPanel.setStyleName("loginPanel"); verticalPanel.setSpacing(20); rootVerticalPanel.add(verticalPanel); if (jsonValue.isObject().get(Defines.WARNING_TEXT) != null) { SpectrumBrowser.systemWarning = jsonValue.isObject().get(Defines.WARNING_TEXT).isString() .stringValue(); } if (systemWarning != null) { displayWarning(); } else { draw(); } } catch (Throwable th) { logger.log(Level.SEVERE, "Error Parsing JSON", th); } } @Override public void onFailure(Throwable throwable) { Window.alert("Error contacting server. Please try later"); } }); }
From source file:gov.nist.spectrumbrowser.client.SpectrumBrowser.java
License:Open Source License
public void draw() { spectrumBrowserService.isAuthenticationRequired(new SpectrumBrowserCallback<String>() { @Override/*from w w w . j a va 2 s .c o m*/ public void onSuccess(String result) { try { verticalPanel.clear(); logger.finer("Result: " + result); JSONValue jsonValue = JSONParser.parseLenient(result); boolean isAuthenticationRequired = jsonValue.isObject().get("AuthenticationRequired") .isBoolean().booleanValue(); if (isAuthenticationRequired) { Grid grid = new Grid(2, 2); grid.setText(0, 0, "Email Address"); emailEntry = new TextBox(); emailEntry.setWidth("250px"); emailEntry.addKeyDownHandler(handler); grid.setWidget(0, 1, emailEntry); grid.setText(1, 0, "Password"); passwordEntry = new PasswordTextBox(); passwordEntry.setWidth("250px"); passwordEntry.addKeyDownHandler(handler); grid.setWidget(1, 1, passwordEntry); grid.getCellFormatter().addStyleName(0, 0, "alignMagic"); grid.getCellFormatter().addStyleName(1, 0, "alignMagic"); verticalPanel.add(grid); Grid buttonGrid = new Grid(1, 4); sendButton = new Button("Sign in"); sendButton.addStyleName("sendButton"); sendButton.addClickHandler(handler); buttonGrid.setWidget(0, 0, sendButton); createButton = new Button("Request Account"); createButton.addClickHandler(handler); buttonGrid.setWidget(0, 1, createButton); forgotButton = new Button("Reset Password"); forgotButton.addClickHandler(handler); buttonGrid.setWidget(0, 2, forgotButton); changeButton = new Button("Change Password"); changeButton.addClickHandler(handler); buttonGrid.setWidget(0, 3, changeButton); verticalPanel.add(buttonGrid); } else { sessionToken = jsonValue.isObject().get(Defines.SESSION_TOKEN).isString().stringValue(); setSessionToken(sessionToken); SpectrumBrowser.this.showWaitImage(); new SpectrumBrowserShowDatasets(SpectrumBrowser.this, verticalPanel); } } catch (Throwable th) { logger.log(Level.SEVERE, "Error Parsing JSON", th); Window.alert("Error Communicating with server"); onModuleLoad(); } } @Override public void onFailure(Throwable throwable) { Window.alert("Error contacting server. Please try later"); } }); }
From source file:gov.nist.spectrumbrowser.client.SpectrumBrowser.java
License:Open Source License
private void loginHandler() { String emailAddress, password; emailAddress = password = ""; emailAddress = emailEntry.getValue().trim(); password = passwordEntry.getValue(); logger.finer("LogintoServer: " + emailAddress); if (emailAddress == null || emailAddress.length() == 0) { Window.alert("Email address is required"); return;/*from w ww . j ava 2s . com*/ } if (password == null || password.length() == 0) { Window.alert("Password is required"); return; } JSONObject jsonObject = new JSONObject(); jsonObject.put(Defines.ACCOUNT_EMAIL_ADDRESS, new JSONString(emailAddress)); jsonObject.put(Defines.ACCOUNT_PASSWORD, new JSONString(password)); jsonObject.put(Defines.ACCOUNT_PRIVILEGE, new JSONString(Defines.USER_PRIVILEGE)); setLoginEmailAddress(emailAddress); getSpectrumBrowserService().authenticate(jsonObject.toString(), new SpectrumBrowserCallback<String>() { @Override public void onFailure(Throwable errorTrace) { logger.log(Level.SEVERE, "Error sending request to the server", errorTrace); Window.alert("Error communicating with the server."); } @Override public void onSuccess(String result) { try { JSONValue jsonValue = JSONParser.parseStrict(result); JSONObject jsonObject = jsonValue.isObject(); String status = jsonObject.get(Defines.STATUS).isString().stringValue(); String statusMessage = jsonObject.get(Defines.STATUS_MESSAGE).isString().stringValue(); if (status.equals("OK")) { sessionToken = jsonObject.get(Defines.SESSION_ID).isString().stringValue(); setSessionToken(sessionToken); setUserLoggedIn(true); SpectrumBrowser.this.showWaitImage(); new SpectrumBrowserShowDatasets(SpectrumBrowser.this, verticalPanel); } else { Window.alert(statusMessage); } } catch (Throwable ex) { Window.alert("Problem parsing json"); logger.log(Level.SEVERE, " Problem parsing json", ex); } } }); }
From source file:gov.nist.spectrumbrowser.client.ViewCaptureEvents.java
License:Open Source License
@Override public void onSuccess(String result) { try {/*from w ww . j av a 2 s. co m*/ verticalPanel.clear(); super.drawNavigation(); JSONValue jsonValue = JSONParser.parseLenient(result); JSONObject jsonObject = jsonValue.isObject(); String status = jsonObject.get("status").isString().stringValue(); if (!status.equals("OK")) { String errorMessage = jsonObject.get("ErrorMessage").isString().stringValue(); Window.alert("Error Processing Request: " + errorMessage); return; } final JSONArray eventTimes = jsonObject.get("events").isArray(); logger.finer("Found " + eventTimes.size() + " capture events."); title = new HTML("<h2>Capture Events</h2>"); verticalPanel.add(title); String labelHtml = "<p> A <b>capture event</b> is an event of interest detected by the sensor that triggers the capture " + "and recording of baseband I/Q data which is stored on the sensor host."; labelHtml += "<br/>Click on capture timestamp to view forensics report (if it exists):</p> "; Grid buttonGrid = new Grid(1, 3); Button nextDay = new Button("Next Day"); Button previousDay = new Button("Previous Day"); Button refresh = new Button("Refresh"); buttonGrid.setWidget(0, 0, previousDay); buttonGrid.setWidget(0, 1, refresh); buttonGrid.setWidget(0, 2, nextDay); verticalPanel.add(buttonGrid); previousDay.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { tSelectedStartTime = tSelectedStartTime - Defines.SECONDS_PER_DAY; spectrumBrowser.getSpectrumBrowserService().getCaptureEvents(sensorId, tSelectedStartTime, 1, ViewCaptureEvents.this); } }); nextDay.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { tSelectedStartTime = tSelectedStartTime + Defines.SECONDS_PER_DAY; spectrumBrowser.getSpectrumBrowserService().getCaptureEvents(sensorId, tSelectedStartTime, 1, ViewCaptureEvents.this); } }); refresh.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { spectrumBrowser.getSpectrumBrowserService().getCaptureEvents(sensorId, tSelectedStartTime, 1, ViewCaptureEvents.this); } }); HTML label = new HTML(labelHtml); label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_JUSTIFY); verticalPanel.add(label); ScrollPanel horizontalScrollPanel = new ScrollPanel(); final TextBox forensicReportTextBox = new TextBox(); forensicReportTextBox.setWidth("400px"); horizontalScrollPanel.add(forensicReportTextBox); verticalPanel.add(horizontalScrollPanel); if (eventTimes.size() == 0) { Window.alert("no capture events found"); } else { final ListBox captureEventList = new ListBox(); for (int i = 0; i < eventTimes.size(); i++) { String eventTime = eventTimes.get(i).isObject().get("formattedTimeStamp").isString() .stringValue(); captureEventList.addItem(eventTime); } captureEventList.setVisibleItemCount(20); ScrollPanel scrollPanel = new ScrollPanel(); scrollPanel.add(captureEventList); verticalPanel.add(captureEventList); captureEventList.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int index = captureEventList.getSelectedIndex(); if (eventTimes.get(index).isObject().get("forensicsReport") != null) { JSONObject forensicReport = eventTimes.get(index).isObject().get("forensicsReport") .isObject(); forensicReportTextBox.setText(forensicReport.toString()); } else { forensicReportTextBox.setText("Not Available"); } } }); } // calendar = new DatePicker(); // hpanel.add(calendar); } catch (Throwable th) { logger.log(Level.SEVERE, "Error parsing json file ", th); } }
From source file:gov.nist.spectrumbrowser.common.AbstractSpectrumBrowserScreen.java
License:Open Source License
protected String getAsString(JSONValue jsonValue, String keyName) { JSONObject jsonObject = jsonValue.isObject(); if (jsonObject.containsKey(keyName)) { return jsonObject.get(keyName).isString().stringValue(); } else {//from www . j av a 2 s . c o m return "UNDEFINED"; } }
From source file:gov.nist.spectrumbrowser.common.AbstractSpectrumBrowserScreen.java
License:Open Source License
protected int getAsInt(JSONValue jsonValue, String keyName) { JSONObject jsonObject = jsonValue.isObject(); if (jsonObject.containsKey(keyName)) { return (int) jsonObject.get(keyName).isNumber().doubleValue(); } else {//from ww w . j a v a 2s. c om return 0; } }
From source file:gov.nist.spectrumbrowser.common.AbstractSpectrumBrowserScreen.java
License:Open Source License
protected long getAsLong(JSONValue jsonValue, String keyName) { JSONObject jsonObject = jsonValue.isObject(); if (jsonObject.containsKey(keyName)) { return (long) jsonObject.get(keyName).isNumber().doubleValue(); } else {/* w w w . j a va2s.c o m*/ return 0; } }
From source file:gov.nist.spectrumbrowser.common.AbstractSpectrumBrowserScreen.java
License:Open Source License
protected boolean getAsBoolean(JSONValue jsonValue, String keyName) { JSONObject jsonObject = jsonValue.isObject(); if (jsonObject.containsKey(keyName)) { return jsonObject.get(keyName).isBoolean().booleanValue(); } else {/*from www. j a va 2s. com*/ return false; } }