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
|