Example usage for org.jfree.chart.renderer.xy XYItemRenderer setSeriesShape

List of usage examples for org.jfree.chart.renderer.xy XYItemRenderer setSeriesShape

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.xy XYItemRenderer setSeriesShape.

Prototype

public void setSeriesShape(int series, Shape shape);

Source Link

Document

Sets the shape used for a series and sends a RendererChangeEvent to all registered listeners.

Usage

From source file:org.esa.beam.timeseries.ui.graph.TimeSeriesGraphModel.java

@Override
public void addTimeSeries(List<TimeSeries> timeSeriesList, TimeSeriesType type) {
    final int timeSeriesCount;
    final int collectionOffset;
    if (TimeSeriesType.INSITU.equals(type)) {
        timeSeriesCount = displayAxisMapping.getInsituCount();
        collectionOffset = INSITU_COLLECTION_INDEX_OFFSET;
    } else {/*  w  w w.j av a2 s  . c o  m*/
        timeSeriesCount = displayAxisMapping.getRasterCount();
        if (TimeSeriesType.CURSOR.equals(type)) {
            collectionOffset = CURSOR_COLLECTION_INDEX_OFFSET;
        } else {
            collectionOffset = PIN_COLLECTION_INDEX_OFFSET;
        }
    }
    final String[] aliasNames = getAliasNames();

    for (int aliasIdx = 0; aliasIdx < aliasNames.length; aliasIdx++) {
        final int targetCollectionIndex = collectionOffset + aliasIdx * 3;
        final TimeSeriesCollection targetTimeSeriesCollection = (TimeSeriesCollection) timeSeriesPlot
                .getDataset(targetCollectionIndex);
        if (targetTimeSeriesCollection != null) {
            targetTimeSeriesCollection.removeAllSeries();
        }
    }
    if (timeSeriesCount == 0) {
        return;
    }
    final int numPositions = timeSeriesList.size() / timeSeriesCount;
    int timeSeriesIndexOffset = 0;
    for (int posIdx = 0; posIdx < numPositions; posIdx++) {
        final Shape posShape = getShapeForPosition(type, posIdx);
        for (int aliasIdx = 0; aliasIdx < aliasNames.length; aliasIdx++) {
            final int targetCollectionIndex = collectionOffset + aliasIdx * 3;
            final TimeSeriesCollection targetTimeSeriesCollection = (TimeSeriesCollection) timeSeriesPlot
                    .getDataset(targetCollectionIndex);
            if (targetTimeSeriesCollection == null) {
                continue;
            }
            final XYItemRenderer renderer = timeSeriesPlot.getRenderer(targetCollectionIndex);
            final int dataSourceCount = getDataSourceCount(type, aliasNames[aliasIdx]);
            for (int ignoredIndex = 0; ignoredIndex < dataSourceCount; ignoredIndex++) {
                final TimeSeries currentTimeSeries = timeSeriesList.get(timeSeriesIndexOffset);
                targetTimeSeriesCollection.addSeries(currentTimeSeries);
                final int timeSeriesTargetIdx = targetTimeSeriesCollection.getSeriesCount() - 1;
                renderer.setSeriesShape(timeSeriesTargetIdx, posShape);
                renderer.setSeriesPaint(timeSeriesTargetIdx,
                        renderer.getSeriesPaint(timeSeriesTargetIdx % dataSourceCount));
                renderer.setSeriesVisibleInLegend(timeSeriesTargetIdx, !currentTimeSeries.isEmpty());
                timeSeriesIndexOffset++;
            }
            final ValueAxis axisForDataset = timeSeriesPlot.getDomainAxisForDataset(targetCollectionIndex);
            axisForDataset.configure();
        }
    }
    updateAnnotation(getCurrentView().getRaster());
}

From source file:com.att.aro.ui.view.diagnostictab.plot.BufferOccupancyPlot.java

