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

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

Introduction

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

Prototype

public void setSeriesPaint(int series, Paint paint);

Source Link

Document

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

Usage

From source file:com.diversityarrays.kdxplore.scatterplot.ScatterPlotPanel.java

private void generateChart(boolean recreateDataSet, Bag<String> missingOrBad, Bag<String> suppressed) {

    if (recreateDataSet) {
        currentDataSet = createSampleDataSet(missingOrBad, suppressed);
    }//w  ww  .  ja  va2  s .co  m

    XYSeriesCollection dataset = currentDataSet;

    PlotOrientation orientation = PlotOrientation.VERTICAL;
    boolean show = true;
    boolean toolTips = true;
    boolean urls = true;

    chart = ChartFactory.createScatterPlot(getTitle(), xAxisName, yAxisName, dataset, orientation, show,
            toolTips, urls);

    if (DEBUG) {
        System.out.println("Generated new ScatterPlot"); //$NON-NLS-1$
    }

    TraitColorProvider traitColorProvider = colorProviderFactory.get();

    XYPlot xyPlot = (XYPlot) chart.getPlot();
    XYItemRenderer xyr = xyPlot.getRendererForDataset(dataset);

    boolean anyDisplayValues = false;
    if (!xNumberToTraitValue.numberToTraitValue.isEmpty()) {
        anyDisplayValues = true;
    } else {
        for (NumberToTraitValue n2tv : numberToTraitValueBySeriesIndex.values()) {
            if (!n2tv.numberToTraitValue.isEmpty()) {
                anyDisplayValues = true;
                break;
            }
        }
    }
    if (anyDisplayValues) {
        xyr.setBaseToolTipGenerator(new MyXYToolTipGenerator());
    }

    for (TraitInstance ti : traitInstances) {
        ColorPair colorPair = traitColorProvider.getTraitInstanceColor(ti);
        if (colorPair != null) {
            if (DEBUG) {
                System.out.println("Got a color back for: " + InstanceIdentifierUtil.getInstanceIdentifier(ti)); //$NON-NLS-1$
            }

            String validName = traitNameStyle.makeTraitInstanceName(ti);
            if (seriesCountByTraitName.get(validName) != null) {
                xyr.setSeriesPaint(seriesCountByTraitName.get(validName), colorPair.getBackground());
            }
        }
    }
    xyPlot.setRenderer(xyr);

    chartPanel.setChart(chart);

    dataxMin = xyPlot.getDomainAxis().getLowerBound();
    dataxMax = xyPlot.getDomainAxis().getUpperBound();

    datayMin = xyPlot.getRangeAxis().getLowerBound();
    datayMax = xyPlot.getRangeAxis().getUpperBound();
}

From source file:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java

private JFreeChart createXYZBubbleChart(String title, String xLabel, String yLabel, XYZDataset dataset) {
    JFreeChart chart = ChartFactory.createBubbleChart(title, xLabel, yLabel, dataset, orientation, true, true,
            false);/*from  w w  w.ja  v a  2  s .co  m*/
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setForegroundAlpha(0.65f);

    XYItemRenderer renderer = plot.getRenderer();
    renderer.setSeriesPaint(0, Color.blue);
    //renderer.setLegendItemLabelGenerator(new SOCRXYZSeriesLabelGenerator());

    // increase the margins to account for the fact that the auto-range
    // doesn't take into account the bubble size...
    NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
    domainAxis.setLowerMargin(0.15);
    domainAxis.setUpperMargin(0.15);
    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setLowerMargin(0.15);
    rangeAxis.setUpperMargin(0.15);
    return chart;
}

From source file:com.att.aro.diagnostics.GraphPanel.java

