[Jifty-commit] r5940 - in jifty/trunk: lib/Jifty/Plugin/Chart/Renderer

Jifty commits jifty-commit at lists.jifty.org
Wed Oct 15 05:13:36 EDT 2008


Author: sartak
Date: Wed Oct 15 05:13:35 2008
New Revision: 5940

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/Google.pm

Log:
 r73797 at onn:  sartak | 2008-10-15 05:12:46 -0400
 Add a reasonable default for bar width based on number of bars and chart width


Modified: jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/Google.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/Google.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin/Chart/Renderer/Google.pm	Wed Oct 15 05:13:35 2008
@@ -292,6 +292,8 @@
 
     # Add bar widths for bar charts
     if ( $args{'type'} =~ /bar/i ) {
+        @{ $args{'bar_width'} } = $self->_calculate_bar_width(\%args)
+            if @{ $args{'bar_width'} } == 0;
         $url .= "&chbh=" . join ',', @{ $args{'bar_width'} };
     }
 
@@ -388,6 +390,20 @@
     return $result;
 }
 
+sub _calculate_bar_width {
+    my $self = shift;
+    my $args = shift;
+
+    my $bars = @{ $args->{data}[0] };
+    my $bar_width = $args->{width};
+
+    $bar_width -= 10;         # chart margins
+    $bar_width -= 3 * $bars;  # bar margins
+    $bar_width /= $bars;      # each bar's width
+
+    return int($bar_width), 3;
+}
+
 =head1 SEE ALSO
 
 L<Jifty::Plugin::Chart>, L<Jifty::Plugin::Chart::Renderer>


More information about the Jifty-commit mailing list