OSDN Git Service

element
[pettanr/pettanr.git] / lib / editor / pool.rb
1 module Editor
2   module EditorModule
3     class Pool
4       attr_accessor :editor, :root_item, :pool, :index
5       def initialize editor, root_item
6         @editor = editor
7         @root_item = root_item
8         @pool = {}
9         @index = 1
10         self.editize
11       end
12       
13       # regist stored element
14       def editize
15         self.register @root_item
16         @root_item.each_elements(self.name) do |element|
17           self.register element
18         end
19       end
20       
21       def register item
22         @item.editor = @editor
23         parent_model = item.parent_model(@editor.name)
24         if parent_model
25           item.parent = find
26         end
27         if item.new_record?
28           if parent_model
29             # element 
30             item.parent__send__ "build_#{parent_model.child_element_name(item.item_name)}"
31           else
32             # root 
33             
34           end
35           item.pool_id = @index
36           @index += 1
37         else
38           item.pool_id = item.id
39         end
40         @pool[item.item_name] ||= {'stored' => {}, 'new'  => {}}
41         @pool[item.item_name][item.dom_pool_type] ||= {}
42         @pool[item.item_name][item.dom_pool_type][item.pool_id] = item
43       end
44       
45       def unregister item
46         
47       end
48       
49     end
50     
51   end
52 end