Class ChartAction

  • All Implemented Interfaces:
    org.pentaho.platform.api.action.IAction, org.pentaho.platform.api.action.IStreamingAction

    public class ChartAction
    extends Object
    implements org.pentaho.platform.api.action.IStreamingAction
    This class was adapted from ChartComponent by cboyden

    This is a bean that permits easy access to the ChartBeans functionality and was specifically designed to be run from within the Pentaho Platform as an Action Sequence Action.

    Author:
    cboyden, aphillips
    • Field Detail

      • convertNullsToZero

        protected boolean convertNullsToZero
      • seriesColumnName

        protected String seriesColumnName
      • seriesColumn

        protected int seriesColumn
      • categoryColumnName

        protected String categoryColumnName
      • categoryColumn

        protected int categoryColumn
      • valueColumnName

        protected String valueColumnName
      • valueColumn

        protected int valueColumn
      • chartData

        protected org.pentaho.commons.connection.IPentahoResultSet chartData
      • chartEngine

        protected String chartEngine
      • bootException

        protected Exception bootException
      • outputType

        protected String outputType
      • chartWidth

        protected int chartWidth
      • chartHeight

        protected int chartHeight
      • contentLinkingTemplate

        protected String contentLinkingTemplate
      • scalingFactor

        protected Number scalingFactor
      • chartContentStream

        protected OutputStream chartContentStream
      • chartModelJson

        protected String chartModelJson
      • chartModelXml

        protected String chartModelXml
      • chartModel

        protected org.pentaho.chart.model.ChartModel chartModel
      • title

        protected String title
    • Constructor Detail

      • ChartAction

        public ChartAction()
    • Method Detail

      • execute

        public void execute()
                     throws Exception
        Called to process the chart definition and data set to produce a usable chart.
        Specified by:
        execute in interface org.pentaho.platform.api.action.IAction
        Throws:
        ChartBootException
        ChartProcessingException
        ResourceException
        InvalidChartDefinition
        IOException
        PersistenceException
        Exception
        See Also:
        IAction.execute()
      • setContentLinkingTemplate

        public void setContentLinkingTemplate​(String template)
      • processChartData

        protected Object[][] processChartData​(org.pentaho.commons.connection.IPentahoResultSet resultSet,
                                              int valueColumnIndex)
        Transform the IPentahoResultSet into the data format suitable for chart creation.
        Returns:
        Row / Column data table or null
      • setOutputStream

        public void setOutputStream​(OutputStream outputStream)
        Specified by:
        setOutputStream in interface org.pentaho.platform.api.action.IStreamingAction
      • setChartContentStream

        public void setChartContentStream​(OutputStream outStream)
        Define the OutputStream to which the resulting chart shall be written
        Parameters:
        outStream - Stream to receive the chart
      • setChartData

        public void setChartData​(org.pentaho.commons.connection.IPentahoResultSet chartDataSet)
        Define the data set that will populate the chart
        Parameters:
        chartDataSet - data set for charting
      • validate

        public void validate()
                      throws Exception
        Validate the current settings of the ChartAction. If validate() returns true, then execute may be called. If validate() returns false, a call to execute() is guaranteed to fail.
        Throws:
        Exception
      • setSeriesColumn

        public void setSeriesColumn​(String seriesCol)
        Define the column in the data set that contains the Series/Domain data
        Parameters:
        seriesCol - name of column that contains the Series/Domain for the chart
      • setConvertNullsToZero

        public void setConvertNullsToZero​(boolean convert)
      • getConvertNullsToZero

        public boolean getConvertNullsToZero()
      • setCategoryColumn

        public void setCategoryColumn​(String categoryCol)
        Define the column in the data set that contains the Category data
        Parameters:
        seriesCol - name of column that contains the Category for the chart
      • setValueColumn

        public void setValueColumn​(String valueCol)
        Define the column in the data set that contains the Value/Range data
        Parameters:
        seriesCol - name of column that contains the Value/Range for the chart
      • getOutputType

        protected org.pentaho.chart.plugin.api.IOutput.OutputTypes getOutputType()
        Fetch the desired output type
        Returns:
        output type
      • getMimeType

        public String getMimeType​(String streamPropertyName)
        Specified by:
        getMimeType in interface org.pentaho.platform.api.action.IStreamingAction
      • loadChartEngine

        protected void loadChartEngine()
        Sets the chart engine based on the order of precedence: 1) Chart Definition 2) Action Sequence 3) System Setting 4) Hard Coded
      • loadChartModel

        protected void loadChartModel()
      • setChartModelJson

        public void setChartModelJson​(String chartModelJson)
        Set the JSON representation of the ChartModel
        Parameters:
        chartModelJson - JSON serialized representation of the ChartModel
      • setChartModelXmlStream

        public void setChartModelXmlStream​(InputStream chartModelStream)
                                    throws IOException
        Set the XML representation of the ChartModel as an InputStream
        Parameters:
        chartModelStream - XML serialized representation of the ChartModel
        Throws:
        IOException - if there is a problem converting the input stream to an encoded string
      • setChartModelXml

        public void setChartModelXml​(String chartModelXml)
        Set the XML representation of the ChartModel
        Parameters:
        chartStyleXml - XML serialized representation of the ChartModel
      • setChartModel

        public void setChartModel​(org.pentaho.chart.model.ChartModel chartModel)
        Set the ChartModel
        Parameters:
        chartModel - model of the chart to be generated
      • setChartWidth

        public void setChartWidth​(int chartWidth)
        Set the width of the chart in units specific to the ChartPlugin
        Parameters:
        chartWidth - width of the chart
      • setChartHeight

        public void setChartHeight​(int chartHeight)
        Set the height of the chart in units specific to the ChartPlugin
        Parameters:
        chartHeight - height of the chart
      • setChartWidth

        public void setChartWidth​(String chartWidth)
        Set the width of the chart in units specific to the ChartPlugin
        Parameters:
        chartWidth - width of the chart
      • setChartHeight

        public void setChartHeight​(String chartHeight)
        Set the height of the chart in units specific to the ChartPlugin
        Parameters:
        chartHeight - height of the chart
      • getChartEngine

        public String getChartEngine()
        Get the chart engine that the resulting chart was created through
        Returns:
      • setChartEngine

        public void setChartEngine​(String chartEngine)
        Set the chart engine to render the chart
        Parameters:
        chartEngine - Value of "JFreeChart" or "OpenFlashChart"
      • setOutputType

        public void setOutputType​(String outputType)
      • setScalingFactor

        public void setScalingFactor​(Double scalingFactor)
      • getSwfPath

        public String getSwfPath()
      • getSwfName

        public String getSwfName()