X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FReaction%2FUI%2FWidget%2FAction.pm;h=2957317a1ed55e456104b376ef552fecb048d550;hb=9ac8f2c2b38ebf2f74930d7ac511b973a052272f;hp=c7e1e0487fa694537decdd167ff9261552f758e0;hpb=2f670e13aa8f30bbf6ba910f2d8ef97aa8a9e3e5;p=catagits%2FReaction.git diff --git a/lib/Reaction/UI/Widget/Action.pm b/lib/Reaction/UI/Widget/Action.pm index c7e1e04..2957317 100644 --- a/lib/Reaction/UI/Widget/Action.pm +++ b/lib/Reaction/UI/Widget/Action.pm @@ -2,46 +2,40 @@ package Reaction::UI::Widget::Action; use Reaction::UI::WidgetClass; -class Action is 'Reaction::UI::Widget::Object', which { - - #before fragment widget { - # arg form_id => $_{viewport}->location; - #}; - - #implements fragment field_list { - # render field => over $_{viewport}->ordered_fields; - #}; - - #implements fragment field { - # render 'viewport'; - #}; - - implements fragment ok_button_fragment { - if (grep { $_ eq 'ok' } $_{viewport}->accept_events) { - arg 'event_id' => event_id 'ok'; - arg 'label' => $_{viewport}->ok_label; - render 'ok_button'; - } - }; - - implements fragment apply_button_fragment { - if (grep { $_ eq 'apply' } $_{viewport}->accept_events) { - arg 'event_id' => event_id 'apply'; - arg 'label' => $_{viewport}->apply_label; - render 'apply_button'; - } - }; - - implements fragment cancel_button_fragment { - if (grep { $_ eq 'cancel' } $_{viewport}->accept_events) { - arg 'event_id' => event_id 'cancel'; - arg 'label' => $_{viewport}->cancel_label; - render 'cancel_button'; - } - }; +use namespace::clean -except => [ qw(meta) ]; +extends 'Reaction::UI::Widget::Object::Mutable'; +after fragment widget { + arg 'method' => $_{viewport}->method; }; +implements fragment ok_button_fragment { + if (grep { $_ eq 'ok' } $_{viewport}->accept_events) { + arg 'event_id' => event_id 'ok'; + arg 'label' => localized $_{viewport}->ok_label; + render 'ok_button'; + } +}; + +implements fragment apply_button_fragment { + if (grep { $_ eq 'apply' } $_{viewport}->accept_events) { + arg 'event_id' => event_id 'apply'; + arg 'label' => localized $_{viewport}->apply_label; + render 'apply_button'; + } +}; + +implements fragment cancel_button_fragment { + if (grep { $_ eq 'close' } $_{viewport}->accept_events) { + arg 'event_id' => event_id 'close'; + arg 'label' => localized $_{viewport}->close_label; + render 'cancel_button'; + } +}; + +__PACKAGE__->meta->make_immutable; + + 1; __END__; @@ -54,25 +48,11 @@ Reaction::UI::Widget::Action =head1 FRAGMENTS -=head2 widget - -Renders "header", "field_list", "buttons" and "footer" - -=head2 field_list - -Sequentially renders the C of the viewport - -=head2 buttons - -Additional variables available in topic hash: "message" - -=head2 header - -Content is a dummy value +=head2 ok_button_fragment -=head2 footer +=head2 apply_button_fragment -Content is a dummy value +=head2 cancel_button_fragment =head1 AUTHORS