Example usage for com.google.gwt.json.client JSONValue isObject

List of usage examples for com.google.gwt.json.client JSONValue isObject

Introduction

In this page you can find the example usage for com.google.gwt.json.client JSONValue isObject.

Prototype

public JSONObject isObject() 

Source Link

Document

Returns non-null if this JSONValue is really a JSONObject.

Usage

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;
    }
}