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

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

Introduction

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

Prototype

public void setBaseToolTipGenerator(XYToolTipGenerator generator);

Source Link

Document

Sets the base tool tip generator and sends a RendererChangeEvent to all registered listeners.

Usage

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

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    if (analysis == null) {
        logger.info("analysis data is null");
    } else {//from  w  w  w . ja  va  2 s  . c  o  m
        screenData.removeAllSeries();
        TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType();
        if (resultType.equals(TraceResultType.TRACE_FILE)) {
            logger.info("didn't get analysis trace data!");

        } else {
            TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult()
                    .getTraceresult();

            XYIntervalSeries series = new XYIntervalSeries(ScreenState.SCREEN_ON);
            screenData.addSeries(series);

            // Populate the data set
            final Map<Double, ScreenStateInfo> dataMap = new HashMap<Double, ScreenStateInfo>();
            Iterator<ScreenStateInfo> iter = traceresult.getScreenStateInfos().iterator();
            if (iter.hasNext()) {
                while (iter.hasNext()) {
                    ScreenStateInfo screenEvent = iter.next();
                    if (screenEvent.getScreenState() == ScreenState.SCREEN_ON) {
                        series.add(screenEvent.getBeginTimeStamp(), screenEvent.getBeginTimeStamp(),
                                screenEvent.getEndTimeStamp(), 0.5, 0, 1);
                        dataMap.put(screenEvent.getBeginTimeStamp(), screenEvent);
                    }
                }
            }

            // Assign ToolTip to renderer
            XYItemRenderer renderer = plot.getRenderer();
            renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {

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

                    ScreenStateInfo si = dataMap.get(dataset.getXValue(series, item));
                    if (si != null) {

                        StringBuffer displayInfo = new StringBuffer(
                                ResourceBundleHelper.getMessageString("screenstate.tooltip.prefix"));
                        int timeout = si.getScreenTimeout();
                        displayInfo.append(MessageFormat.format(
                                ResourceBundleHelper.getMessageString("screenstate.tooltip.content"),
                                ResourceBundleHelper.getEnumString(si.getScreenState()),
                                si.getScreenBrightness(), timeout > 0 ? timeout
                                        : ResourceBundleHelper.getMessageString("screenstate.noTimeout")));
                        displayInfo.append(ResourceBundleHelper.getMessageString("screenstate.tooltip.suffix"));
                        return displayInfo.toString();
                    }
                    return null;
                }
            });
        }
    }
    plot.setDataset(screenData);
    //      return plot;
}

From source file:org.yccheok.jstock.gui.charting.DynamicChart.java

