gridview is so close. so close
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / GridView / Row.pm
1 package Reaction::UI::ViewPort::GridView::Row;
2
3 use Reaction::Class;
4
5 class Row is 'Reaction::UI::ViewPort::ObjectView', which {
6
7   around build_fields_for_type_Num => sub {
8     my ($orig, $self, $attr, $args) = @_;
9     $args->{Field}{$attr->name}{layout} = 'value/number'
10       unless( exists  $args->{Field}{$attr->name}         &&
11               exists  $args->{Field}{$attr->name}{layout} &&
12               defined $args->{Field}{$attr->name}{layout}
13             );
14     $orig->($self, $attr, $args);
15   };
16
17   around build_fields_for_type_Int => sub {
18     my ($orig, $self, $attr, $args) = @_;
19     $args->{Field}{$attr->name}{layout} = 'value/number'
20       unless( exists  $args->{Field}{$attr->name}         &&
21               exists  $args->{Field}{$attr->name}{layout} &&
22               defined $args->{Field}{$attr->name}{layout}
23             );
24     $orig->($self, $attr, $args);
25   };
26
27   around build_fields_for_type_Bool => sub {
28     my ($orig, $self, $attr, $args) = @_;
29     $args->{Field}{$attr->name}{layout} = 'value/boolean'
30       unless( exists  $args->{Field}{$attr->name}         &&
31               exists  $args->{Field}{$attr->name}{layout} &&
32               defined $args->{Field}{$attr->name}{layout}
33             );
34     $orig->($self, $attr, $args);
35   };
36
37
38   around build_fields_for_type_Str => sub {
39     my ($orig, $self, $attr, $args) = @_;
40     $args->{Field}{$attr->name}{layout} = 'value/string'
41       unless( exists  $args->{Field}{$attr->name}         &&
42               exists  $args->{Field}{$attr->name}{layout} &&
43               defined $args->{Field}{$attr->name}{layout}
44             );
45     $orig->($self, $attr, $args);
46   };
47
48   around build_fields_for_type_SimpleStr => sub {
49     my ($orig, $self, $attr, $args) = @_;
50     $args->{Field}{$attr->name}{layout} = 'value/string'
51       unless( exists  $args->{Field}{$attr->name}         &&
52               exists  $args->{Field}{$attr->name}{layout} &&
53               defined $args->{Field}{$attr->name}{layout}
54             );
55     $orig->($self, $attr, $args);
56   };
57
58   around build_fields_for_type_Enum => sub {
59     my ($orig, $self, $attr, $args) = @_;
60     $args->{Field}{$attr->name}{layout} = 'value/string'
61       unless( exists  $args->{Field}{$attr->name}         &&
62               exists  $args->{Field}{$attr->name}{layout} &&
63               defined $args->{Field}{$attr->name}{layout}
64             );
65     $orig->($self, $attr, $args);
66   };
67
68   around build_fields_for_type_DateTime => sub {
69     my ($orig, $self, $attr, $args) = @_;
70     $args->{Field}{$attr->name}{layout} = 'value/date_time'
71       unless( exists  $args->{Field}{$attr->name}         &&
72               exists  $args->{Field}{$attr->name}{layout} &&
73               defined $args->{Field}{$attr->name}{layout}
74             );
75     $orig->($self, $attr, $args);
76   };
77
78   around build_fields_for_type_ArrayRef => sub {
79     my ($orig, $self, $attr, $args) = @_;
80     return;
81     $args->{Field}{$attr->name}{layout} = 'value/list'
82       unless( exists  $args->{Field}{$attr->name}         &&
83               exists  $args->{Field}{$attr->name}{layout} &&
84               defined $args->{Field}{$attr->name}{layout}
85             );
86     $orig->($self, $attr, $args);
87   };
88
89   around build_fields_for_type_Reaction_InterfaceModel_Collection => sub {
90     my ($orig, $self, $attr, $args) = @_;
91     return;
92     $args->{Field}{$attr->name}{layout} = 'value/collection'
93       unless( exists  $args->{Field}{$attr->name}         &&
94               exists  $args->{Field}{$attr->name}{layout} &&
95               defined $args->{Field}{$attr->name}{layout}
96             );
97     $orig->($self, $attr, $args);
98   };
99
100   around build_fields_for_type_Reaction_InterfaceModel_Object => sub {
101     my ($orig, $self, $attr, $args) = @_;
102     return;
103     $args->{Field}{$attr->name}{layout} = 'value/related_object'
104       unless( exists  $args->{Field}{$attr->name}         &&
105               exists  $args->{Field}{$attr->name}{layout} &&
106               defined $args->{Field}{$attr->name}{layout}
107             );
108     $orig->($self, $attr, $args);
109   };
110
111 };
112
113 1;