OSDN Git Service

fix:error dlg
[pettanr/pettanr.git] / lib / editor / pool.rb
index ace50c3..8c60797 100644 (file)
@@ -12,26 +12,28 @@ module Editor
       
       # regist stored element
       def editize
-        self.register @root_item
-        @root_item.each_elements(self.name) do |element|
-          self.register element
-        end
+        @root_item.boosts 'post'
+        self.register nil, @root_item
+        editize_element @root_item
       end
       
-      def register item
-        @item.editor = @editor
-        parent_model = item.parent_model(@editor.name)
-        if parent_model
-          item.parent = find
+      def editize_element parent
+        parent.class.child_element_names.each do |element_name|
+          e = parent.__send__ element_name
+          e = [e] unless e.respond_to?(:each)
+          e.each do |element_item|
+            element_item.boosts 'post'
+            self.register parent, element_item
+            self.editize_element element_item
+          end
         end
+      end
+      
+      def register parent, item
+        item.extend Peta::Editize
+        item.editor = @editor
+        item.parent = parent if parent
         if item.new_record?
-          if parent_model
-            # element 
-            item.parent__send__ "build_#{parent_model.child_element_name(item.item_name)}"
-          else
-            # root 
-            
-          end
           item.pool_id = @index
           @index += 1
         else