You are here

function ChartsGraphsOpenFlash::_preprocess_values in Charts and Graphs 7

Same name and namespace in other branches
  1. 6.2 apis/charts_graphs_open_flash/charts_graphs_open_flash.class.inc \ChartsGraphsOpenFlash::_preprocess_values()

Pie-chart has different format for $values array than bar chart etc. This method deals with permutations across chart types. Sigh.

We also remove items with no label, while we are at it, since those can cause problems to Flash renderer.

1 call to ChartsGraphsOpenFlash::_preprocess_values()
ChartsGraphsOpenFlash::get_data_from_cache in apis/charts_graphs_open_flash/charts_graphs_open_flash.class.inc

File

apis/charts_graphs_open_flash/charts_graphs_open_flash.class.inc, line 161

Class

ChartsGraphsOpenFlash
Implementation of abstract class ChartsGraphsFlashCanvas for Open Charts Flash 2 library.

Code

function _preprocess_values($values) {
  $labels = $this->x_axis->labels->labels;
  $i = 0;
  $series_colours = array_values($this
    ->series_colours());
  switch ($this->type) {
    case 'pie':
      $new_vals = array();
      foreach ($values as $val) {

        // An accidental empty label causes SWF to go nuts.
        if (!empty($labels[$i]) && $labels[$i] != 'null') {
          $obj = new stdClass();
          $obj->value = $val;
          $obj->label = $labels[$i];
          $obj->colour = $series_colours[$i];
          $new_vals[] = $obj;
        }
        $i++;
      }
      return $new_vals;

    /**
     * Default action is just filtering values with nulled labels (leftovers
     * from out joins).
     */
    default:
      $new_vals = array();
      $new_labels = array();
      foreach ($values as $val) {

        // An accidental empty label causes SWF to go nuts.
        if (!empty($labels[$i]) && $labels[$i] != 'null') {
          $new_vals[] = $val;
          $new_labels[] = $labels[$i];
        }
        $i++;
      }
      $this->x_axis->labels->labels = $new_labels;
      return $new_vals;
  }
}