--- /dev/null
+require_dependency "locmare/form/field/label"
+require_dependency "locmare/form/field/tag"
+require_dependency "locmare/form/field/helper"
+module Locmare
+ module FormModule
+ class Field
+ include FieldModule
+ attr :form, :field_name, :field_manifest,
+ :label, :tag, :helpers, :options
+ def initialize form, field_name, field_manifest
+ @form = form
+ @field_name = field_name
+ @field_manifest = field_manifest
+ @label = LabelFactory.factory self, @field_manifest.label
+ @tag = TagFactory.factory self, @field_manifest.tag
+ @helpers = {}
+ @field_manifest.helpers.each {|helper_name, helper_manifest|
+ @helpers[helper_name] = HelperFactory.factory self, helper_manifest
+ }
+ @options = {'data-model' => @field_manifest.model_name}
+ end
+
+ def mounted
+ @form.mounted ? 0 : 1
+ end
+
+ def mount_option
+ {'mount' => self.mounted}
+ end
+
+ def item
+ @form.item
+ end
+
+ def value
+ self.item.attributes[@field_manifest.column_name]
+ end
+
+ def options tag_options = {}
+ self.item.field_tag_attributes(@field_manifest.column_name, tag_options).merge(self.mount_option)
+ end
+
+ def form_field_name
+ @field_manifest.form_field_name
+ end
+
+ def form_name
+ @form.form_name
+ end
+
+ def template_dir
+ @form.template_dir + 'field/'
+ end
+
+ def template_file_name
+ @field_manifest.type
+ end
+
+ def template_name
+ self.template_dir + self.template_file_name
+ end
+
+ def row_break_template_dir
+ @form.template_dir + 'row_break/'
+ end
+
+ def row_break_template_file_name
+ if @field_manifest.row_break
+ 'br'
+ else
+ 'no_break'
+ end
+ end
+
+ def row_break_template_name
+ self.row_break_template_dir + self.row_break_template_file_name
+ end
+
+ end
+ end
+end