Package org.pentaho.platform.plugin.action.openflashchart.factory

Source Code of org.pentaho.platform.plugin.action.openflashchart.factory.PieChartFactory

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.platform.plugin.action.openflashchart.factory;

import ofc4j.model.elements.Element;
import ofc4j.model.elements.PieChart;
import org.dom4j.Node;

public class PieChartFactory extends AbstractChartFactory {

  // pie related elements
  private static final String START_ANGLE_NODE_LOC = "start-angle"; //$NON-NLS-1$
  private static final String ANIMATE_NODE_LOC = "animate"; //$NON-NLS-1$

  // pie related members
  private boolean animate;
  private Integer startAngle;

  @Override
  protected void createElements() {
    elements.add( getPieChartFromColumn( 0 ) );
  }

  public Element getPieChartFromColumn( int col ) {
    PieChart pc = new PieChart();
    PieChart.Slice[] slices = new PieChart.Slice[getRowCount()];
    for ( int row = 0; row < getRowCount(); row++ ) {
      double d = ( (Number) getValueAt( row, col ) ).doubleValue();
      // Labels are already set - use them
      String label = (String) chart.getXAxis().getLabels().getLabels().get( row );

      slices[row] = new PieChart.Slice( d, label, label );
      if ( tooltipText != null ) {
        slices[row].setTooltip( tooltipText );
      }
    }

    pc.addSlices( slices );
    pc.setColours( colors );
    pc.setStartAngle( startAngle );
    pc.setAnimate( animate );
    if ( alpha != null ) {
      pc.setAlpha( alpha );
    }
    return pc;
  }

  @Override
  protected void setupStyles() {
    super.setupStyles();

    Node temp = chartNode.selectSingleNode( ANIMATE_NODE_LOC );
    if ( getValue( temp ) != null ) {
      animate = "true".equals( getValue( temp ) ); //$NON-NLS-1$
    }

    temp = chartNode.selectSingleNode( START_ANGLE_NODE_LOC );
    if ( getValue( temp ) != null ) {
      startAngle = Integer.parseInt( getValue( temp ) );
    }
  }

}
TOP

Related Classes of org.pentaho.platform.plugin.action.openflashchart.factory.PieChartFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.