private static void populateWifiPlot(XYPlot plot, TraceData.Analysis analysis) {

    // create the dataset...
    final XYIntervalSeriesCollection wifiData = new XYIntervalSeriesCollection();
    if (analysis != null) {

        Map<WifiState, XYIntervalSeries> seriesMap = new EnumMap<WifiState, XYIntervalSeries>(WifiState.class);
        for (WifiState eventType : WifiState.values()) {
            XYIntervalSeries series = new XYIntervalSeries(eventType);
            seriesMap.put(eventType, series);
            switch (eventType) {
            case WIFI_UNKNOWN:
            case WIFI_DISABLED:
                // Don't chart these
                break;
            default:
                wifiData.addSeries(series);
                break;
            }/*from w  ww.  j av  a 2s  .  c o  m*/
        }

        // Populate the data set
        List<WifiInfo> wifiInfos = analysis.getWifiInfos();
        final Map<Double, WifiInfo> eventMap = new HashMap<Double, WifiInfo>(wifiInfos.size());
        Iterator<WifiInfo> iter = wifiInfos.iterator();
        if (iter.hasNext()) {
            while (iter.hasNext()) {
                WifiInfo wifiEvent = iter.next();
                seriesMap.get(wifiEvent.getWifiState()).add(wifiEvent.getBeginTimeStamp(),
                        wifiEvent.getBeginTimeStamp(), wifiEvent.getEndTimeStamp(), 0.5, 0, 1);
                eventMap.put(wifiEvent.getBeginTimeStamp(), wifiEvent);
            }
        }

        XYItemRenderer renderer = plot.getRenderer();
        for (WifiState eventType : WifiState.values()) {
            Color paint;
            switch (eventType) {
            case WIFI_CONNECTED:
            case WIFI_CONNECTING:
            case WIFI_DISCONNECTING:
                paint = new Color(34, 177, 76);
                break;
            case WIFI_DISCONNECTED:
            case WIFI_SUSPENDED:
                paint = Color.YELLOW;
                break;
            default:
                paint = Color.WHITE;
                break;
            }

            int index = wifiData.indexOf(eventType);
            if (index >= 0) {
                renderer.setSeriesPaint(index, paint);
            }
        }

        // Assign ToolTip to renderer
        renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
            @Override
            public String generateToolTip(XYDataset dataset, int series, int item) {
                WifiState eventType = (WifiState) wifiData.getSeries(series).getKey();

                StringBuffer message = new StringBuffer(rb.getString("wifi.tooltip.prefix"));
                message.append(MessageFormat.format(rb.getString("wifi.tooltip"), dataset.getX(series, item),
                        ResourceBundleManager.getEnumString(eventType)));
                switch (eventType) {
                case WIFI_CONNECTED:
                    WifiInfo info = eventMap.get(dataset.getX(series, item));
                    if (info != null && info.getWifiState() == WifiState.WIFI_CONNECTED) {
                        message.append(MessageFormat.format(rb.getString("wifi.connTooltip"),
                                info.getWifiMacAddress(), info.getWifiRSSI(), info.getWifiSSID()));
                    }
                    break;
                default:
                    break;
                }
                message.append(rb.getString("wifi.tooltip.suffix"));
                return message.toString();
            }
        });

    }

    plot.setDataset(wifiData);
}

From source file:org.ramadda.geodata.cdmdata.CdmDataOutputHandler.java

/**
 * Output the timeseries image//from  w  w  w . j  ava 2s  .  c o  m
 *
 * @param request the request
 * @param entry  the entry
 * @param f  the file
 *
 * @return  the image
 *
 * @throws Exception  problem creating image
 */
