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