r62507@cain (orig r402): groditi | 2007-11-14 18:33:11 +0000
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / DisplayField / RelatedObject.pm
CommitLineData
7adfd53f 1package Reaction::UI::ViewPort::DisplayField::RelatedObject;
2
3use Reaction::Class;
4use Scalar::Util 'blessed';
5use aliased 'Reaction::UI::ViewPort::DisplayField';
6
7class 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
261;