public void showNewJDialog(java.awt.Frame parent, String title) {
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(this.price);

    JFreeChart freeChart = ChartFactory.createTimeSeriesChart(title, GUIBundle.getString("DynamicChart_Date"),
            GUIBundle.getString("DynamicChart_Price"), dataset, true, true, false);

    freeChart.setAntiAlias(true);/*from ww  w. j  av  a  2  s . co  m*/

    XYPlot plot = freeChart.getXYPlot();
    NumberAxis rangeAxis1 = (NumberAxis) plot.getRangeAxis();
    DecimalFormat format = new DecimalFormat("00.00");
    rangeAxis1.setNumberFormatOverride(format);

    XYItemRenderer renderer1 = plot.getRenderer();
    renderer1.setBaseToolTipGenerator(
            new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                    new SimpleDateFormat("h:mm:ss a"), new DecimalFormat("0.00#")));

    org.yccheok.jstock.charting.Utils.applyChartTheme(freeChart);

    ChartPanel _chartPanel = new ChartPanel(freeChart, true, true, true, true, true);
    JDialog dialog = new JDialog(parent, title, false);
    dialog.getContentPane().add(_chartPanel, java.awt.BorderLayout.CENTER);
    dialog.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    final java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    dialog.setBounds((screenSize.width - 750) >> 1, (screenSize.height - 600) >> 1, 750, 600);
    dialog.setVisible(true);
}

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

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    XYSeries series = new XYSeries(0);
    if (analysis == null) {
        logger.info("analysis data is null");
    } else {/*from   w  ww.j av a  2  s.  co m*/
        TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType();
        if (resultType.equals(TraceResultType.TRACE_FILE)) {
            logger.info("didn't get analysis trace data!");

        } else {
            TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult()
                    .getTraceresult();
            AnalysisFilter filter = analysis.getAnalyzerResult().getFilter();
            batteryInfos = traceresult.getBatteryInfos();

            if (batteryInfos.size() > 0 && filter.getTimeRange() != null) {
                BatteryInfo first = batteryInfos.get(0);
                series.add(filter.getTimeRange().getBeginTime(), first.getBatteryLevel());
            }
            for (BatteryInfo bi : batteryInfos) {
                series.add(bi.getBatteryTimeStamp(), bi.getBatteryLevel());
            }
            if (batteryInfos.size() > 0) {

                BatteryInfo last = batteryInfos.get(batteryInfos.size() - 1);
                if (filter.getTimeRange() != null) {
                    series.add(filter.getTimeRange().getEndTime(), last.getBatteryLevel());
                } else {
                    series.add(traceresult.getTraceDuration(), last.getBatteryLevel());

                }
            }

            XYItemRenderer renderer = plot.getRenderer();
            renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {

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

                    BatteryInfo bi = batteryInfos.get(Math.min(item, batteryInfos.size() - 1));
                    StringBuffer displayInfo = new StringBuffer(
                            ResourceBundleHelper.getMessageString("battery.tooltip.prefix"));
                    displayInfo.append(MessageFormat.format(
                            ResourceBundleHelper.getMessageString("battery.tooltip.content"),
                            bi.getBatteryLevel(), bi.getBatteryTemp(),
                            bi.isBatteryState()
                                    ? ResourceBundleHelper.getMessageString("battery.tooltip.connected")
                                    : ResourceBundleHelper.getMessageString("battery.tooltip.disconnected")));
                    displayInfo.append(ResourceBundleHelper.getMessageString("battery.tooltip.suffix"));

                    return displayInfo.toString();
                }

            });
        }

        plot.setDataset(new XYSeriesCollection(series));
    }
    //      return plot;

}

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

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    XYSeries series = new XYSeries(0);

    if (analysis == null) {
        logger.info("no trace data here");
    } else {/*  w  w w .j  av  a2  s  . com*/
        TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType();

        if (resultType.equals(TraceResultType.TRACE_FILE)) {
            logger.info("no trace folder data here");
        } else {

            TraceDirectoryResult traceResult = (TraceDirectoryResult) analysis.getAnalyzerResult()
                    .getTraceresult();
            radioInfos = traceResult.getRadioInfos();

            if (radioInfos.size() > 0 && analysis.getAnalyzerResult().getFilter().getTimeRange() != null) {
                RadioInfo first = radioInfos.get(0);
                series.add(analysis.getAnalyzerResult().getFilter().getTimeRange().getBeginTime(),
                        first.getSignalStrength() < 0 ? first.getSignalStrength() : MIN_SIGNAL);
            }
            for (RadioInfo ri : radioInfos) {
                series.add(ri.getTimeStamp(), ri.getSignalStrength() < 0 ? ri.getSignalStrength() : MIN_SIGNAL);
            }
            if (radioInfos.size() > 0) {
                RadioInfo last = radioInfos.get(radioInfos.size() - 1);
                if (analysis.getAnalyzerResult().getFilter().getTimeRange() != null) {
                    series.add(analysis.getAnalyzerResult().getFilter().getTimeRange().getEndTime(),
                            last.getSignalStrength() < 0 ? last.getSignalStrength() : MIN_SIGNAL);
                } else {
                    series.add(traceResult.getTraceDuration(),
                            last.getSignalStrength() < 0 ? last.getSignalStrength() : MIN_SIGNAL);
                }
            }

            // Assign ToolTip to renderer
            XYItemRenderer renderer = plot.getRenderer();
            renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {

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

                    RadioInfo ri = radioInfos.get(Math.min(item, radioInfos.size() - 1));
                    if (ri.getSignalStrength() < 0) {
                        if (ri.isLte()) {
                            return MessageFormat.format(
                                    ResourceBundleHelper.getMessageString("radio.tooltip.lte"), ri.getLteRsrp(),
                                    ri.getLteRsrq());
                        } else {
                            return MessageFormat.format(ResourceBundleHelper.getMessageString("radio.tooltip"),
                                    ri.getSignalStrength());
                        }
                    } else {
                        return ResourceBundleHelper.getMessageString("radio.noSignal");
                    }
                }

            });

        }
    }
    plot.setDataset(new XYSeriesCollection(series));
    //      return plot;
}

From source file:org.yccheok.jstock.gui.charting.DynamicChart.java

