OSDN Git Service

fix form
[pettanr/pettanr.git] / lib / locmare / form / extend_field.rb
1 module Locmare
2   module FormModule
3     class ExtendField
4       include FieldModule
5       attr :form, :field_name, :field_manifest, 
6         :label, :tag, :helpers, :options
7       def initialize form, field_name, field_manifest
8         @form = form
9         @field_name = field_name
10         @field_manifest = field_manifest
11         @label = LabelFactory.factory self, @field_manifest.label
12         @tag = TagFactory.factory self, @field_manifest.tag
13         @helpers = {}
14         @field_manifest.helpers.each {|helper_name, helper_manifest|
15           @helpers[helper_name] = HelperFactory.factory self, helper_manifest
16         }
17         @options = {'data-model' => @field_manifest.model_name}
18       end
19       
20       def mounted
21         @form.mounted ? 0 : 1
22       end
23       
24       def mount_option
25         {'mount' => self.mounted}
26       end
27       
28       def item
29         @form.item
30       end
31       
32       def value
33         self.item.attributes[@field_manifest.column_name]
34       end
35       
36       def options tag_options = {}
37         tag_options
38       end
39       
40       def form_field_name
41         @field_manifest.form_field_name
42       end
43       
44       def form_name
45         @form.form_name
46       end
47       
48       def template_dir
49         @form.template_dir + 'field/'
50       end
51       
52       def template_file_name
53         'extend'
54       end
55       
56       def template_name
57         self.template_dir + self.template_file_name
58       end
59       
60       def template_option
61         {:field => self}
62       end
63       
64       def row_break_template_dir
65         @form.template_dir + 'row_break/'
66       end
67       
68       def row_break_template_file_name
69         if @field_manifest.row_break
70           'br'
71         else
72           'no_break'
73         end
74       end
75       
76       def row_break_template_name
77         self.row_break_template_dir + self.row_break_template_file_name
78       end
79       
80     end
81   end
82 end