private Result outputTimeSeriesImage(Request request, Entry entry, File f) throws Exception {

    StringBuffer sb = new StringBuffer();
    //sb.append(getHeader(request, entry));
    sb.append(header(msg("Chart")));

    TimeSeriesCollection dummy = new TimeSeriesCollection();
    JFreeChart chart = createChart(request, entry, dummy);
    XYPlot xyPlot = (XYPlot) chart.getPlot();

    Hashtable<String, MyTimeSeries> seriesMap = new Hashtable<String, MyTimeSeries>();
    List<MyTimeSeries> allSeries = new ArrayList<MyTimeSeries>();
    int paramCount = 0;
    int colorCount = 0;
    boolean axisLeft = true;
    Hashtable<String, List<ValueAxis>> axisMap = new Hashtable<String, List<ValueAxis>>();
    Hashtable<String, double[]> rangeMap = new Hashtable<String, double[]>();
    List<String> units = new ArrayList<String>();
    List<String> paramUnits = new ArrayList<String>();
    List<String> paramNames = new ArrayList<String>();

    long t1 = System.currentTimeMillis();
    String contents = IOUtil.readContents(getStorageManager().getFileInputStream(f));
    List<String> lines = StringUtil.split(contents, "\n", true, true);
    String header = lines.get(0);
    String[] headerToks = header.split(",");
    for (int i = 0; i < headerToks.length; i++) {
        paramNames.add(getParamName(headerToks[i]));
        paramUnits.add(getUnitFromName(headerToks[i]));
    }
    boolean hasLevel = paramNames.get(3).equals("vertCoord");

    boolean readHeader = false;
    for (String line : lines) {
        if (!readHeader) {
            readHeader = true;

            continue;
        }
        String[] lineTokes = line.split(",");
        Date date = DateUtil.parse(lineTokes[0]);
        int startIdx = hasLevel ? 4 : 3;
        for (int i = startIdx; i < lineTokes.length; i++) {
            double value = Double.parseDouble(lineTokes[i]);
            if (value != value) {
                continue;
            }
            List<ValueAxis> axises = null;
            double[] range = null;
            String u = paramUnits.get(i);
            String paramName = paramNames.get(i);
            String formatName = paramName.replaceAll("_", " ");
            String formatUnit = ((u == null) || (u.length() == 0)) ? "" : "[" + u + "]";
            if (u != null) {
                axises = axisMap.get(u);
                range = rangeMap.get(u);
                if (axises == null) {
                    axises = new ArrayList<ValueAxis>();
                    range = new double[] { value, value };
                    rangeMap.put(u, range);
                    axisMap.put(u, axises);
                    units.add(u);
                }
                range[0] = Math.min(range[0], value);
                range[1] = Math.max(range[1], value);
            }
            MyTimeSeries series = seriesMap.get(paramName);
            if (series == null) {
                paramCount++;
                TimeSeriesCollection dataset = new TimeSeriesCollection();
                series = new MyTimeSeries(formatName, FixedMillisecond.class);
                allSeries.add(series);
                ValueAxis rangeAxis = new NumberAxis(formatName + " " + formatUnit);
                if (axises != null) {
                    axises.add(rangeAxis);
                }
                XYItemRenderer renderer = new XYAreaRenderer(XYAreaRenderer.LINES);
                if (colorCount >= GuiUtils.COLORS.length) {
                    colorCount = 0;
                }
                renderer.setSeriesPaint(0, GuiUtils.COLORS[colorCount]);
                colorCount++;
                xyPlot.setRenderer(paramCount, renderer);
                xyPlot.setRangeAxis(paramCount, rangeAxis, false);
                AxisLocation side = (axisLeft ? AxisLocation.TOP_OR_LEFT : AxisLocation.BOTTOM_OR_RIGHT);
                axisLeft = !axisLeft;
                xyPlot.setRangeAxisLocation(paramCount, side);

                dataset.setDomainIsPointsInTime(true);
                dataset.addSeries(series);
                seriesMap.put(paramNames.get(i), series);
                xyPlot.setDataset(paramCount, dataset);
                xyPlot.mapDatasetToRangeAxis(paramCount, paramCount);
            }
            //series.addOrUpdate(new FixedMillisecond(pointData.date),value);
            TimeSeriesDataItem item = new TimeSeriesDataItem(new FixedMillisecond(date), value);
            series.addItem(item);
        }
    }

    for (MyTimeSeries timeSeries : allSeries) {
        timeSeries.finish();
    }

    for (String unit : units) {
        List<ValueAxis> axises = axisMap.get(unit);
        double[] range = rangeMap.get(unit);
        for (ValueAxis rangeAxis : axises) {
            rangeAxis.setRange(new org.jfree.data.Range(range[0], range[1]));
        }
    }

    long t2 = System.currentTimeMillis();

    BufferedImage newImage = chart.createBufferedImage(request.get(ARG_IMAGE_WIDTH, 1000),
            request.get(ARG_IMAGE_HEIGHT, 400));
    long t3 = System.currentTimeMillis();
    //System.err.println("timeseries image time:" + (t2 - t1) + " "
    //                   + (t3 - t2));

    File file = getStorageManager().getTmpFile(request, "point.png");
    ImageUtils.writeImageToFile(newImage, file);
    InputStream is = getStorageManager().getFileInputStream(file);
    Result result = new Result("", is, "image/png");

    return result;

}

From source file:net.sf.fspdfs.chartthemes.simple.SimpleChartTheme.java