/** Creates new form DynamicChart */
public DynamicChart() {
    this.price = new TimeSeries("Price");
    // Sets the maximumItemAge attribute, which specifies the maximum age of data items in the series
    // (in terms of the RegularTimePeriod type used by this series). Whenever a new data value is
    // added, any data items that are older than the limit specified by maximumItemAge are automatically
    // discarded/* ww  w.jav a 2s.  com*/
    // Maximum 2 hours.
    this.price.setMaximumItemAge(2 * 60 * 60);

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(this.price);

    JFreeChart freeChart = ChartFactory.createTimeSeriesChart(null, null, null, dataset, false, true, false);

    freeChart.setAntiAlias(true);
    while (freeChart.getSubtitleCount() > 0) {
        freeChart.removeSubtitle(freeChart.getSubtitle(0));
    }

    // Due to limited spacing, we remove all information regarding x and y axis
    // as well.
    XYPlot plot = freeChart.getXYPlot();
    plot.getRangeAxis().setVisible(false);
    plot.getDomainAxis().setVisible(false);

    XYItemRenderer renderer1 = plot.getRenderer();
    renderer1.setBaseToolTipGenerator(
            new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                    new SimpleDateFormat("h:mm:ss a"), new DecimalFormat("0.00#")));

    org.yccheok.jstock.charting.Utils.applyChartTheme(freeChart);

    // Disable zoom.
    chartPanel = new ChartPanel(freeChart, true, true, true, false, true);
    chartPanel.setMouseZoomable(false);
}

From source file:net.sf.jdmf.visualization.clustering.ChartGenerator.java

public JFreeChart generateXYChart(List<Cluster> clusters, Integer firstAttributeIndex,
        String firstAttributeName, Integer secondAttributeIndex, String secondAttributeName) {
    XYSeriesCollection dataset = new XYSeriesCollection();

    for (Cluster cluster : clusters) {
        XYSeries series = new XYSeries(cluster.getName());

        for (Vector<Double> point : cluster.getPoints()) {
            series.add(point.get(firstAttributeIndex), point.get(secondAttributeIndex));
        }// ww w  .  j a v a 2 s  .  c om

        dataset.addSeries(series);
    }

    XYToolTipGenerator xyToolTipGenerator = new XYToolTipGenerator() {
        public String generateToolTip(XYDataset dataset, int series, int item) {
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.append(String.format("<html><p style='color:#0000ff;'>Series: '%s'</p>",
                    dataset.getSeriesKey(series)));
            Cluster cl = clusters.get(series);
            Vector<Double> point = cl.getPoints().get(item);
            for (int i = 0; i < point.size(); i++) {
                //stringBuilder.append(String.format("Attr:'%d'<br/>", d));
                try {
                    String attr = _attrName.get(i);
                    stringBuilder.append(attr + " " + point.get(i) + "<br/>");
                } catch (Exception e) {
                    // Do nothing 
                }
            }
            stringBuilder.append("</html>");
            return stringBuilder.toString();
        }
    };

    /***
    return ChartFactory.createScatterPlot( "Cluster Analysis", 
    firstAttributeName, secondAttributeName, dataset, 
    PlotOrientation.VERTICAL, true, true, false );
    ***/
    JFreeChart jfc = ChartFactory.createScatterPlot("Cluster Analysis", firstAttributeName, secondAttributeName,
            dataset, PlotOrientation.VERTICAL, true, true, false);

    XYItemRenderer render = jfc.getXYPlot().getRenderer();
    render.setBaseToolTipGenerator(xyToolTipGenerator);
    return jfc;
}

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

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    XYIntervalSeriesCollection wakelockData = new XYIntervalSeriesCollection();
    if (analysis == null) {
        logger.info("analysis data is null");
    } else {/*  ww w.  j a v a  2s.c  o m*/
        TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType();
        if (resultType.equals(TraceResultType.TRACE_FILE)) {
            logger.info("didn't get analysis trace data!");

        } else {
            TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult()
                    .getTraceresult();

            XYIntervalSeries series = new XYIntervalSeries(WakelockState.WAKELOCK_ACQUIRED);
            wakelockData.addSeries(series);

            // Populate the data set
            Iterator<WakelockInfo> iter = traceresult.getWakelockInfos().iterator();
            if (iter.hasNext()) {
                WakelockInfo lastEvent = iter.next();
                logger.debug("Wakelock Plotting");
                // Check whether WAKELOCK was acquired before logging begins.
                if (lastEvent.getWakelockState() == WakelockState.WAKELOCK_RELEASED) {
                    series.add(0, 0, lastEvent.getBeginTimeStamp(), 0.5, 0, 1);
                    dataMap.put(lastEvent.getBeginTimeStamp(), lastEvent);
                }
                while (iter.hasNext()) {
                    WakelockInfo currEvent = iter.next();
                    if (lastEvent.getWakelockState() == WakelockState.WAKELOCK_ACQUIRED) {
                        logger.debug("Wakelock acquired curr " + currEvent.getBeginTimeStamp());
                        logger.debug("Wakelock acquired last " + lastEvent.getBeginTimeStamp());
                        series.add(lastEvent.getBeginTimeStamp(), lastEvent.getBeginTimeStamp(),
                                currEvent.getBeginTimeStamp(), 0.5, 0, 1);
                        dataMap.put(lastEvent.getBeginTimeStamp(), lastEvent);
                    }
                    lastEvent = currEvent;
                }
                if (lastEvent.getWakelockState() == WakelockState.WAKELOCK_ACQUIRED) {
                    series.add(lastEvent.getBeginTimeStamp(), lastEvent.getBeginTimeStamp(),
                            traceresult.getTraceDuration(), 0.5, 0, 1);
                    dataMap.put(lastEvent.getBeginTimeStamp(), lastEvent);
                }
            }

            // Assign ToolTip to renderer
            XYItemRenderer renderer = plot.getRenderer();
            renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {

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

                    WakelockInfo wi = dataMap.get(dataset.getXValue(series, item));
                    if (wi != null) {

                        StringBuffer displayInfo = new StringBuffer(
                                ResourceBundleHelper.getMessageString("wakelock.tooltip.prefix"));
                        displayInfo.append(MessageFormat.format(
                                ResourceBundleHelper.getMessageString("wakelock.tooltip.content"),
                                ResourceBundleHelper.getEnumString(wi.getWakelockState()),
                                wi.getBeginTimeStamp()));
                        displayInfo.append(ResourceBundleHelper.getMessageString("wakelock.tooltip.suffix"));
                        return displayInfo.toString();
                    }
                    return null;
                }
            });

        }
    }

    plot.setDataset(wakelockData);
    //      return plot;
}

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.  j av a 2  s  .co  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]);
                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:net.sourceforge.processdash.ev.ui.chart.AbstractEVXYChart.java

