r23441@martha (orig r923): groditi | 2008-10-23 22:00:04 -0400
[catagits/Reaction.git] / lib / Reaction / UI / Widget / Action.pm
index c7e1e04..2957317 100644 (file)
@@ -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<ordered_fields> 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