@Override
public void populate(XYPlot plot, AROTraceData analysis) {

    if (analysis != null) {

        bufferFillDataCollection.removeAllSeries();
        seriesBufferFill = new XYSeries("Buffer Fill");
        seriesDataSets = new TreeMap<>();

        seriesDataSets = bufferOccupancyCalculatorImpl.populateBufferOccupancyDataSet(
                analysis.getAnalyzerResult().getVideoUsage(), chunkPlayTimeList);
        bufferSizeList.clear();/*from w w w  .  ja  v  a2  s.c  om*/

        double xCoordinate, yCoordinate;
        String ptCoordinate[] = new String[2]; // to hold x & y values
        if (!seriesDataSets.isEmpty()) {

            for (int key : seriesDataSets.keySet()) {
                ptCoordinate = seriesDataSets.get(key).trim().split(",");
                xCoordinate = Double.parseDouble(ptCoordinate[0]);
                yCoordinate = Double.parseDouble(ptCoordinate[1]);
                yCoordinate = yCoordinate / 1024; //Converting Buffer size measurement unit to KB
                bufferSizeList.add(yCoordinate);
                seriesBufferFill.add(xCoordinate, yCoordinate);
            }
        }
        Collections.sort(bufferSizeList);
        BufferOccupancyBPResult bufferOccupancyResult = bufferOccupancyCalculatorImpl
                .setMaxBuffer(bufferSizeList.get(bufferSizeList.size() - 1));
        bufferOccupancyResult.setBufferByteDataSet(bufferSizeList);
        analysis.getAnalyzerResult().setBufferOccupancyResult(bufferOccupancyResult);
        // populate collection
        bufferFillDataCollection.addSeries(seriesBufferFill);

        XYItemRenderer renderer = new StandardXYItemRenderer();
        renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {

            @Override
            public String generateToolTip(XYDataset dataset, int series, int item) {

                // Tooltip value
                Number timestamp = dataset.getX(series, item);
                Number bufferSize = dataset.getY(series, item);
                StringBuffer tooltipValue = new StringBuffer();
                tooltipValue.append(String.format("%.2f", bufferSize) + "," + String.format("%.2f", timestamp));

                String[] value = tooltipValue.toString().split(",");
                return (MessageFormat.format(BUFFEROCCUPANCY_TOOLTIP, value[0], value[1]));
                //return "BufferSize: " + String.format("%.2f", bufferSize) + "KB \n Timestamp: " + String.format("%.2f", timestamp)+"S";
            }

        });
        renderer.setSeriesStroke(0, new BasicStroke(2.0f));
        renderer.setSeriesPaint(0, Color.blue);
        renderer.setSeriesShape(0, shape);

        plot.setRenderer(renderer);

    }
    plot.setDataset(bufferFillDataCollection);
}

From source file:charts.Chart.java

public static void ScatterPlot(XYSeriesCollection dataset, String title, String xAxisLabel, String yAxisLabel) {
    NumberAxis xAxis = new NumberAxis(xAxisLabel);
    xAxis.setAutoRangeIncludesZero(false);
    NumberAxis yAxis = new NumberAxis(yAxisLabel);
    yAxis.setAutoRangeIncludesZero(false);
    XYToolTipGenerator toolTipGenerator = new StandardXYToolTipGenerator();
    XYURLGenerator urlGenerator = new StandardXYURLGenerator();
    XYItemRenderer renderer = new XYLineAndShapeRenderer(false, true);//(boolean lines, boolean shapes)
    renderer.setBaseToolTipGenerator(toolTipGenerator);
    renderer.setURLGenerator(urlGenerator);
    XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);
    //plot.setDataset(dataset);
    //plot.setDomainAxis(xAxis);
    //plot.setRangeAxis(yAxis);
    //plot.setRenderer(renderer);
    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    plot.setSeriesRenderingOrder(SeriesRenderingOrder.FORWARD);
    JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true);//true==legend
    //INVERTER AS CORES DOS PONTOS E LEGENDA.
    if (dataset.getSeriesCount() > 1) {
        Shape s0 = plot.getLegendItems().get(0).getShape();
        Shape s1 = plot.getLegendItems().get(1).getShape();
        renderer.setSeriesShape(0, s1);
        renderer.setSeriesShape(1, s0);/*  w w w.j  a va  2  s .c  o  m*/
        Paint p0 = plot.getLegendItems().get(0).getLinePaint();
        Paint p1 = plot.getLegendItems().get(1).getLinePaint();
        renderer.setSeriesPaint(0, p1);
        renderer.setSeriesPaint(1, p0);
    }
    //FIM DA INVERSAO.

    JFrame chartwindow = new JFrame(title);
    JPanel jpanel = new ChartPanel(chart);
    jpanel.setPreferredSize(new Dimension(defaultwidth, defaultheight));
    chartwindow.setContentPane(jpanel);
    chartwindow.pack();
    RefineryUtilities.centerFrameOnScreen(chartwindow);
    chartwindow.setVisible(true);
}

