Example usage for org.jfree.chart.labels XYToolTipGenerator XYToolTipGenerator

List of usage examples for org.jfree.chart.labels XYToolTipGenerator XYToolTipGenerator

Introduction

In this page you can find the example usage for org.jfree.chart.labels XYToolTipGenerator XYToolTipGenerator.

Prototype

XYToolTipGenerator

Source Link

Usage

From source file:ch.zhaw.ias.dito.ui.util.BlockPlotPanel.java

public BlockPlotPanel(Matrix m, double lowerBound, double upperBound) {
    super(new BorderLayout());
    NumberAxis xAxis = new NumberAxis();
    xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    xAxis.setLowerMargin(1.0);//w  ww . j a  v  a  2s .c om
    xAxis.setUpperMargin(0.0);
    NumberAxis yAxis = new NumberAxis();
    yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    yAxis.setLowerMargin(1.0);
    yAxis.setUpperMargin(0.0);
    XYBlockRenderer renderer = new XYBlockRenderer();
    renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
        @Override
        public String generateToolTip(XYDataset dataset, int series, int item) {
            XYZDataset xyzDataset = (XYZDataset) dataset;
            double x = xyzDataset.getXValue(series, item);
            double y = xyzDataset.getYValue(series, item);
            double z = xyzDataset.getZValue(series, item);
            return ("X=" + x + ", Y=" + y + ", Z=" + z);
        }
    });
    PaintScale scale = new ColorPaintScale(lowerBound, upperBound);
    renderer.setPaintScale(scale);
    ValueAxis axis = new NumberAxis();
    axis.setLowerBound(scale.getLowerBound());
    axis.setUpperBound(scale.getUpperBound());
    PaintScaleLegend legend = new PaintScaleLegend(scale, axis);
    legend.setMargin(new RectangleInsets(10, 10, 10, 10));
    legend.setPosition(RectangleEdge.RIGHT);

    MatrixXYDataset dataset = new MatrixXYDataset(m);
    plot = new XYPlot(dataset, xAxis, yAxis, renderer);
    chart = new JFreeChart(plot);
    chart.removeLegend();
    chart.addSubtitle(legend);
    chart.setBackgroundPaint(Color.white);

    ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setDisplayToolTips(true);
    this.add(chartPanel, BorderLayout.CENTER);
}

From source file:org.openfaces.component.chart.impl.configuration.TooltipsConfigurator.java

private void setupTooltips(final GridChartView chartView, XYItemRenderer renderer) {
    if (chartView.getTooltip() != null) {
        renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
            public String generateToolTip(XYDataset xyDataset, int i, int i1) {
                return chartView.getTooltip();
            }//from  w  w  w.java 2 s.  c om
        });
    } else if (chartView.getDynamicTooltip() != null) {
        renderer.setBaseToolTipGenerator(new DynamicXYGenerator(chartView, chartView.getDynamicTooltip()));
    }
}

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

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    XYIntervalSeriesCollection cameraData = new XYIntervalSeriesCollection();

    if (analysis != null) {

        XYIntervalSeries series = new XYIntervalSeries(CameraState.CAMERA_ON);
        cameraData.addSeries(series);/*  ww w  . j ava  2 s  .com*/

        // Populate the data set
        Iterator<CameraInfo> iter = analysis.getAnalyzerResult().getTraceresult().getCameraInfos().iterator();
        if (iter.hasNext()) {
            while (iter.hasNext()) {
                CameraInfo cameraEvent = iter.next();
                if (cameraEvent.getCameraState() == CameraState.CAMERA_ON) {
                    series.add(cameraEvent.getBeginTimeStamp(), cameraEvent.getBeginTimeStamp(),
                            cameraEvent.getEndTimeStamp(), 0.5, 0, 1);
                }
            }
        }

        // Assign ToolTip to renderer
        XYItemRenderer renderer = plot.getRenderer();
        renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
            @Override
            public String generateToolTip(XYDataset dataset, int series, int item) {
                return MessageFormat.format(ResourceBundleHelper.getMessageString("camera.tooltip"),
                        dataset.getX(series, item),
                        ResourceBundleHelper.getEnumString((Enum<?>) dataset.getSeriesKey(series)));
            }
        });

    }

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

From source file:dbseer.gui.chart.DBSeerXYLineAndShapeRenderer.java

