aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/UI/Widget/GridView.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reaction/UI/Widget/GridView.pm')
-rw-r--r--lib/Reaction/UI/Widget/GridView.pm24
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/Reaction/UI/Widget/GridView.pm b/lib/Reaction/UI/Widget/GridView.pm
index 1f73adb..c7c2530 100644
--- a/lib/Reaction/UI/Widget/GridView.pm
+++ b/lib/Reaction/UI/Widget/GridView.pm
@@ -3,19 +3,23 @@ package Reaction::UI::Widget::GridView;
use Reaction::UI::WidgetClass;
class GridView, which {
- fragment widget [ qw/header body footer/ ];
- fragment header [ 'header_row' ];
- fragment header_row [ header_cell => over func('viewport', 'field_order'),
- { labels => func(viewport => 'field_labels') } ];
- fragment header_cell [ string { $_{labels}->{$_} } ], { field_name => $_ };
+ implements fragment header_cells {
+ arg 'labels' => $_{viewport}->field_labels;
+ render header_cell => over $_{viewport}->field_order;
+ };
- fragment footer [ 'footer_row' ];
- fragment footer_row [ footer_cell => over func('viewport', 'field_order'),
- { labels => func(viewport => 'field_labels') } ];
- fragment footer_cell [ string { $_{labels}->{$_} } ], { field_name => $_ };
+ implements fragment body_rows {
+ render body_row => over $_{viewport}->entities;
+ };
- fragment body [ viewport => over func('viewport','entities')];
+ implements fragment body_row {
+ render 'viewport';
+ };
+
+ implements fragment header_cell {
+ arg label => $_{labels}->{$_};
+ };
};