Example usage for org.jfree.chart.plot.dial DialValueIndicator setFont

List of usage examples for org.jfree.chart.plot.dial DialValueIndicator setFont

Introduction

In this page you can find the example usage for org.jfree.chart.plot.dial DialValueIndicator setFont.

Prototype

public void setFont(Font font) 

Source Link

Document

Sets the font and sends a DialLayerChangeEvent to all registered listeners.

Usage

From source file:org.pentaho.chart.plugin.jfreechart.chart.dial.JFreeDialChartGenerator.java

public void setDialValueIndicator(ChartDocument chartDocument, DialPlot dialPlot) {

    // ~ params begin
    Font valueIndicatorFont = new Font("Dialog", Font.BOLD, 14); //$NON-NLS-1$
    Color valueIndicatorPaint = Color.black;
    Color valueIndicatorBackgroundPaint = Color.white;
    Stroke valueIndicatorOutlineStroke = new BasicStroke(1.0f);
    Color valueIndicatorOutlinePaint = Color.blue;
    // ~ params end

    ChartElement valIndicatorElement = getUniqueElement(chartDocument, DIALVALUEINDICATOR);
    Color valIndicatorColorTmp = ColorFactory.getInstance().getColor(valIndicatorElement);
    if (valIndicatorColorTmp != null) {
        valueIndicatorPaint = valIndicatorColorTmp;
    }/*ww  w.  j av  a  2s .  c  om*/

    Color valIndicatorBgColorTmp = ColorFactory.getInstance().getColor(valIndicatorElement,
            BorderStyleKeys.BACKGROUND_COLOR);
    if (valIndicatorBgColorTmp != null) {
        valueIndicatorBackgroundPaint = valIndicatorBgColorTmp;
    }

    final BasicStroke borderStyleStroke = StrokeFactory.getInstance().getBorderStroke(valIndicatorElement);
    if (borderStyleStroke != null) {
        valueIndicatorOutlineStroke = borderStyleStroke;
    }

    Color valIndicatorBorderColorTmp = ColorFactory.getInstance().getColor(valIndicatorElement,
            BorderStyleKeys.BORDER_TOP_COLOR);
    if (valIndicatorBorderColorTmp != null) {
        valueIndicatorOutlinePaint = valIndicatorBorderColorTmp;
    }

    Font valIndicatorFontTmp = JFreeChartUtils.getFont(valIndicatorElement);
    if (valIndicatorFontTmp != null) {
        valueIndicatorFont = valIndicatorFontTmp;
    }

    DialValueIndicator dialValueIndicator = new DialValueIndicator(0);

    // begin code to determine the size of the value indicator box 
    ChartElement scaleElement = getUniqueElement(chartDocument, SCALE);
    if (scaleElement != null) {

        double scaleUpperBound = Double.parseDouble(scaleElement.getAttribute(UPPERBOUND).toString());
        double scaleLowerBound = Double.parseDouble(scaleElement.getAttribute(LOWERBOUND).toString());

        if (Math.abs(scaleUpperBound) > Math.abs(scaleLowerBound)) {
            dialValueIndicator.setTemplateValue(scaleUpperBound);
        } else {
            dialValueIndicator.setTemplateValue(scaleLowerBound);
        }
    }
    // end code to determine the size of the value indicator box

    dialValueIndicator.setFont(valueIndicatorFont);
    dialValueIndicator.setPaint(valueIndicatorPaint);
    dialValueIndicator.setBackgroundPaint(valueIndicatorBackgroundPaint);
    dialValueIndicator.setOutlineStroke(valueIndicatorOutlineStroke);
    dialValueIndicator.setOutlinePaint(valueIndicatorOutlinePaint);
    dialPlot.addLayer(dialValueIndicator);
}