false
end
+ def has_part?
+ false
+ end
+
+ def parts
+ @parts ||= []
+ end
+
+ def new_index
+ @new_index
+ end
+
+ def new_index= v
+ @new_index = v
+ end
+
+ def new_panel
+ @new_panel
+ end
+
+ def new_panel= v
+ @new_panel = v
+ end
+
+ def get_panel
+ self.panel || @new_panel
+ end
+
+ def tag_id c = nil
+ 'panel' + self.tag_panel_id + self.tag_element_type + self.tag_element_id + c.to_s
+ end
+
+ def field_tag_id f
+ self.tag_id + f.to_s
+ end
+
+ def tag_panel_id
+ self.get_panel.new_record? ? '0' : self.get_panel.id.to_s
+ end
+
+ def tag_element_id
+ self.new_record? ? '0' : self.id.to_s
+ end
+
+ def tag_element_type
+ raise
+ end
+
+ def tag_new_index
+ self.new_index.to_s
+ end
+
def path_name with_engine = false
self.class.path_name(with_engine)
end
self.path_name(with_engine) + '/element_face'
end
+ def tag_attributes column = nil, opt = {}
+ {
+ :id => self.field_tag_id(column), :panel_id => self.tag_panel_id,
+ :element_id => self.tag_element_id, :element_type => self.tag_element_type
+ }.merge(opt)
+ end
+
+ def field_tag_attributes column, no_attr, opt = {}
+ self.tag_attributes(column).merge(
+ {:column => column, :new_index => self.tag_new_index, :no_attr => no_attr}
+ ).merge(opt)
+ end
+
+ #render element by body
+ def any_tag_attributes name = nil, opt = {}
+ r = self.tag_attributes(name)
+ r.merge!(
+ {:new_index => self.tag_new_index}
+ ) if self.new_index
+ r.merge(opt)
+ end
+
+ def tag_attr column = nil, opt = {}
+ self.tag_attributes(column, opt).to_attr
+ end
+
+ def field_tag_attr column, no_attr, opt = {}
+ self.field_tag_attributes(column, no_attr, opt).to_attr
+ end
+
+ def any_tag_attr name = nil, opt = {}
+ self.any_tag_attributes(name, opt).to_attr
+ end
+
end
end