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 ++) {