Author: spadkins
Date: Mon Apr 23 09:22:18 2007
New Revision: 9445

Modified:
   p5ee/trunk/App-Widget/lib/App/Widget/Graph.pm

Log:
fix scaling of y values for % formats

Modified: p5ee/trunk/App-Widget/lib/App/Widget/Graph.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget/Graph.pm       (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget/Graph.pm       Mon Apr 23 09:22:18 2007
@@ -95,49 +95,12 @@
     my $yn = [];
     my ($y);
 
-    my $column_defs;
-    my $columns = $spec->{columns};
-    $columns = [ split(/,/, $columns) ] if (!ref($columns));
-    if ($self->{objects}) {
-        $column_defs = $self->{column_defs};
-    }
-    else {
-        my $object_set = $self->get_object_set($spec);
-        if ($#$columns != -1) {
-            $object_set->include_columns($columns);
-            $column_defs = $object_set->get_column_defs();
-        } 
-    }
-    
-    my $a = [];
-    my $b = [];
-
     if ($spec->{y}) {
         $y = $spec->{y};
         if (ref($y->[0]) eq "ARRAY") {
 
             $yn = $y;
 
-            if ($#$columns != -1) {
-                for (my $i = 0; $i <= $#$yn; $i++) {
-                    my $array  = $yn->[$i];
-                    my $format = $column_defs->{$columns->[$i]}{format};
-                    foreach my $val (@$array) {
-                        if ( $format =~ /%/ ) {
-                            my $fval = App::Widget->format($val, 
$column_defs->{$columns->[$i]});
-                            $fval =~ s/%//g;
-                            push (@$a, $fval);
-                        } else {
-                            push (@$a, $val);
-                        }
-                    }
-                    push(@$b, $a);
-                    $a = []; 
-                }
-                if ($#$b != -1) {
-                    $yn = $b;
-                }
-            }
         }
         else {
             push(@$yn, $y);
@@ -150,6 +113,7 @@
             }
         }
     }
+
     &App::sub_exit($yn) if ($App::trace);
     return($yn);
 }
@@ -261,7 +225,7 @@
     }
 
     my (@x, @yn, $object, $column, $x, $yn);
-    my ($label);
+    my ($label, $format, $yn_val);
 
     my $data_dims   = ($#$keys + 1) + $column_dims;
     if ($#$columns > 0 || $data_dims < 2) {
@@ -269,7 +233,13 @@
             $object = $objects->[$i];
             for (my $j = 0; $j <= $#$columns; $j++) {
                 $column = $columns->[$j];
-                $yn[$j][$i] = $object->{$column};
+                $format = $column_defs->{$column}{format};
+                $yn_val = $object->{$column};
+                if ($format && $format =~ /%/) {
+                    $yn_val = App::Widget->format($yn_val, 
$column_defs->{$column});
+                    $yn_val =~ s/%//;
+                }
+                $yn[$j][$i] = $yn_val;
             }
         }
 
@@ -314,6 +284,7 @@
         my $y_dim = $#$keys;
         my $y_column = $keys->[$y_dim];
         my $column = $columns->[0];
+        $format = $column_defs->{$column}{format};
         $label = $column_defs->{$x_column}{label};
         $label =~ s/<br>//g;
         $spec->{x_title} = $label if (!$spec->{x_title});
@@ -330,7 +301,12 @@
                 push(@y, $y_value);
                 $y_idx{$y_value} = $#y;
             }
-            $yn[$y_idx{$y_value}][$x_idx{$x_value}] = $object->{$column};
+            $yn_val = $object->{$column};
+            if ($format && $format =~ /%/) {
+                $yn_val = App::Widget->format($yn_val, 
$column_defs->{$column});
+                $yn_val =~ s/%//;
+            }
+            $yn[$y_idx{$y_value}][$x_idx{$x_value}] = $yn_val;
         }
 
         for ($yn = 0; $yn <= $#yn; $yn ++) {

Reply via email to