+++ /dev/null
-require File.dirname(__FILE__) + '/base'
-
-# EXPERIMENTAL!
-#
-# Doesn't work yet.
-#
-class Gruff::PhotoBar < Gruff::Base
-
-# TODO
-#
-# define base and cap in yml
-# allow for image directory to be located elsewhere
-# more exact measurements for bar heights (go all the way to the bottom of the graph)
-# option to tile images instead of use a single image
-# drop base label a few px lower so photo bar graphs can have a base dropping over the lower marker line
-#
-
- # The name of a pre-packaged photo-based theme.
- attr_reader :theme
-
-# def initialize(target_width=800)
-# super
-# init_photo_bar_graphics()
-# end
-
- def draw
- super
- return unless @has_data
-
- return # TODO Remove for further development
-
- init_photo_bar_graphics()
-
- #Draw#define_clip_path()
- #Draw#clip_path(pathname)
- #Draw#composite....with bar graph image OverCompositeOp
- #
- # See also
- #
- # Draw.pattern # define an image to tile as the filling of a draw object
- #
-
- # Setup spacing.
- #
- # Columns sit side-by-side.
- spacing_factor = 0.9
- @bar_width = @norm_data[0][DATA_COLOR_INDEX].columns
-
- @norm_data.each_with_index do |data_row, row_index|
-
- data_row[1].each_with_index do |data_point, point_index|
- data_point = 0 if data_point.nil?
- # Use incremented x and scaled y
- left_x = @graph_left + (@bar_width * (row_index + point_index + ((@data.length - 1) * point_index)))
- left_y = @graph_top + (@graph_height - data_point * @graph_height) + 1
- right_x = left_x + @bar_width * spacing_factor
- right_y = @graph_top + @graph_height - 1
-
- bar_image_width = data_row[DATA_COLOR_INDEX].columns
- bar_image_height = right_y.to_f - left_y.to_f
-
- # Crop to scale for data
- bar_image = data_row[DATA_COLOR_INDEX].crop(0, 0, bar_image_width, bar_image_height)
-
- @d.gravity = NorthWestGravity
- @d = @d.composite(left_x, left_y, bar_image_width, bar_image_height, bar_image)
-
- # Calculate center based on bar_width and current row
- label_center = @graph_left + (@data.length * @bar_width * point_index) + (@data.length * @bar_width / 2.0)
- draw_label(label_center, point_index)
- end
-
- end
-
- @d.draw(@base_image)
- end
-
-
- # Return the chosen theme or the default
- def theme
- @theme || 'plastik'
- end
-
-protected
-
- # Sets up colors with a list of images that will be used.
- # Images should be 340px tall
- def init_photo_bar_graphics
- color_list = Array.new
- theme_dir = File.dirname(__FILE__) + '/../../assets/' + theme
-
- Dir.open(theme_dir).each do |file|
- next unless /\.png$/.match(file)
- color_list << Image.read("#{theme_dir}/#{file}").first
- end
- @colors = color_list
- end
-
-end
-