more Widget updates. this breaks old-style templates, also changed how VPs behave...
[catagits/Reaction.git] / lib / Reaction / UI / Widget / Field.pm
1 package Reaction::UI::Widget::Field;
2
3 use Reaction::UI::WidgetClass;
4
5 class Field, which {
6
7   has id   => (isa => 'Str', is => 'ro', lazy_build => 1);
8   has name => (isa => 'Str', is => 'ro', lazy_build => 1);
9
10   implements build_id   => as { shift->viewport->event_id_for('value'); };
11   implements build_name => as { shift->viewport->event_id_for('value'); };
12
13   widget renders [qw/label field message/
14                   => { id       => func('self', 'id'),
15                        name     => func('self', 'name'),
16                        viewport => func('self', 'viewport'),  }
17                  ];
18
19   label   renders [ string { $_{viewport}->label   }, ];
20   message renders [ string { $_{viewport}->message }, ];
21
22   field  renders [ string { $_{viewport}->value },  ];
23
24 };
25
26 1;
27