Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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 2009 Pentaho Corporation.  All rights reserved.
  */
 package org.pentaho.platform.plugin.action.openflashchart.factory;
 
 import java.util.List;
 
 import  ofc4j.model.axis.Axis;
 import  ofc4j.model.axis.YAxis;
 import  ofc4j.model.elements.Element;
 import  ofc4j.model.elements.LineChart;
 
 import org.dom4j.Node;
 
 public class BarLineChartFactory extends BarChartFactory {
   
   // bar line related elements
   private static final String BAR_SERIES_SERIES_NODE_LOC = "bar-series/series"//$NON-NLS-1$
   private static final String LINES_RANGE_STROKE_NODE_LOC = "lines-range-stroke"//$NON-NLS-1$
   private static final String LINES_RANGE_GRID_COLOR_NODE_LOC = "lines-range-grid-color"//$NON-NLS-1$
   private static final String LINES_RANGE_COLOR_NODE_LOC = "lines-range-color"//$NON-NLS-1$
   private static final String LINE_SERIES_SERIES_NODE_LOC = "line-series/series"//$NON-NLS-1$
   private static final String LINES_RANGE_MAXIMUM_NODE_LOC = "lines-range-maximum"//$NON-NLS-1$
   private static final String LINES_RANGE_MINIMUM_NODE_LOC = "lines-range-minimum"//$NON-NLS-1$
   private static final String LINE_RANGE_STEPS_NODE_LOC = "line-range-steps"//$NON-NLS-1$
   
 
   @Override
   public void setupStyles() {
     super.setupStyles();
   }
 
   @Override
   public void setData(IPentahoResultSet data) {
     super.setData(data);
     .setData(data);
   }
   
   @Override
   public void setChartNode(Node chartNode) {
     super.setChartNode(chartNode);
     .setChartNode(chartNode);
   }
   
   @Override
   public void setLog(Log log) {
     super.setLog(log);
     .setLog(log);
   }
   
   protected void setupColors() {
     super.setupColors();
   }
 
   public Axis setupRange() {
     Axis axis = super.setupRange();
     setupLineRange();
     return axis;
   }
   
   @SuppressWarnings("unchecked")
   public MinMax getRangeMinMax() {
     int rangeMin = 0;
     int rangeMax = 0;
     if () {
       rangeMin = 0;
       rangeMax = getStackedMaxRange();
     } else {
       rangeMin = .;
       rangeMax = .;
       List<Stringbars = new ArrayList<String>();
       for (Object node : nodes) {
         if (getValue((Nodenode) != null) {
           bars.add(getValue((Nodenode));
         }
       }
 
       for (int c = 0; c < getColumnCount(); c++) {
         String text = getColumnHeader(c);
        if (bars.contains(text)) {
          for (int r = 0; r < getRowCount(); r++) {
            if (rangeMin > ((NumbergetValueAt(rc)).intValue())
              rangeMin = ((NumbergetValueAt(rc)).intValue();
            if (rangeMax < ((NumbergetValueAt(rc)).intValue())
              rangeMax = ((NumbergetValueAt(rc)).intValue();
          }
        }
      }
    }
    
    if (rangeMin > 0) {
      rangeMin = 0;
    }
    
    return new MinMax(rangeMinrangeMax);
  }
  
  @SuppressWarnings("unchecked")
  public void setupLineRange() {
    int rangeMin = 0;
    int rangeMax = 100;
    int steps = 9;
    String rangeColor = ;
    String rangeGridColor = ;
    int rangeStroke = 1;
      rangeMin = .;
      rangeMax = .;
      List<Stringbars = new ArrayList<String>();
      for (Object node : nodes) {
        if (getValue((Nodenode) != null) {
          bars.add(getValue((Nodenode));
        }
      }
      for (int c = 0; c < getColumnCount(); c++) {
        String text = getColumnHeader(c);
        if (bars.contains(text)) {
          for (int r = 0; r < getRowCount(); r++) {
            if (rangeMin > ((NumbergetValueAt(rc)).intValue())
              rangeMin = ((NumbergetValueAt(rc)).intValue();
            if (rangeMax < ((NumbergetValueAt(rc)).intValue())
              rangeMax = ((NumbergetValueAt(rc)).intValue();
          }
        }
      }
    }
    boolean minDefined = false;
    boolean maxDefined = false;
    if (getValue(temp) != null) {
      rangeMin = new Integer(getValue(temp)).intValue();
      minDefined = true;
    }
    if (getValue(temp) != null) {
      rangeMax = new Integer(getValue(temp)).intValue();
      maxDefined = true;
    }
    if (getValue(temp) != null) {
      rangeColor = getValue(temp);
    }
    if (getValue(temp) != null) {
      rangeGridColor = getValue(temp);
    }
    if (getValue(temp) != null) {
      rangeStroke = Integer.parseInt(getValue(temp));
    }
    if (getValue(temp) != null) {
      steps = new Integer(getValue(temp)).intValue();
    }
    
    int diff = rangeMax - rangeMin;
    int chunksize = diff / steps;
    Integer stepforchart = null;
    if (chunksize > 0)
      stepforchart = new Integer(chunksize);
    // Readjust mins/maxs only if they weren't specified
    if (!minDefined) {
      // If actual min is positive, don't go below ZERO
      if (rangeMin >= 0 && rangeMin - chunksize < 0)
        rangeMin = 0;
      else
        rangeMin = rangeMin - chunksize;
    }
    if (!maxDefined) {
      rangeMax = rangeMin + (chunksize * (steps + 2));
    }
    YAxis yaxis = new YAxis();
    yaxis.setRange(rangeMinrangeMaxstepforchart);
    yaxis.setStroke(rangeStroke);
    yaxis.setColour(rangeColor);
    yaxis.setGridColour(rangeGridColor);
    .setYAxisRight(yaxis);
  }
  
  public void createElements() {
      int columnCount = getColumnCount();
      for (int col = 0; col < columnCountcol++) {
        .add(getBarLineChartFromColumn(col));
      }
    } else {
      // TOOD: Support XY in the future?
    }
  }
  
  @SuppressWarnings("unchecked")
  public Element getBarLineChartFromColumn(int col) {
    String text = getColumnHeader(col); 
    // determine if this is a line or a bar
    List<Stringbars = new ArrayList<String>();
    for (Object node : nodes) {
      if (getValue((Nodenode) != null) {
        bars.add(getValue((Nodenode));
      }
    }
    if (!bars.contains(text)) {
      LineChart lc = .getLineChartFromColumn(col);
      lc.setRightYAxis();
      return lc;
    } else {
      return getVerticalBarChartFromColumn(col);
    }
    
  }
New to GrepCode? Check out our FAQ X