You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2011/09/10 14:42:48 UTC
svn commit: r1167506 - in /perl/embperl/trunk/Embperl/Form: Control/tabs.pm
ControlMultValue.pm
Author: richter
Date: Sat Sep 10 12:42:48 2011
New Revision: 1167506
URL: http://svn.apache.org/viewvc?rev=1167506&view=rev
Log:
Perfomance optimatasitations for MultValueControl
Modified:
perl/embperl/trunk/Embperl/Form/Control/tabs.pm
perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
Modified: perl/embperl/trunk/Embperl/Form/Control/tabs.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/tabs.pm?rev=1167506&r1=1167505&r2=1167506&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/tabs.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/tabs.pm Sat Sep 10 12:42:48 2011
@@ -66,9 +66,13 @@ sub get_active_id
{
my ($self, $req) = @_ ;
+ my $key = "active_id:$self" ;
+ my $id ;
+ return $id if ($id = $req -> {$key}) ;
+
my ($values, $options) = $self -> get_values ($req) ;
my $name = $self -> {name} ;
- my $dataval = $fdat{$name} || $values -> [0] ;
+ my $dataval = $fdat{$name} || $req -> {query}{$name} || $values -> [0] ;
my $activeid ;
my $i = 0 ;
@@ -81,8 +85,7 @@ sub get_active_id
}
$i++ ;
}
-
- return $activeid || $self -> {subids}[0];
+ return $req -> {$key} = $activeid || $self -> {subids}[0];
}
@@ -95,13 +98,13 @@ __EMBPERL__
# show - output the control
#]
-[$ sub show ($self)
+[$ sub show ($self, $req)
my ($values, $options) = $self -> get_values ;
my $span = ($self->{width_percent}) ;
my $name = $self -> {name} ;
my $dataval = $fdat{$name} || $values -> [0] ;
- my $activeid = $self -> get_active_id ;
+ my $activeid = $self -> get_active_id ($req) ;
my $nsprefix = $self -> form -> {jsnamespace} ;
my $tabs_per_line = $self -> {'tabs_per_line'} || 99;
$tabs_per_line = [$tabs_per_line, $tabs_per_line, $tabs_per_line, $tabs_per_line]
Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=1167506&r1=1167505&r2=1167506&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original)
+++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Sat Sep 10 12:42:48 2011
@@ -57,6 +57,10 @@ sub get_all_values
{
my ($self, $req) = @_ ;
+ my $key = "all_values:$self" ;
+ my $v ;
+ return @$v if ($v = $req -> {$key}) ;
+
my $addtop = $self -> {addtop} ;
my $addbottom = $self -> {addbottom} ;
@@ -65,8 +69,17 @@ sub get_all_values
if ($self -> {datasrcobj})
{
- ($values, $options) = $self -> {datasrcobj} -> get_values ($req, $self) ;
- $options ||= $values ;
+ my $key = "all_values_datasrc:$self->{datasrcobj}" ;
+ if (my $v = $req -> {$key})
+ {
+ ($values, $options) = @$v ;
+ }
+ else
+ {
+ ($values, $options) = $self -> {datasrcobj} -> get_values ($req, $self) ;
+ $options ||= $values ;
+ $req -> {$key} = [$values, $options] ;
+ }
}
else
{
@@ -76,8 +89,11 @@ sub get_all_values
if (!$self -> {showoptions}) ;
}
- return ($values, $options) if (!$addtop && !$addbottom) ;
-
+ if (!$addtop && !$addbottom)
+ {
+ $req -> {$key} = [$values, $options] ;
+ return ($values, $options)
+ }
my @values ;
my @options ;
if ($addtop)
@@ -98,6 +114,7 @@ sub get_all_values
push @options, map { $_ -> [0] } @$addbottom ;
}
+ $req -> {$key} = [\@values, \@options] ;
return (\@values, \@options) ;
}
@@ -214,6 +231,10 @@ sub get_active_id
{
my ($self, $req) = @_ ;
+ my $key = "active_id:$self" ;
+ my $id ;
+ return $id if ($id = $req -> {$key}) ;
+
my ($values, $options) = $self -> get_values ($req) ;
my $name = $self -> {name} ;
my $dataval = $fdat{$name} || $values -> [0] ;
@@ -230,7 +251,7 @@ sub get_active_id
$i++ ;
}
- return $activeid ;
+ return $req -> {$key} = $activeid ;
}
# ---------------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org