Class DialWidgetDefinition

  • All Implemented Interfaces:
    ObjectInputValidation, Serializable, Cloneable,,,, org.jfree.util.PublicCloneable, ChartDefinition

    public class DialWidgetDefinition
    extends WidgetDefinition
    implements ChartDefinition
    This class represents the definition of a dashboard dial. It holds:
    • The value to be displayed on the dial
    • Minimum value of the dial
    • Maximum value of the dial
    • A list of intervals with the dial. Each interval specifies a minimum, maximum and information about how the interval should be painted.
    • Painting information
      • Background paint
      • Dial paint
      • Needle paint

    This class does not generate an image of the dial, it just defines the properties of the dial.

    Dial definitions are stored in xml documents in the solution folders with *.dial.xml extensions. These definition files store XML representations of all the settings here. Typically the value to be displayed is provided at runtime by a query or business rule, but the value can also read from the definition file.

    The definitions are read by org.pentaho.core.ui.component.DashboardWidgetComponent objects, which create instances of this object and set the properties defined here.

    The DashboardWidgetComponent objects pass this, now populated, object to The dial image is generated by org.pentaho.core.ui.component.JFreeChartEngine

    Example Dial

    See Also:
    Serialized Form
    • Constructor Detail

      • DialWidgetDefinition

        public DialWidgetDefinition​(double value,
                                    double minimum,
                                    double maximum,
                                    boolean rangeLimited)
      • DialWidgetDefinition

        public DialWidgetDefinition​(org.pentaho.commons.connection.IPentahoResultSet data,
                                    boolean byRow,
                                    org.dom4j.Node chartAttributes,
                                    int width,
                                    int height,
                                    org.pentaho.platform.api.engine.IPentahoSession session)
        TODO PROBLEM HERE! If you use this constructor, the XML schema for the chart attributes is different than if you use the constructor with the arguments public DialWidgetDefinition( Document document, double value, int width, int height, IPentahoSession session). This constructor expects the chart attribute nodes to be children of the node, whereas the latter constructor expects the attributes to be children of a node. This does not help us with our parity situation, and should be deprecated and reconciled.
        data -
        byRow -
        chartAttributes -
        width -
        height -
        session -
      • DialWidgetDefinition

        public DialWidgetDefinition​(org.dom4j.Document document,
                                    double value,
                                    int width,
                                    int height,
                                    org.pentaho.platform.api.engine.IPentahoSession session)
        TODO: PROBLEM HERE! See the note on the constructor above.
        document -
        value -
        width -
        height -
        session -
    • Method Detail

      • getLogger

        public static org.apache.commons.logging.Log getLogger()
      • createDial

        public static void createDial​(DialWidgetDefinition widgetDefinition,
                                      org.dom4j.Node dialNode,
                                      int width,
                                      int height,
                                      org.pentaho.platform.api.engine.IPentahoSession session)
        Create a dial definition object from an XML document
        doc - definition XML document
      • setUnits

        public void setUnits​(String units)
      • getUnits

        public String getUnits()
      • deriveMinMax

        public void deriveMinMax​(double value)
      • addInterval

        public void addInterval​(org.jfree.chart.plot.MeterInterval interval)
        Add an interval (MeterInterval) to the dial definition. The interval defines a range and how it should be painted.

        The dial images here have three intervals. The lowest interval has a minimum of 0 and a maximum of 30.

        Intervals have a color. In this image the lowest interval color is set to red.

        Intervals have a text color. In this image the lowest interval text color is set to red. This affects the outer rim, the interval value text

        interval - A MeterInterval that defines an interval (range) on the dial
      • setValue

        public void setValue​(double value)
        Sets the value to be displayed on the dial image
        value - The value to be displayed
      • getPlotBackgroundPaint

        public Paint getPlotBackgroundPaint()
        Return the java.awt.Paint object to be used to paint the backound of the dial.
        Specified by:
        getPlotBackgroundPaint in interface ChartDefinition
        The Paint to be used
      • setPlotBackgroundPaint

        public void setPlotBackgroundPaint​(Paint plotBackgroundPaint)
        Return the java.awt.Paint object to be used to paint the backound of the dial.

        In this image the background paint has been set to red

      • getNeedlePaint

        public Paint getNeedlePaint()
        Return the java.awt.Paint used to paint the needle of the dial image
        The Paint to use for the needle of this dial
      • setNeedlePaint

        public void setNeedlePaint​(Paint needlePaint)
        Sets the java.awt.Paint object to be used to paint the needle of the dial image.

        In this image the needle paint has been set to red.

        needlePaint - The Paint to use for ths needle of this dial
      • getDialShape

        public org.jfree.chart.plot.DialShape getDialShape()
        Return the shape to be used for the dial.
        DialShape The DialShape for this dial
      • getTitleFont

        public Font getTitleFont()
        Return the java.awt.Font to be used to display the dial title
        Specified by:
        getTitleFont in interface ChartDefinition
        Font The Font for the title of this dial
      • setTitleFont

        public void setTitleFont​(Font tFont)
      • setDialShape

        public void setDialShape​(org.jfree.chart.plot.DialShape dialShape)
        Sets the shape to be used for the dial. This affects the area of dial outside the range that the needle covers.
        dialShape - The shape for this dial
      • getIntervals

        public List getIntervals()
        Return a list of the intervals for the dial. Each object in the list is a MeterInterval object.
        List The list of MeterInterval objects for this dial
      • addSubTitles

        public void addSubTitles​(List subTitleNodes)
      • addSubTitle

        public void addSubTitle​(String subTitle)
      • setChartBackgroundPaint

        public void setChartBackgroundPaint​(Paint chartBackgroundPaint)
        chartBackgroundPaint - The chartBackgroundPaint to set.
      • getValuePaint

        public Paint getValuePaint()
      • getTickPaint

        public Paint getTickPaint()
      • getTickSize

        public int getTickSize()
      • setValuePaint

        public void setValuePaint​(Paint valuePaint)
      • setTickPaint

        public void setTickPaint​(Paint tickPaint)
      • setTickSize

        public void setTickSize​(int tickSize)
      • setValueFont

        public void setValueFont​(Font valueFont)
      • getLegendFont

        public Font getLegendFont()
        Return the java.awt.Font to be used to display the legend items
        Specified by:
        getLegendFont in interface ChartDefinition
        Font The font for the legend items
      • setLegendFont

        public void setLegendFont​(Font legendFont)
        Set java.awt.Font to be used to display the legend items
        Font - The java.awt.Font for the legend items
      • setLegendFont

        public void setLegendFont​(org.dom4j.Node legendFontNode)
      • setLegendBorderVisible

        public void setLegendBorderVisible​(org.dom4j.Node legendBorderVisibleNode)
      • setLegendBorderVisible

        public void setLegendBorderVisible​(boolean legendBorderVisible)
        boolean - legendBorderVisible Set the visibility of the legend border.
      • isLegendBorderVisible

        public boolean isLegendBorderVisible()
        Return the boolen that states if the legend border is visible
        Specified by:
        isLegendBorderVisible in interface ChartDefinition
        boolean Is the legend border visible
      • setBackgroundAlpha

        public void setBackgroundAlpha​(org.dom4j.Node backgroundAlphaNode)
      • setForegroundAlpha

        public void setForegroundAlpha​(org.dom4j.Node foregroundAlphaNode)