/[Apache-SVN]/perl/embperl/trunk/Embperl/Form/Control/radio.pm
ViewVC logotype

Diff of /perl/embperl/trunk/Embperl/Form/Control/radio.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- perl/embperl/trunk/Embperl/Form/Control/radio.pm	2005/12/23 14:13:36	358806
+++ perl/embperl/trunk/Embperl/Form/Control/radio.pm	2005/12/23 14:16:19	358807
@@ -17,11 +17,23 @@
 package Embperl::Form::Control::radio ;
 
 use strict ;
+use vars qw{%fdat} ;
 use base 'Embperl::Form::ControlMultValue' ;
 
 use Embperl::Inline ;
 
+# ---------------------------------------------------------------------------
+#
+#   show_control_readonly - output readonly control
+#
 
+sub show_control_readonly 
+    {
+    my ($self) = @_ ;
+    
+    my $name     = $self -> {name} ;
+    $self -> show_control ("^\Q$fdat{$name}\\E\$") ;
+    }
 
 1 ;
 
@@ -32,26 +44,29 @@ __EMBPERL__
 #   show_control - output the control
 #]
 
-[$ sub show_control ($self) 
+[$ sub show_control ($self, $filter) 
 
     my ($values, $options) = $self -> get_values ;
     my $name     = $self -> {name} ;
-    my $filter   = $self -> {filter} ;
+    $filter    ||= $self -> {filter} ;
     my $addtop   = $self -> {addtop} || [] ;
     my $addbottom= $self -> {addbottom} || [] ;
     my $max      = @$values ;
+    my $set      = !defined ($fdat{$name})?1:0 ;
 
     my $val ;     
     my $i = 0 ;
-$]    
+$]
 [$ foreach $val (@$addtop) $]
     [$if !defined ($filter) || ($val->[0] =~ /$filter/i) $]
+    [- $fdat{$name} = $val -> [0], $set = 0 if ($set) ; -]
     <input type="radio" name="[+ $name +]" value="[+ $val -> [0] +]"
     >[+ $val ->[1] || $val -> [0] +]
     [$endif$]
 [$endforeach$]
 [$ foreach $val (@$values) $]
     [$if !defined ($filter) || ($val =~ /$filter/i) $]
+    [- $fdat{$name} = $val, $set = 0 if ($set) ; -]
     <input type="radio" name="[+ $name +]" value="[+ $val +]"
     [$if ($self -> {sublines} || $self -> {subobjects}) $] OnClick="show_radio_checked(this,[+ $i +],[+ $max +])" [$endif$]
     >[+ $options ->[$i] || $val +]
@@ -61,6 +76,7 @@ $]
 [$endforeach$]
 [$ foreach $val (@$addbottom) $]
     [$if !defined ($filter) || ($val->[0] =~ /$filter/i) $]
+    [- $fdat{$name} = $val -> [0], $set = 0 if ($set) ; -]
     <input type="radio" name="[+ $name +]" value="[+ $val -> [0] +]"
     >[+ $val ->[1] || $val -> [0] +]
     [$endif$]
@@ -68,29 +84,7 @@ $]
 
 [$endsub$]
 
-[# ---------------------------------------------------------------------------
-#
-#   show_control_readonly - output readonly control
-#]
-
-[$ sub show_control_readonly ($self) 
 
-    my ($values, $options) = $self -> get_values ;
-    my $name     = $self -> {name} ;
-    my $max      = @$values ;
-
-    my $val ;     
-    my $i = 0 ;
-$]    
-[$ foreach $val (@$values) $]
-    [$if $val eq $fdat{$name} $]
-    <input type="radio" name="[+ $name +]" value="[+ $val +]">[+ $options ->[ $i] || $val +]
-    [$endif$]
-    [* $i++ ; *]
-[$endforeach$]
-
-
-[$endsub$]
 
 __END__
 

 

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26