OSDN Git Service

element
[pettanr/pettanr.git] / lib / editor / pool.rb
index fbb750c..ace50c3 100644 (file)
@@ -1,12 +1,49 @@
 module Editor
   module EditorModule
     class Pool
-      attr_accessor :root_item, :tabs
-      def initialize root_item
+      attr_accessor :editor, :root_item, :pool, :index
+      def initialize editor, root_item
+        @editor = editor
         @root_item = root_item
-        @root_item.each_elements('panel') do |element|
-          element.pool = self
+        @pool = {}
+        @index = 1
+        self.editize
+      end
+      
+      # regist stored element
+      def editize
+        self.register @root_item
+        @root_item.each_elements(self.name) do |element|
+          self.register element
+        end
+      end
+      
+      def register item
+        @item.editor = @editor
+        parent_model = item.parent_model(@editor.name)
+        if parent_model
+          item.parent = find
+        end
+        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
+          item.pool_id = item.id
         end
+        @pool[item.item_name] ||= {'stored' => {}, 'new'  => {}}
+        @pool[item.item_name][item.dom_pool_type] ||= {}
+        @pool[item.item_name][item.dom_pool_type][item.pool_id] = item
+      end
+      
+      def unregister item
+        
       end
       
     end