protected void handleXYPlotSettings(XYPlot p, JRChartPlot jrPlot) {
    PlotSettings plotSettings = getPlotSettings();
    XYItemRenderer xyItemRenderer = p.getRenderer();
    Paint[] paintSequence = getPaintSequence(plotSettings, jrPlot);
    if (paintSequence != null) {
        for (int i = 0; i < paintSequence.length; i++) {
            xyItemRenderer.setSeriesPaint(i, paintSequence[i]);
        }//from   w  w  w. java  2  s .c  om
    }
    Paint[] outlinePaintSequence = getOutlinePaintSequence(plotSettings);
    if (outlinePaintSequence != null) {
        for (int i = 0; i < outlinePaintSequence.length; i++) {
            xyItemRenderer.setSeriesOutlinePaint(i, outlinePaintSequence[i]);
        }
    }
    Stroke[] strokeSequence = getStrokeSequence(plotSettings);
    if (strokeSequence != null) {
        for (int i = 0; i < strokeSequence.length; i++) {
            xyItemRenderer.setSeriesStroke(i, strokeSequence[i]);
        }
    }
    Stroke[] outlineStrokeSequence = getOutlineStrokeSequence(plotSettings);
    if (outlineStrokeSequence != null) {
        for (int i = 0; i < outlineStrokeSequence.length; i++) {
            xyItemRenderer.setSeriesOutlineStroke(i, outlineStrokeSequence[i]);
        }
    }

    Boolean domainGridlineVisible = plotSettings.getDomainGridlineVisible();
    if (domainGridlineVisible == null || domainGridlineVisible.booleanValue()) {
        PaintProvider domainGridlinePaint = plotSettings.getDomainGridlinePaint();
        if (domainGridlinePaint != null) {
            p.setDomainGridlinePaint(domainGridlinePaint.getPaint());
        }
        Stroke domainGridlineStroke = plotSettings.getDomainGridlineStroke();
        if (domainGridlineStroke != null) {
            p.setDomainGridlineStroke(domainGridlineStroke);
        }

    }
    Boolean rangeGridlineVisible = plotSettings.getRangeGridlineVisible();
    if (rangeGridlineVisible == null || rangeGridlineVisible.booleanValue()) {
        PaintProvider rangeGridlinePaint = plotSettings.getRangeGridlinePaint();
        if (rangeGridlinePaint != null) {
            p.setRangeGridlinePaint(rangeGridlinePaint.getPaint());
        }
        Stroke rangeGridlineStroke = plotSettings.getRangeGridlineStroke();
        if (rangeGridlineStroke != null) {
            p.setRangeGridlineStroke(rangeGridlineStroke);
        }
    }

    //      p.setRangeZeroBaselineVisible(true);

}

From source file:ucar.unidata.idv.control.chart.VerticalProfileChart.java

/**
 *  Add a series to the charts/*ww w . ja v  a 2s. c o  m*/
 *
 *
 * @param series   series
 * @param lineState line state
 * @param paramIdx  param index
 * @param renderer  renderer
 * @param rangeVisible range visible
 *
 * @return  the Axis
 */
protected Axis addSeries(XYSeries series, LineState lineState, int paramIdx, XYItemRenderer renderer,
        boolean rangeVisible) {

    if (lineState.getRange() != null) {
        addRange(lineState.getRange().getMin(), lineState.getRange().getMax(),
                "Fixed range from: " + lineState.getName());
    }

    if (numberFormat == null) {
        numberFormat = new DecimalFormat() {
            public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) {

                String s = control.getDisplayConventions().format(number);
                result.append(s);
                return result;
            }
        };

    }

    String name = lineState.getName();
    Unit unit = lineState.unit;
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series);

    NumberAxis rangeAxis;
    NumberAxis domainAxis = null;
    String axisLabel = name + ((unit != null) ? " [" + unit + "]" : "");

    if (lineState.getUseLogarithmicRange() && false) {
        rangeAxis = new FixedWidthLogarithmicAxis(axisLabel);
    } else {
        //rangeAxis = new FixedWidthNumberAxis(axisLabel);
        rangeAxis = new NumberAxis(axisLabel);
        ((NumberAxis) rangeAxis).setAutoRangeIncludesZero(lineState.getRangeIncludesZero());
        VerticalProfileInfo vpInfo = (VerticalProfileInfo) profiles.get(0);
        Unit altUnit = vpInfo.getAltitudeUnit();
        if (altUnit != null && paramIdx == 0 && !(altUnit.equals(CommonUnit.meter))) {
            String dlabel = "Altitude " + "[" + altUnit + "]";
            domainAxis = new NumberAxis(dlabel);
            if (altUnit.isConvertible(CommonUnits.HECTOPASCAL))
                domainAxis.setInverted(true);
        }
    }

    //For now lets use the default number formatting for the range
    //        rangeAxis.setNumberFormatOverride(numberFormat);

    rangeAxis.setVisible(rangeVisible);

    ucar.unidata.util.Range r = lineState.getRange();
    if (r != null) {
        rangeAxis.setRange(new org.jfree.data.Range(r.getMin(), r.getMax()));
    }

    if (renderer == null) {
        renderer = getRenderer(lineState);
    }

    Paint c = lineState.getColor(paramIdx);
    rangeAxis.setLabelPaint(Color.black);
    renderer.setSeriesPaint(0, c);
    renderer.setSeriesStroke(0, lineState.getStroke());

    if (!lineState.getAxisVisible()) {
        rangeAxis.setVisible(false);
    }

    AxisLocation side = null;
    ChartHolder chartHolder = getChartHolder(lineState);
    if (rangeAxis.isVisible()) {
        if (lineState.getSide() == LineState.SIDE_UNDEFINED) {
            side = AxisLocation.BOTTOM_OR_RIGHT;
        } else if (lineState.getSide() == LineState.SIDE_LEFT) {
            side = AxisLocation.TOP_OR_LEFT;
        } else {
            side = AxisLocation.BOTTOM_OR_RIGHT;
        }
        chartHolder.lastSide = side;
    }

    synchronized (MUTEX) {
        if (domainAxis == null) {
            if (isConservedSounding)
                chartHolder.add(dataset, renderer, side);
            else
                chartHolder.add(dataset, rangeAxis, renderer, side);

        } else
            chartHolder.add(dataset, rangeAxis, domainAxis, renderer, side);
    }

    return rangeAxis;
}