From source file:com.chart.SwingChart.java

/**
 * /*from  w w  w .j ava  2s .c  o m*/
 * @param axis Axis name to wich the new series belongs
 * @param cs Series Coinfiguration
 */
@Override
public final void addSeries(String axis, SimpleSeriesConfiguration cs) {
    for (int i = 0; i < axes.size(); i++) {
        if (axes.get(i).getName().equals(axis)) {
            String strColor;
            javafx.scene.paint.Color color;
            int indice = seriesList.size();
            if (cs.getColor() == null) {
                color = getColor(indice);
            } else {
                color = cs.getColor();
            }
            strColor = color.toString();

            XYSeriesCollection dataset = datasetList.get(i);
            Series series = new Series(cs.getName(), "color: " + strColor + ";width: "
                    + String.valueOf(cs.getLineWidth()) + ";shape: " + cs.getShapeName() + ";", i,
                    dataset.getSeriesCount());
            dataset.addSeries(series);

            XYItemRenderer renderer = plot.getRenderer(i);
            renderer.setSeriesPaint(dataset.getSeriesCount() - 1, scene2awtColor(color));

            SeriesShape simb = new SeriesShape(cs.getShapeName(),
                    javafx.scene.paint.Color.web(strColor.replace("#", "0x")));

            if (cs.getLineWidth() > 0) {
                ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(dataset.getSeriesCount() - 1, true);
                renderer.setSeriesStroke(dataset.getSeriesCount() - 1, new BasicStroke(cs.getLineWidth()));
            } else {
                ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(dataset.getSeriesCount() - 1, false);
            }

            if (cs.getShapeName().equals("null")) {
                renderer.setSeriesShape(dataset.getSeriesCount() - 1, null);
                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(dataset.getSeriesCount() - 1, false);
            } else {
                renderer.setSeriesShape(dataset.getSeriesCount() - 1, simb.getShapeAWT());
                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(dataset.getSeriesCount() - 1, true);
                if (cs.getShapeName().contains("empty")) {
                    ((XYLineAndShapeRenderer) renderer).setSeriesShapesFilled(dataset.getSeriesCount() - 1,
                            false);
                } else {
                    ((XYLineAndShapeRenderer) renderer).setSeriesShapesFilled(dataset.getSeriesCount() - 1,
                            true);
                }
            }

            if (i == 0) {
                plot.setRenderer(renderer);
            } else {
                plot.setRenderer(i, renderer);
            }

            seriesList.add(series);

            final LegendAxis le = getLegendAxis(axis);
            final Label label = new Label(cs.toString());
            Platform.runLater(() -> {
                label.setStyle("fondo: " + strChartBackgroundColor
                        + ";-fx-background-color: fondo;-fx-text-fill: ladder(fondo, white 49%, black 50%);-fx-padding:5px;-fx-background-radius: 5;-fx-font-size: "
                        + String.valueOf(fontSize) + "px");
            });

            label.setOnMouseClicked((MouseEvent t) -> {
                if (t.getClickCount() == 2) {
                    for (int i1 = 0; i1 < seriesList.size(); i1++) {
                        if (seriesList.get(i1).getKey().toString().equals(label.getText())) {
                            editSeries(seriesList.get(i1));
                            break;
                        }
                    }
                }
            });
            label.setOnMouseExited((MouseEvent t) -> {
                label.setStyle(
                        label.getStyle().replace("-fx-background-color: blue", "-fx-background-color: fondo"));
            });
            label.setOnMouseEntered((MouseEvent t) -> {
                label.setStyle(
                        label.getStyle().replace("-fx-background-color: fondo", "-fx-background-color: blue"));
                for (Node le1 : legendFrame.getChildren()) {
                    if (le1 instanceof LegendAxis) {
                        le1.setStyle("-fx-background-color:" + strBackgroundColor);
                        ((LegendAxis) le1).selected = false;
                    }
                }
            });
            label.setStyle("fondo: " + strChartBackgroundColor
                    + ";-fx-text-fill: white;-fx-background-color: fondo;-fx-padding:5px;-fx-background-radius: 5;-fx-font-size: "
                    + String.valueOf(fontSize) + "px");

            le.getChildren().add(label);
            label.setGraphic(simb.getShapeGraphic());

            break;
        }
    }
}

