List of usage examples for org.jfree.chart.plot MeterPlot MeterPlot
public MeterPlot(ValueDataset dataset)
From source file:ucar.unidata.idv.flythrough.Flythrough.java
/** * _more_//from ww w . java2 s. c o m * * @param pt1 _more_ * * @throws Exception _more_ */ protected void processReadout(FlythroughPoint pt1) throws Exception { Font font = new Font("Dialog", Font.BOLD, 22); dials = new ArrayList<JComponent>(); if ((readoutLabel == null) || (pt1 == null)) { return; } List<ReadoutInfo> samples = new ArrayList<ReadoutInfo>(); readoutLabel.setText(readout.getReadout(pt1.getEarthLocation(), showReadout, true, samples)); if (!showReadout) { return; } List comps = new ArrayList(); for (FlythroughDecorator decorator : decorators) { decorator.handleReadout(pt1, samples); } for (ReadoutInfo info : samples) { Real r = info.getReal(); if (r == null) { continue; } Unit unit = info.getUnit(); if (unit == null) { unit = r.getUnit(); } String name = ucar.visad.Util.cleanTypeName(r.getType()); String unitSuffix = ""; if (unit != null) { unitSuffix = " [" + unit + "]"; } double v = r.getValue(unit); if (v == v) { v = Misc.parseNumber(Misc.format(v)); } JLabel label = new JLabel(name.replace("_", " ")); label.setFont(font); DefaultValueDataset dataset = new DefaultValueDataset(new Double(v)); MeterPlot plot = new MeterPlot(dataset); if (info.getRange() != null) { Range range = info.getRange(); plot.setRange(new org.jfree.data.Range(range.getMin(), range.getMax())); } if (unit != null) { plot.setUnits(unit.toString()); } else { plot.setUnits(""); } plot.setDialBackgroundPaint(Color.white); plot.setTickLabelsVisible(true); plot.setValueFont(font); plot.setTickLabelFont(font); plot.setTickLabelPaint(Color.darkGray); plot.setTickPaint(Color.black); plot.setValuePaint(Color.black); JFreeChart chart = new JFreeChart("", plot); TextTitle title = new TextTitle(" " + label.getText() + " ", font); title.setBackgroundPaint(Color.gray); title.setPaint(Color.white); chart.setTitle(title); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(dialDimension); chartPanel.setSize(new Dimension(150, 150)); plot.setBackgroundPaint(new Color(255, 255, 255, 0)); plot.setBackgroundImageAlpha(0.0f); chart.setBackgroundPaint(new Color(255, 255, 255, 0)); chartPanel.setBackground(new Color(255, 255, 255, 0)); comps.add(chartPanel); dials.add(chartPanel); } readoutDisplay.removeAll(); updateDashboard(); }