List of usage examples for org.jfree.chart.labels XYToolTipGenerator XYToolTipGenerator
XYToolTipGenerator
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; }