From source file:com.chart.SwingChart.java

/**
 * Series edition//from  w ww .  j av  a2  s  . c o  m
 * @param series Series to edit
 */
void editSeries(final Series series) {
    String[] style = series.getStyle().split(";");
    String strColor = "black";
    final TextField editWidth = new TextField();

    String tempS = "null";
    for (String e : style) {
        if (e.contains("color: ")) {
            strColor = e.replace("color: ", "");
        } else if (e.contains("width: ")) {
            editWidth.setText(e.replace("width: ", ""));
        } else if (e.contains("shape: ")) {
            tempS = e.replace("shape: ", "");
        }
    }
    final String symbol = tempS;

    final List<SeriesShape> symbolList = new ArrayList<>();
    final ObservableList<SeriesShape> symbolListModel;
    final ListView<SeriesShape> comboSymbol = new ListView();
    symbolList.add(new SeriesShape("null", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("rectangle", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("circle", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("triangle", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("crux", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("diamond", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("empty rectangle", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("empty circle", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("empty triangle", javafx.scene.paint.Color.web(strColor)));
    symbolList.add(new SeriesShape("empty diamond", javafx.scene.paint.Color.web(strColor)));

    symbolListModel = FXCollections.observableList(symbolList);
    comboSymbol.setItems(symbolListModel);
    comboSymbol.setCellFactory(new Callback<ListView<SeriesShape>, ListCell<SeriesShape>>() {
        @Override
        public ListCell<SeriesShape> call(ListView<SeriesShape> p) {
            ListCell<SeriesShape> cell = new ListCell<SeriesShape>() {
                @Override
                protected void updateItem(SeriesShape t, boolean bln) {
                    super.updateItem(t, bln);
                    if (t != null) {
                        setText("");
                        setGraphic(t.getShapeGraphic());
                    }
                }
            };

            return cell;
        }
    });
    for (SeriesShape smb : symbolListModel) {
        if (smb.getName().equals(symbol)) {
            comboSymbol.getSelectionModel().select(smb);
        }
    }

    final ColorPicker colorPicker = new ColorPicker(javafx.scene.paint.Color.web(strColor));

    colorPicker.setOnAction((ActionEvent t) -> {
        String sc = colorPicker.getValue().toString();
        symbolListModel.clear();
        symbolListModel.add(new SeriesShape("null", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("rectangle", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("circle", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("triangle", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("crux", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("diamond", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("empty rectangle", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("empty circle", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("empty triangle", javafx.scene.paint.Color.web(sc)));
        symbolListModel.add(new SeriesShape("empty diamond", javafx.scene.paint.Color.web(sc)));

        comboSymbol.setItems(symbolListModel);
        for (SeriesShape smb : symbolListModel) {
            if (smb.getName().equals(symbol)) {
                comboSymbol.getSelectionModel().select(smb);
            }
        }
    });

    GridPane grid = new GridPane();

    grid.setHgap(10);
    grid.setVgap(10);
    grid.setPadding(new Insets(0, 10, 0, 10));

    grid.add(new Label("Series"), 0, 0);
    grid.add(new Label(series.getKey().toString()), 1, 0);
    grid.add(new Label("Color"), 0, 1);
    grid.add(colorPicker, 1, 1);
    grid.add(new Label("Width"), 0, 2);
    grid.add(editWidth, 1, 2);
    grid.add(new Label("Shape"), 0, 3);
    grid.add(comboSymbol, 1, 3);

    new PseudoModalDialog(skeleton, grid, true) {
        @Override
        public boolean validation() {
            String strColor = colorPicker.getValue().toString();
            String strWidth = editWidth.getText();
            double dWidth = Double.valueOf(strWidth);
            String strSimbolo = "null";
            SeriesShape simb = new SeriesShape(comboSymbol.getSelectionModel().getSelectedItem().toString(),
                    javafx.scene.paint.Color.web(strColor));

            XYItemRenderer renderer = (XYItemRenderer) plot.getRenderer(series.getAxisIndex());

            renderer.setSeriesPaint(series.getSeriesIndex(), scene2awtColor(colorPicker.getValue()));

            try {
                if (Double.valueOf(strWidth) > 0) {
                    ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(series.getSeriesIndex(), true);
                    renderer.setSeriesStroke(series.getSeriesIndex(),
                            new BasicStroke(Integer.valueOf(strWidth)));
                } else {
                    ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(series.getSeriesIndex(), false);
                }
            } catch (NumberFormatException ex) {

            }

            if (simb.getName().contains("null")) {
                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(series.getSeriesIndex(), false);
                renderer.setSeriesShape(series.getSeriesIndex(), null);
            } else {
                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(series.getSeriesIndex(), true);
                renderer.setSeriesShape(series.getSeriesIndex(), simb.getShapeAWT());
                if (simb.getName().contains("empty")) {
                    ((XYLineAndShapeRenderer) renderer).setSeriesShapesFilled(series.getSeriesIndex(), false);
                } else {
                    ((XYLineAndShapeRenderer) renderer).setSeriesShapesFilled(series.getSeriesIndex(), true);
                }

            }

            series.setStyle(
                    "color: " + strColor + ";width: " + editWidth.getText() + ";shape: " + strSimbolo + ";");

            for (Node le : legendFrame.getChildren()) {
                if (le instanceof LegendAxis) {
                    for (Node nn : ((LegendAxis) le).getChildren()) {
                        if (nn instanceof Label) {
                            if (((Label) nn).getText().equals(series.getKey().toString())) {
                                ((Label) nn).setGraphic(simb.getShapeGraphic());
                            }
                        }
                    }
                }
            }
            return true;
        }
    }.show();

}

From source file:org.gumtree.vis.awt.time.TimePlotChartEditor.java

@Override
public void updateChart(JFreeChart chart) {
    super.updateChart(chart);
    if (currentDataset != null && currentSeriesIndex >= 0) {
        XYItemRenderer renderer = chart.getXYPlot().getRendererForDataset(currentDataset);
        if (renderer instanceof XYLineAndShapeRenderer) {
            renderer.setSeriesPaint(currentSeriesIndex, curveColorPaint.getPaint());
            Stroke stroke = curveStrokeSample.getStroke();
            if (stroke == null) {
                ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(currentSeriesIndex, false);
            } else {
                ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(currentSeriesIndex, true);
                renderer.setSeriesStroke(currentSeriesIndex, stroke);
            }/*from  www.j  a  va2  s .co  m*/

            //             if (!isMarkerVisible) {
            //                for (int i = 0; i < chart.getXYPlot().getSeriesCount(); i++) {
            //                   ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(i, 
            //                         isMarkerVisible);
            //                }
            //             }
            //             ((XYLineAndShapeRenderer) renderer).setBaseShapesVisible(
            //                   isMarkerVisible);

            ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(currentSeriesIndex,
                    showMarker.isSelected());

            Shape shape = currentShape.getShape();
            if (shape == null) {
                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(currentSeriesIndex, false);
            } else {
                //                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(
                //                      currentSeriesIndex,  true);
                renderer.setSeriesShape(currentSeriesIndex, shape);
            }

            ((XYLineAndShapeRenderer) renderer).setSeriesShapesFilled(currentSeriesIndex,
                    markerFilled.isSelected());

            renderer.setSeriesVisible(currentSeriesIndex, curveVisable.isSelected());

            //Update logarithm X filed
            ValueAxis axis = chart.getXYPlot().getDomainAxis();
            if (showAllHistory.isSelected()) {
                axis.setFixedAutoRange(0d);
            }
            if (showPartHistory.isSelected()) {
                double fixedTimeSec = 0;
                try {
                    fixedTimeSec = Double.valueOf(timeField.getText());
                } catch (Exception e) {
                    // TODO: handle exception
                }
                if (fixedTimeSec <= 0) {
                    fixedTimeSec = 60;
                }
                axis.setFixedAutoRange(fixedTimeSec * 1000);
            }

            //Update logarithm Y filed
            axis = chart.getXYPlot().getRangeAxis();
            if (axis instanceof LogarithmizableAxis) {
                //                if (logarithmY.isSelected() != initialLogarithmY) {
                //                   ((LogarithmizableAxis) axis).setLogarithmic(
                //                         logarithmY.isSelected());
                //                   ((LogarithmizableAxis) axis).autoAdjustRange();
                //                }
            }

        }
    }
}

From source file:org.gumtree.vis.plot1d.Plot1DChartEditor.java

@Override
public void updateChart(JFreeChart chart) {
    super.updateChart(chart);
    if (currentSeriesIndex >= 0) {
        XYItemRenderer renderer = chart.getXYPlot().getRenderer();
        if (renderer instanceof XYLineAndShapeRenderer) {
            renderer.setSeriesPaint(currentSeriesIndex, curveColorPaint.getPaint());
            Stroke stroke = curveStrokeSample.getStroke();
            if (stroke == null) {
                ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(currentSeriesIndex, false);
            } else {
                ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(currentSeriesIndex, true);
                renderer.setSeriesStroke(currentSeriesIndex, stroke);
            }/*from w w  w.  j  a  va 2  s.c  o  m*/

            ((XYErrorRenderer) renderer).setDrawYError(showError.isSelected());

            boolean isMarkerVisible = showMarker.isSelected();
            if (!isMarkerVisible) {
                for (int i = 0; i < chart.getXYPlot().getSeriesCount(); i++) {
                    ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(i, isMarkerVisible);
                }
            }
            ((XYLineAndShapeRenderer) renderer).setBaseShapesVisible(isMarkerVisible);

            Shape shape = currentShape.getShape();
            if (shape == null) {
                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(currentSeriesIndex, false);
            } else {
                ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(currentSeriesIndex, isMarkerVisible);
                renderer.setSeriesShape(currentSeriesIndex, shape);
            }

            ((XYLineAndShapeRenderer) renderer).setSeriesShapesFilled(currentSeriesIndex,
                    markerFilled.isSelected());

            renderer.setSeriesVisible(currentSeriesIndex, curveVisable.isSelected());

            //Update logarithm X filed
            ValueAxis axis = chart.getXYPlot().getDomainAxis();
            if (axis instanceof LogarithmizableAxis) {
                if (logarithmX.isSelected() != initialLogarithmX) {
                    ((LogarithmizableAxis) axis).setLogarithmic(logarithmX.isSelected());
                    ((LogarithmizableAxis) axis).autoAdjustRange();
                }
            }
            if (flipX.isSelected() != initialFlipX) {
                axis.setInverted(flipX.isSelected());
            }

            float newMargin = initialMargin;
            try {
                newMargin = Float.valueOf(horizontalMargin.getText());
                if (newMargin < 0) {
                    newMargin = 0;
                } else if (newMargin > 0.10) {
                    newMargin = 0.10f;
                }
            } catch (Exception e) {
            }
            if (newMargin != initialMargin) {
                axis.setLowerMargin(newMargin);
                axis.setUpperMargin(newMargin);
            }

            //Update logarithm Y filed
            axis = chart.getXYPlot().getRangeAxis();
            if (axis instanceof LogarithmizableAxis) {
                if (logarithmY.isSelected() != initialLogarithmY) {
                    ((LogarithmizableAxis) axis).setLogarithmic(logarithmY.isSelected());
                    ((LogarithmizableAxis) axis).autoAdjustRange();
                }
            }
            if (flipY.isSelected() != initialFlipY) {
                axis.setInverted(flipY.isSelected());
            }
        }
    }
    applyROIChange();
}

From source file:com.att.aro.ui.view.diagnostictab.plot.BufferInSecondsPlot.java

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    if (analysis != null) {
        VideoUsage videoUsage = analysis.getAnalyzerResult().getVideoUsage();
        bufferFillDataCollection.removeAllSeries();
        seriesBufferFill = new XYSeries("Buffer Against Play Time");
        seriesDataSets = new TreeMap<>();

        seriesDataSets = bufferInSecondsCalculatorImpl.populate(videoUsage, chunkPlayTimeList);
        //updating video stall result in packetAnalyzerResult
        analysis.getAnalyzerResult().setVideoStalls(bufferInSecondsCalculatorImpl.getVideoStallResult());

        bufferTimeList.clear();// ww  w . j a  v a  2s .com
        double xCoordinate, yCoordinate;
        String ptCoordinate[] = new String[2]; // to hold x & y values
        if (!seriesDataSets.isEmpty()) {

            for (int key : seriesDataSets.keySet()) {
                ptCoordinate = seriesDataSets.get(key).trim().split(",");
                xCoordinate = Double.parseDouble(ptCoordinate[0]);
                yCoordinate = Double.parseDouble(ptCoordinate[1]);
                bufferTimeList.add(yCoordinate);

                seriesBufferFill.add(xCoordinate, yCoordinate);
            }
        }

        Collections.sort(bufferTimeList);
        BufferTimeBPResult bufferTimeResult = bufferInSecondsCalculatorImpl
                .updateBufferTimeResult(bufferTimeList);
        analysis.getAnalyzerResult().setBufferTimeResult(bufferTimeResult);
        // populate collection
        bufferFillDataCollection.addSeries(seriesBufferFill);

        XYItemRenderer renderer = new StandardXYItemRenderer();
        renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {

            @Override
            public String generateToolTip(XYDataset dataset, int series, int item) {

                // Tooltip value
                Number timestamp = dataset.getX(series, item);
                Number bufferTime = dataset.getY(series, item);
                StringBuffer tooltipValue = new StringBuffer();

                Map<Double, Long> segmentEndTimeMap = bufferInSecondsCalculatorImpl.getSegmentEndTimeMap();
                Map<Long, Double> segmentStartTimeMap = bufferInSecondsCalculatorImpl.getSegmentStartTimeMap();
                double firstSegmentNo = videoUsage.getChunksBySegmentNumber().get(0).getSegment();

                DecimalFormat decimalFormat = new DecimalFormat("0.##");
                if (segmentStartTimeMap == null || segmentStartTimeMap.isEmpty()) {
                    return "-,-,-";
                }

                List<Long> segmentList = new ArrayList<Long>(segmentEndTimeMap.values());
                Collections.sort(segmentList);
                Long lastSegmentNo = segmentList.get(segmentList.size() - 1);

                Long segmentNumber = 0L;
                boolean isSegmentPlaying = false;
                boolean startup = false;
                boolean endPlay = false;

                for (double segmentEndTime : segmentEndTimeMap.keySet()) {
                    if (segmentEndTime > timestamp.doubleValue()) {
                        segmentNumber = segmentEndTimeMap.get(segmentEndTime);
                        if (segmentNumber == firstSegmentNo) {
                            startup = true;
                        }
                        if (segmentStartTimeMap.get(segmentNumber) <= timestamp.doubleValue()) {
                            tooltipValue.append(decimalFormat.format(segmentNumber) + ",");
                            isSegmentPlaying = true;
                            startup = false;
                        }
                    } else if (lastSegmentNo.equals(segmentEndTimeMap.get(segmentEndTime))
                            && segmentEndTime == timestamp.doubleValue()) {
                        endPlay = true;
                    }
                }

                if (endPlay || startup) {
                    tooltipValue.append("-,");
                } else if (!isSegmentPlaying && !startup) {
                    tooltipValue.append("Stall,");
                }

                tooltipValue.append(String.format("%.2f", bufferTime) + "," + String.format("%.2f", timestamp));

                String[] value = tooltipValue.toString().split(",");
                return (MessageFormat.format(BUFFER_TIME_OCCUPANCY_TOOLTIP, value[0], value[1], value[2]));
            }

        });
        renderer.setSeriesStroke(0, new BasicStroke(2.0f));
        renderer.setSeriesPaint(0, Color.MAGENTA);

        renderer.setSeriesShape(0, shape);

        plot.setRenderer(renderer);

    }
    plot.setDataset(bufferFillDataCollection);
}