OSDN Git Service

fix anything
[pettanr/pettanr.git] / lib / local_manifest / form / field.rb
1 ManifestBase.require_modules "local_manifest/form/field/", 
2   %w|tag label helper|
3
4 module LocalManifest
5   module FormModule
6     class Field < ManifestBase::NameValues
7       include FieldModule
8       
9       attr :label, :tag, :helpers, :row_break
10       
11       def set_default
12         super
13         @values['label'] ||= {}
14         @values['tag'] ||= {}
15         @values['helpers'] ||= {}
16         @values['row_break'] ||= true
17       end
18       
19       def init
20         super
21         @label = ManifestBase.load_type_args self, @values, 'label', LabelFactory
22         @tag = ManifestBase.load_type_args self, @values, 'tag', TagFactory
23         @helpers = ManifestBase.load_type_name_args self, @values, 'helpers', HelperFactory
24         @row_break = @values['row_break']
25       end
26       
27       def part?
28         @part_name != nil 
29       end
30       
31       def form_field_name
32         form_name + '[' + @name + ']'
33       end
34       
35       def form_name
36         @parent.name
37       end
38       
39       def column_name
40         @name
41       end
42       
43       def model_name
44         form_name
45       end
46       
47       def form
48         @parent
49       end
50       
51     end
52     
53     class ElementField < Field
54     end
55     
56     class PartField < Field
57       attr :part_name
58       
59       def set_default
60         super
61         @values['part_name'] ||= @values['model_name']
62       end
63       
64       def init
65         super
66         @part_name = @values['part_name']
67       end
68       
69       def form_field_name
70         @model_name + '[' + @model_name + '_attributes][' + @column_name + ']'
71       end
72       
73     end
74     
75   end
76 end