List of usage examples for org.jfree.chart.plot.dial StandardDialRange setPaint
public void setPaint(Paint paint)
From source file:it.eng.spagobi.engines.chart.bo.charttypes.dialcharts.SpeedometerMultiValue.java
/** * Creates a chart of type speedometer.//w w w . j a va2 s . c om * * @param chartTitle the chart title. * @param dataset the dataset. * * @return A chart speedometer. */ public JFreeChart createChart(DatasetMap datasets) { logger.debug("IN"); JFreeChart chart = null; try { MyDialPlot plot = new MyDialPlot(); HashMap hmDataset = datasets.getDatasets(); Set keyDataset = hmDataset.keySet(); int i = 0; Iterator itDataset = keyDataset.iterator(); while (itDataset.hasNext()) { String key = (String) itDataset.next(); Dataset dataset = (Dataset) hmDataset.get(key); plot.setDataset(i, (ValueDataset) dataset); if (key.indexOf("__") > 0) setName(key.substring(0, key.indexOf("__"))); else setName(key); i++; } plot.setDialFrame(new StandardDialFrame()); plot.setBackground(new DialBackground()); if (dialtextuse) { DialTextAnnotation annotation1 = new DialTextAnnotation(dialtext); annotation1.setFont(styleTitle.getFont()); annotation1.setRadius(0.7); plot.addLayer(annotation1); } StandardDialScale scale = new StandardDialScale(lower, upper, -120, -300, 10.0, 4); if (!(increment > 0)) { logger.warn("increment cannot be less than 0, put default to 0.1 "); increment = 0.1; } scale.setMajorTickIncrement(increment); scale.setMinorTickCount(minorTickCount); scale.setTickRadius(0.88); scale.setTickLabelOffset(0.15); //set tick label style scale.setTickLabelsVisible(true); Font tickLabelsFont = new Font(labelsTickStyle.getFontName(), Font.PLAIN, labelsTickStyle.getSize()); scale.setTickLabelFont(tickLabelsFont); scale.setTickLabelPaint(labelsTickStyle.getColor()); plot.addScale(0, scale); DialCap cap = new DialCap(); plot.setCap(cap); // sets intervals for (Iterator iterator = intervals.iterator(); iterator.hasNext();) { KpiInterval interval = (KpiInterval) iterator.next(); StandardDialRange range = new StandardDialRange(interval.getMin(), interval.getMax(), interval.getColor()); range.setInnerRadius(0.50); range.setOuterRadius(0.85); range.setPaint(interval.getColor()); plot.addLayer(range); } plot.setBackground(new DialBackground()); logger.debug("Set values color"); Vector arValuesName = getValuesNames(); legendItems = new LegendItemCollection(); for (int j = 0; j < arValuesName.size(); j++) { DialPointer.Pin p = new DialPointer.Pin(j); if (colorMap != null) { String valueName = (String) arValuesName.get(j); Color color = (Color) colorMap.get(valueName); if (color != null) p.setPaint(color); if (serieLegend.equalsIgnoreCase(name)) { if (j < arValuesName.size()) { LegendItem item = new LegendItem(valueName, "", "", "", new Ellipse2D.Double(-3, -5, 8, 8), color); if (item != null) { legendItems.add(item); } } if (legend) super.height = super.height + (super.height * 12 / 100); } } plot.addLayer(p); } plot.setLegendItems(legendItems); chart = new JFreeChart(name, JFreeChart.DEFAULT_TITLE_FONT, plot, false); TextTitle title = setStyleTitle(name, styleTitle); chart.setTitle(title); if (subName != null && !subName.equals("")) { TextTitle subTitle = setStyleTitle(subName, styleSubTitle); chart.addSubtitle(subTitle); } chart.setBackgroundPaint(color); if (legend == true) drawLegend(chart); } catch (Exception ex) { logger.debug("Error while creating speedometer multivalue: " + ex); } logger.debug("OUT"); return chart; }