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