diff options
author | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2007-12-14 21:10:01 +0000 |
---|---|---|
committer | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2007-12-14 21:10:01 +0000 |
commit | 664d660c64b882714d87f3a8dc7491723042ae0c (patch) | |
tree | eb70016566ed692ef60e63c65f9ecced4311c96f /lib/Reaction/UI/Widget/ListView.pm | |
parent | aa8c0c904641fa20c5f50882d09c1502aae19b3a (diff) | |
download | reaction-664d660c64b882714d87f3a8dc7491723042ae0c.tar.gz reaction-664d660c64b882714d87f3a8dc7491723042ae0c.zip |
port actionform, field widgets to declarative system
Diffstat (limited to 'lib/Reaction/UI/Widget/ListView.pm')
-rw-r--r-- | lib/Reaction/UI/Widget/ListView.pm | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/lib/Reaction/UI/Widget/ListView.pm b/lib/Reaction/UI/Widget/ListView.pm index 9562900..cfd8028 100644 --- a/lib/Reaction/UI/Widget/ListView.pm +++ b/lib/Reaction/UI/Widget/ListView.pm @@ -4,6 +4,10 @@ use Reaction::UI::WidgetClass; class ListView is 'Reaction::UI::Widget::GridView', which { + after fragment widget { + arg pager_obj => $_{viewport}->pager; + }; + implements fragment actions { render action => over $_{viewport}->actions; }; @@ -28,7 +32,54 @@ class ListView is 'Reaction::UI::Widget::GridView', which { }; implements fragment header_action_cell { - arg 'col_count' => $_{viewport}->object_action_count; + arg col_count => $_{viewport}->object_action_count; + }; + + implements fragment page_list { + render numbered_page_fragment + => over [ $_{pager_obj}->first_page .. $_{pager_obj}->last_page ]; + }; + + implements fragment numbered_page_fragment { + arg page_uri => event_uri { page => $_ }; + arg page_number => $_; + if ($_{pager_obj}->current_page == $_) { + render 'numbered_page_this_page'; + } else { + render 'numbered_page'; + } + }; + + implements fragment first_page { + arg page_uri => event_uri { page => $_{pager_obj}->first_page }; + arg page_name => 'First'; + render 'named_page'; + }; + + implements fragment last_page { + arg page_uri => event_uri { page => $_{pager_obj}->last_page }; + arg page_name => 'Last'; + render 'named_page'; + }; + + implements fragment next_page { + arg page_name => 'Next'; + if (my $page = $_{pager_obj}->next_page) { + arg page_uri => event_uri { page => $page }; + render 'named_page'; + } else { + render 'named_page_no_page'; + } + }; + + implements fragment previous_page { + arg page_name => 'Previous'; + if (my $page = $_{pager_obj}->previous_page) { + arg page_uri => event_uri { page => $page }; + render 'named_page'; + } else { + render 'named_page_no_page'; + } }; }; |