protected XYItemRenderer createXYLineAndShapeRenderer(boolean lines, boolean shapes) {
    XYItemRenderer renderer = new XYLineAndShapeRenderer(lines, shapes);
    renderer.setLegendItemLabelGenerator(new SeriesNameGenerator());
    renderer.setBaseToolTipGenerator(getTooltipGenerator());
    return renderer;
}

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

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    XYSeries series = new XYSeries(0);
    if (analysis == null) {
        logger.info("didn't get analysis trace data!");
    } else {/*from   w w  w  . j av  a2  s  .co m*/
        TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType();
        if (resultType.equals(TraceResultType.TRACE_FILE)) {
            logger.info("didn't get analysis trace folder!");

        } else {
            TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult()
                    .getTraceresult();

            cpuAList = traceresult.getCpuActivityList();
            boolean filterByTime = cpuAList.isFilterByTime();
            double beginTime = 0;
            double endTime = 0;
            if (filterByTime) {
                beginTime = cpuAList.getBeginTraceTime();
                endTime = cpuAList.getEndTraceTime();
            }

            cpuData = cpuAList.getCpuActivities();
            logger.debug("Size of CPU data: " + cpuData.size());

            if (cpuData.size() > 0) {
                for (CpuActivity cpu : cpuData) {
                    if (filterByTime) {
                        //                     logger.debug("timestamp: {0}" + cpu.getTimeStamp());
                        if (cpu.getTimeStamp() >= beginTime && cpu.getTimeStamp() <= endTime) {
                            //                        logger.debug("CPU usage: {0}"+ cpu.getCpuUsageTotalFiltered());
                            series.add(cpu.getTimeStamp(), cpu.getCpuUsageTotalFiltered());
                        }

                    } else {
                        //                     logger.debug("CPU usage: {0}"+ cpu.getCpuUsageTotalFiltered());
                        series.add(cpu.getTimeStamp(), cpu.getCpuUsageTotalFiltered());
                    }
                }
            }

            // Assign ToolTip to renderer
            XYItemRenderer renderer = plot.getRenderer();

            renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
                @Override
                public String generateToolTip(XYDataset dataset, int series, int item) {
                    return constructCpuToolTipText(cpuAList, cpuData, item);
                }
            });

        }
    }
    plot.setDataset(new XYSeriesCollection(series));
    //      return plot;
}