From source file:net.sf.jasperreports.chartthemes.simple.SimpleChartTheme.java

protected void handleXYPlotSettings(XYPlot p, JRChartPlot jrPlot) {
    PlotSettings plotSettings = getPlotSettings();
    XYItemRenderer xyItemRenderer = p.getRenderer();
    Paint[] paintSequence = getPaintSequence(plotSettings, jrPlot);
    if (paintSequence != null) {
        for (int i = 0; i < paintSequence.length; i++) {
            xyItemRenderer.setSeriesPaint(i, paintSequence[i]);
        }/*from   ww  w.  ja  v a  2s .c o m*/
    }
    Paint[] outlinePaintSequence = getOutlinePaintSequence(plotSettings);
    if (outlinePaintSequence != null) {
        for (int i = 0; i < outlinePaintSequence.length; i++) {
            xyItemRenderer.setSeriesOutlinePaint(i, outlinePaintSequence[i]);
        }
    }
    Stroke[] strokeSequence = getStrokeSequence(plotSettings);
    if (strokeSequence != null) {
        for (int i = 0; i < strokeSequence.length; i++) {
            xyItemRenderer.setSeriesStroke(i, strokeSequence[i]);
        }
    }
    Stroke[] outlineStrokeSequence = getOutlineStrokeSequence(plotSettings);
    if (outlineStrokeSequence != null) {
        for (int i = 0; i < outlineStrokeSequence.length; i++) {
            xyItemRenderer.setSeriesOutlineStroke(i, outlineStrokeSequence[i]);
        }
    }

    Boolean domainGridlineVisible = plotSettings.getDomainGridlineVisible();
    if (domainGridlineVisible == null || domainGridlineVisible) {
        PaintProvider domainGridlinePaint = plotSettings.getDomainGridlinePaint();
        if (domainGridlinePaint != null) {
            p.setDomainGridlinePaint(domainGridlinePaint.getPaint());
        }
        Stroke domainGridlineStroke = plotSettings.getDomainGridlineStroke();
        if (domainGridlineStroke != null) {
            p.setDomainGridlineStroke(domainGridlineStroke);
        }

    }
    Boolean rangeGridlineVisible = plotSettings.getRangeGridlineVisible();
    if (rangeGridlineVisible == null || rangeGridlineVisible) {
        PaintProvider rangeGridlinePaint = plotSettings.getRangeGridlinePaint();
        if (rangeGridlinePaint != null) {
            p.setRangeGridlinePaint(rangeGridlinePaint.getPaint());
        }
        Stroke rangeGridlineStroke = plotSettings.getRangeGridlineStroke();
        if (rangeGridlineStroke != null) {
            p.setRangeGridlineStroke(rangeGridlineStroke);
        }
    }

    //      p.setRangeZeroBaselineVisible(true);

}

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();//from   w w w .  jav  a 2  s  .  c o m
        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);
}

From source file:ucar.unidata.idv.control.chart.TimeSeriesChart.java

/**
 * Add the series/*w w  w . j  av  a2 s .  c  o m*/
 *
 *
 * @param series The data
 * @param lineState describes how to draw the line
 * @param paramIdx which parameter
 * @param renderer renderer
 * @param rangeVisible  do we show range axis
 * @param addAxis include the axis
 *
 * @return the newly created range axis
 */
