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=f55726c3ceb7f65ff94be7cbb7876916e0f46e00;hpb=cf272446849d14dbd596b658243a41a5abb49ca6;p=catagits%2FReaction.git diff --git a/lib/Reaction/UI/Widget/Action.pm b/lib/Reaction/UI/Widget/Action.pm index f55726c..2957317 100644 --- a/lib/Reaction/UI/Widget/Action.pm +++ b/lib/Reaction/UI/Widget/Action.pm @@ -2,38 +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 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 'close' } $_{viewport}->accept_events) { - arg 'event_id' => event_id 'close'; - arg 'label' => $_{viewport}->close_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__;