public DBSeerXYLineAndShapeRenderer(double[] timestamp, DBSeerDataSet dataset) {
    final java.util.List<DBSeerTransactionSampleList> theSampleLists = dataset.getTransactionSampleLists();
    final double[] timestamps = timestamp;
    this.setBaseToolTipGenerator(new XYToolTipGenerator() {
        @Override//from   ww  w.  j a v a2s  . c o m
        public String generateToolTip(XYDataset xyDataset, int series, int category) {
            int maxLength = 80;
            //            java.util.List<String> statementOffsetFileList = theDataset.getStatementOffsetFileList();
            //            if (series >= statementOffsetFileList.size())
            //            {
            //               return null;
            //            }
            //            String statementOffsetFile = statementOffsetFileList.get(series);
            //            int time = (int)timestamps[category];
            //            TransactionReader reader = new TransactionReader(theDataset.getQueryFilePath(), theDataset.getStatementFilePath(),
            //                  statementOffsetFile, time);
            //            if (!reader.initialize())
            //            {
            //               return null;
            //            }
            //            else
            //            {
            //               return reader.getNextTransaction();
            //            }

            //            if (series >= theSampleLists.size())
            //            {
            //               return null;
            //            }
            //            DBSeerTransactionSampleList list = theSampleLists.get(series);
            //            int time = (int)timestamps[category];
            //            ArrayList<DBSeerTransactionSample> samples = list.getSamples();
            //            for (DBSeerTransactionSample sample : samples)
            //            {
            //               if (sample.getTimestamp() == time)
            //               {
            //                  String statement = sample.getStatement();
            //                  if (statement.length() > maxLength)
            //                  {
            //                     return String.format("%.80s...", statement);
            //                  }
            //                  else
            //                  {
            //                     return statement;
            //                  }
            //               }
            //            }
            return null;
        }
    });
}

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

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    if (analysis != null) {
        userInputData.removeAllSeries();
        // create the dataset...
        Map<UserEvent.UserEventType, XYIntervalSeries> seriesMap = new EnumMap<UserEvent.UserEventType, XYIntervalSeries>(
                UserEvent.UserEventType.class);
        for (UserEvent.UserEventType eventType : UserEvent.UserEventType.values()) {
            XYIntervalSeries series = new XYIntervalSeries(eventType);
            seriesMap.put(eventType, series);
            userInputData.addSeries(series);
        }//from ww w  .  ja v  a 2 s  .c o m
        // Populate the data set
        //need to add something here
        for (UserEvent event : analysis.getAnalyzerResult().getTraceresult().getUserEvents()) {
            seriesMap.get(event.getEventType()).add(event.getPressTime(), event.getPressTime(),
                    event.getReleaseTime(), 0.5, 0, 1);
        }

        // Assign ToolTip to renderer
        XYItemRenderer renderer = plot.getRenderer();
        renderer.setSeriesPaint(userInputData.indexOf(UserEventType.SCREEN_LANDSCAPE), Color.BLUE);
        renderer.setSeriesPaint(userInputData.indexOf(UserEventType.SCREEN_PORTRAIT), Color.BLUE);
        renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {

            @Override
            public String generateToolTip(XYDataset dataset, int series, int item) {
                UserEvent.UserEventType eventType = (UserEvent.UserEventType) userInputData.getSeries(series)
                        .getKey();
                return ResourceBundleHelper.getEnumString(eventType);
            }
        });

    }

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

From source file:org.trade.ui.chart.renderer.VolumeBarRenderer.java

private void configureToolTips() {
    setBaseToolTipGenerator(new XYToolTipGenerator() {
        public String generateToolTip(XYDataset dataset, int series, int item) {
            StringBuilder result = new StringBuilder("<html>");
            if (dataset instanceof VolumeDataset) {
                VolumeDataset d = (VolumeDataset) dataset;
                Number time = d.getX(series, item);
                Number volume = d.getVolume(series, item);
                result.append("<b>Volume:</b> ").append(new Quantity(volume.intValue())).append("<br/>");
                result.append("<b>Date:</b> ").append(TOOLTIP_DATE_FORMAT.format(time)).append("<br/>");
            }/*from   www  .  j ava  2  s .c o m*/
            return result.toString();
        }
    });
}

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));
        }/*  w w  w. j a  va  2  s . c o  m*/

        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.TemperaturePlot.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 w w  . j  a  v  a 2 s .com*/
        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();
            temperatureInfos = traceresult.getTemperatureInfos();

            if (temperatureInfos.size() > 0) {
                for (TemperatureEvent bi : temperatureInfos) {
                    series.add(bi.getTimeRecorded(), bi.getcelciusTemperature());
                }

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

            XYItemRenderer renderer = plot.getRenderer();
            renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
                @Override
                public String generateToolTip(XYDataset dataset, int series, int item) {
                    return toolTipContent(item);
                }
            });
        }
        plot.setDataset(new XYSeriesCollection(series));
    }
}

From source file:org.trade.ui.chart.renderer.HeikinAshiRenderer.java

private void configureToolTips() {
    setBaseToolTipGenerator(new XYToolTipGenerator() {
        public String generateToolTip(XYDataset dataset, int series, int item) {
            StringBuilder result = new StringBuilder("<html>");
            if (dataset instanceof HeikinAshiDataset) {
                HeikinAshiDataset d = (HeikinAshiDataset) dataset;
                Number time = d.getX(series, item);
                Number high = d.getHigh(series, item);
                Number low = d.getLow(series, item);
                Number open = d.getOpen(series, item);
                Number close = d.getClose(series, item);

                result.append("<b>Open:</b> ").append(new Money(open.doubleValue())).append("<br/>");
                result.append("<b>High:</b> ").append(new Money(high.doubleValue())).append("<br/>");
                result.append("<b>Low:</b> ").append(new Money(low.doubleValue())).append("<br/>");
                result.append("<b>Close:</b> ").append(new Money(close.doubleValue())).append("<br/>");
                result.append("<b>Date:</b> ").append(TOOLTIP_DATE_FORMAT.format(time)).append("<br/>");
            } else {

            }/*from   w  w w.j a va 2  s  .  c  o m*/
            return result.toString();
        }

    });
}

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 {/* w  w  w . j  a  va  2s .c om*/
        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;

}