Mailing List Archive

svn commit: r1363224 - /perl/embperl/trunk/Embperl/Form/Control/grid.pm
Author: richter
Date: Thu Jul 19 05:55:05 2012
New Revision: 1363224

URL: http://svn.apache.org/viewvc?rev=1363224&view=rev
Log:
Add flat readonly view for grid

Modified:
perl/embperl/trunk/Embperl/Form/Control/grid.pm

Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1363224&r1=1363223&r2=1363224&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Thu Jul 19 05:55:05 2012
@@ -55,10 +55,27 @@ sub init
$self -> {header_bottom} = 10 if (!exists ($self -> {header_bottom})) ;
$self -> {width} = 1 ;

+ my $flat = $self -> {flatopt} ;
+ my @flat = split /\s*;\s*/, $flat ;
+ my $fields = $self -> {fields} ;
+ if (@flat)
+ {
+ my @fields = @$fields ;
+ foreach (@fields)
+ {
+ my $name = $_ -> {name} ;
+ for (my $i = 0 ; $i < @flat; $i+=3)
+ {
+ $_ -> {$flat[$i+1]} = $flat[$i+2] if ($name eq $flat[$i]);
+ }
+ }
+ $fields = \@fields ;
+ $self -> {fields} = $fields ;
+ }
my $form = $self -> form ;
my $options = $form -> {options} ;
my $validate_rules = $self -> {validate_rules} = [] ;
- $form -> new_controls ($self -> {fields}, $options, undef, undef, $validate_rules, $options -> {masks}, $options -> {defaults}, 1) ;
+ $form -> new_controls ($fields, $options, undef, undef, $validate_rules, $options -> {masks}, $options -> {defaults}, 1) ;
if ($self -> {line2})
{
my $ctl = [$self -> {line2}] ;
@@ -255,6 +272,56 @@ sub prepare_fdat

__EMBPERL__

+[# ---------------------------------------------------------------------------
+#
+# show_control_readonly - output readonly grid
+#]
+
+[.$ sub show_control_readonly ($self, $req)
+
+ my $name = $self -> {name} ;
+ my $max = $fdat{"__${name}_max"} ;
+
+ my $flat = $self -> {flat} ;
+ my @flat = split /\s*;\s*/, $flat ;
+ my $fields = $self -> {'fields'};
+ my $i = 0 ;
+ my @fields ;
+ my %fields ;
+ foreach my $field (@$fields)
+ {
+ $fields{$field -> {name}} = $i ;
+ push @fields, $field -> {name} ;
+ $i++ ;
+ }
+ @fields = @flat if (@flat) ;
+
+ my @data ;
+ for ($i = 0; $i < $max ; $i++)
+ {
+ my $j ;
+ my @row ;
+ foreach $fieldname (@fields)
+ {
+ my $field = $fields -> [$fields{$fieldname}] ;
+ next if $field -> is_hidden ;
+ $j = $fields{$fieldname} ;
+ if ($field -> {datasrcobj})
+ {
+ push @row, $field -> get_option_from_value ($fdat{"__${name}_${j}_$i"}, $req) ;
+ }
+ else
+ {
+ push @row, $fdat{"__${name}_${j}_$i"} ;
+ }
+ }
+ push @data, join (' ', @row) if (grep /\S/, @row) ;
+ }
+ my $value = join (' / ', @data) ;
+ $]
+<div [.+ do { local $escmode = 0 ; $self -> get_std_control_attr($req, '', 'readonly') } +]>[+ $value +]</div>
+[$endsub$]
+

[# ---------------------------------------------------------------------------
#
@@ -534,6 +601,21 @@ Sort descending
Offset added to column number. Default: 1
If > 1, column number will set to the rownumber

+=head3 flat
+
+This can be used for readonly view of grid. Normaly readonly view will show
+the content as one large string. The flat attribute can contain a semikolon
+delimited list of fields that should be show in readony view. That allows
+to selectivly show fields in readonly view.
+This can be used to show a readonly view of a grid inside of another grid.
+
+=head3 flatopt
+
+Semikolon delimited list of tripels that add special options for flat view:
+
+<name of fields>;<option name>;<option value>
+
+
=head2 Example

{
@@ -547,6 +629,7 @@ If > 1, column number will set to the ro
],
},

+
=head1 Author

G. Richter (richter@dev.ecos.de)



---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org