aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/UI/Widget/GridView.pm
blob: bb2f526aaa83ce3bb75285451531291f4cb70377 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package Reaction::UI::Widget::GridView;

use Reaction::UI::WidgetClass;

class GridView, which {
  widget renders [ qw/header rows footer/
                   => { viewport => func('self', 'viewport') }
                 ];

  header      renders [ 'header_row' ];
  header_row  renders [ header_cell over func('viewport', 'column_names') ];
  header_cell renders [ string { $_ } ];

  footer      renders [ 'footer_row' ];
  footer_row  renders [ footer_cell over func('viewport', 'column_names') ];
  footer_cell renders [ string { $_ } ];

  rows renders [ viewport over func('viewport','rows') ];

};

1;


=for layout widget
<table>
  [% header %]
<tbody>
  [% rows %]
</tbody>
<tfoot>
  [% footer %]
</tfoot>
</table>

=for layout header

<thead>
  [% content %]
</thead>

=for layout header_row

<tr>
  [% content %]
</tr>

=for layout header_cell

<th> [% content %] </th>

=for layout footer

<tfoot>
  [% content %]
</tfoot>

=for layout footer_row

<tr> [% content %] </tr>

=for layout footer_cell

<td> [% content %] </td>

=for layout rows

<tbody>
  [% content %]
</tbody>

=cut