Commit | Line | Data |
7adfd53f |
1 | package Reaction::UI::ViewPort::DisplayField::RelatedObject; |
2 | |
3 | use Reaction::Class; |
4 | use Scalar::Util 'blessed'; |
5 | use aliased 'Reaction::UI::ViewPort::DisplayField'; |
6 | |
7 | class RelatedObject is DisplayField, which { |
8 | |
6ab43711 |
9 | #has '+layout' => (default => 'displayfield/value_string'); |
7adfd53f |
10 | |
11 | has value_string => (isa => 'Str', is => 'ro', lazy_build => 1); |
12 | |
13 | has value_map_method => ( |
14 | isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' }, |
15 | ); |
16 | |
89939ff9 |
17 | implements _build_value_string => as { |
7adfd53f |
18 | my $self = shift; |
19 | my $meth = $self->value_map_method; |
20 | my $value = $self->value; |
89939ff9 |
21 | return blessed($value) ? $value->$meth : $value; |
7adfd53f |
22 | }; |
23 | |
24 | }; |
25 | |
26 | 1; |