List of usage examples for org.jfree.chart.renderer.xy XYItemRenderer setBaseToolTipGenerator
public void setBaseToolTipGenerator(XYToolTipGenerator generator);
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; }