public function __construct(&$result_object, &$result_file = null, $extra_attributes = null)
 {
     parent::__construct($result_object, $result_file, $extra_attributes);
     $this->i['iveland_view'] = true;
     $this->i['graph_orientation'] = 'HORIZONTAL';
     $this->i['identifier_height'] = -1;
 }
 public static function init_graph_config($external_config = null)
 {
     self::set_default_graph_values(self::$c);
     if ($external_config && is_array($external_config)) {
         self::$c = array_merge(self::$c, $external_config);
     }
 }
 protected function graph_key_height()
 {
     if (isset($this->i['force_simple_keys']) && $this->i['force_simple_keys']) {
         return parent::graph_key_height();
     }
     if ($this->test_result->test_result_buffer->get_count() < 2 && $this->i['show_graph_key'] == false) {
         return 0;
     }
     $this->i['key_line_height'] = 16;
     $this->i['key_longest_string_width'] = self::text_string_width($this->test_result->test_result_buffer->get_longest_identifier(), self::$c['size']['key']);
     $item_width_spacing = 32;
     $this->i['key_item_width'] = $this->i['key_longest_string_width'] + $this->get_stat_word_width() * 3 + $item_width_spacing;
     // if there are <=4 data sets, then use a single column, otherwise, try and multi-col it
     if ($this->test_result->test_result_buffer->get_count() < 3) {
         $this->i['keys_per_line'] = 1;
     } else {
         $this->i['keys_per_line'] = max(1, floor(($this->i['graph_left_end'] - $this->i['left_start']) / $this->i['key_item_width']));
     }
     $statistics_header_height = $this->getStatisticsHeaderHeight();
     $extra_spacing = 4;
     return ceil($this->test_result->test_result_buffer->get_count() / $this->i['keys_per_line']) * $this->i['key_line_height'] + $statistics_header_height + $extra_spacing;
 }