It is starting to look like this may actually work after all. Listview is the only...
[catagits/Reaction.git] / lib / Reaction / UI / Widget / Field / ChooseMany.pm
1 package Reaction::UI::Widget::Field::ChooseMany;
2
3 use Reaction::UI::WidgetClass;
4
5 class ChooseMany is 'Reaction::UI::Widget::Field', which {
6
7   field renders [qw/available_values action_buttons selected_values current_values/];
8
9   current_values renders [ hidden_value over func('viewport', 'current_value_choices')  ];
10   hidden_value   renders [ string { $_->{value} } ];
11
12   available_values renders [ option over func('viewport', 'available_value_choices') ];
13   selected_values  renders [ option over func('viewport', 'current_value_choices')   ];
14   option renders [string {"DUMMY"}], { v_value => sub {$_->{value}}, v_name => sub {$_->{name}} };
15   action_buttons renders [ string {"DUMMY"} ];
16
17 };
18
19 1;
20
21 __END__;
22
23 =head1 NAME
24
25 Reaction::UI::Widget::Field::ChooseMany
26
27 =head1 DESCRIPTION
28
29 See L<Reaction::UI::Widget::Field>
30
31 This needs a refactor to not be tied to a dual select box, but ENOTIME
32
33 =head1 FRAGMENTS
34
35 =head2 field
36
37 renders C<available_values>, C<action_buttons>, C<selected_values> and C<current_values>
38
39 =head2 current values
40
41 renders the viewport's current_value_choices over hidden_value
42
43 =head2 hidden_value
44
45 C<content> is the value of the current choice
46
47 =head2 available_value
48
49 rendersthe viewport's current_available_value_choices over the option fragment
50
51 =head2 selected_value
52
53 rendersthe viewport's current_selected_value_choices over the option fragment
54
55 =head2 option
56
57 C<content> is a dummy value but C<v_value> and C<v_name> are both set.
58
59 =head1 AUTHORS
60
61 See L<Reaction::Class> for authors.
62
63 =head1 LICENSE
64
65 See L<Reaction::Class> for the license.
66
67 =cut