protected Axis addSeries(TimeSeries series, LineState lineState, int paramIdx, XYItemRenderer renderer,
        boolean rangeVisible, boolean addAxis) {

    if (series instanceof MyTimeSeries) {
        ((MyTimeSeries) series).finish();
    }

    if (addAxis && (lineState.getRange() != null)) {
        addRange(lineState.getRange().getMin(), lineState.getRange().getMax(),
                "Fixed range from: " + lineState.getName());
    }

    if (numberFormat == null) {
        numberFormat = new DecimalFormat() {
            public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) {
                String s = control.getDisplayConventions().format(number);
                result.append(s);

                return result;
            }
        };

    }

    String name = lineState.getName();
    Unit unit = lineState.unit;
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.setDomainIsPointsInTime(true);
    dataset.addSeries(series);

    String axisLabel = lineState.getAxisLabel();
    if (axisLabel == null) {
        axisLabel = name + ((unit != null) ? " [" + unit + "]" : "");
    }
    NumberAxis rangeAxis;

    if (lineState.getUseLogarithmicRange() && false) {
        rangeAxis = new FixedWidthLogarithmicAxis(axisLabel);
    } else {
        rangeAxis = new FixedWidthNumberAxis(axisLabel);
        ((NumberAxis) rangeAxis).setAutoRangeIncludesZero(lineState.getRangeIncludesZero());
    }

    //For now lets use the default number formatting for the range
    //        rangeAxis.setNumberFormatOverride(numberFormat);

    rangeAxis.setVisible(rangeVisible);

    ucar.unidata.util.Range r = lineState.getRange();
    if (r != null) {
        rangeAxis.setRange(new org.jfree.data.Range(r.getMin(), r.getMax()));
    }

    if (renderer == null) {
        renderer = getRenderer(lineState, addAxis);
    }

    Paint c = lineState.getColor(paramIdx);
    rangeAxis.setLabelPaint(Color.black);
    renderer.setSeriesPaint(0, c);
    renderer.setSeriesStroke(0, lineState.getStroke());
    renderer.setSeriesVisibleInLegend(0, lineState.getVisibleInLegend());

    if (!lineState.getAxisVisible()) {
        rangeAxis.setVisible(false);
    } else {
        rangeAxis.setVisible(addAxis);
    }

    ChartHolder chartHolder = getChartHolder(lineState);

    AxisLocation side = null;
    if (rangeAxis.isVisible()) {
        if (lineState.getSide() == LineState.SIDE_UNDEFINED) {
            if (chartHolder.lastSide == AxisLocation.TOP_OR_LEFT) {
                side = AxisLocation.BOTTOM_OR_RIGHT;
            } else {
                side = AxisLocation.TOP_OR_LEFT;
            }
        } else if (lineState.getSide() == LineState.SIDE_LEFT) {
            side = AxisLocation.TOP_OR_LEFT;
        } else {
            side = AxisLocation.BOTTOM_OR_RIGHT;
        }
        chartHolder.lastSide = side;
    }

    synchronized (MUTEX) {
        chartHolder.add(dataset, rangeAxis, renderer, side);
    }

    return rangeAxis;
}

From source file:com.naryx.tagfusion.cfm.tag.awt.cfCHART.java

private void setPaintStyle(String paintStyle, XYItemRenderer renderer, int seriesNum, int height) {
    if (paintStyle.equals("shade")) {
        Paint paint = renderer.getSeriesPaint(seriesNum);
        if (paint instanceof java.awt.Color) {
            java.awt.Color orig = (java.awt.Color) paint;
            java.awt.Color darker = getDarkerColor(orig);
            renderer.setSeriesPaint(seriesNum, new java.awt.GradientPaint(0, 0, darker, 0, height, orig));
        }//from   w  w  w . j  a v a 2 s . c  om
    } else if (paintStyle.equals("light")) {
        Paint paint = renderer.getSeriesPaint(seriesNum);
        if (paint instanceof java.awt.Color) {
            java.awt.Color orig = (java.awt.Color) paint;
            java.awt.Color lighter = getLighterColor(orig);
            renderer.setSeriesPaint(seriesNum, new java.awt.GradientPaint(0, 0, orig, 0, height, lighter));
        }
    }

    // With CFMX 7.0, the raise value appears to behave the same as the plain
    // value.
}