OSDN Git Service

merge
[pettanr/pettanr.git] / lib / editor / editor.rb
1 require_dependency "editor/dock"
2 require_dependency "editor/dock/dock"
3 module Editor
4   class Editor
5     include EditorModule
6     cattr_accessor :eid
7     @@eid = 0
8     class Generator
9       def initialize editor
10         @editor = editor
11       end
12       
13       def root_item
14         @editor.root_item
15       end
16       
17       def template_dir
18         'templates/r/editor/'
19       end
20       
21       def template_file_name
22         'generator'
23       end
24       
25       def template_name
26         self.template_dir + self.template_file_name
27       end
28       
29     end
30     
31     attr_accessor :root_item, :dock, :generator, :operators
32     def initialize root_item, operators
33       @@eid += 1
34       @root_item = root_item
35       @operators = operators
36       @dock = self.new_dock
37       @pool = Pool.new self, @root_item
38       @generator = Generator.new self
39       @@eid = 0 if @@eid > 0x7fffff
40     end
41     
42     #InstanceMethods
43     
44     def name
45       'owner'
46     end
47     
48     def eid
49       @@eid
50     end
51     
52     def new_dock
53       Dock.new self
54     end
55     
56     def template_dir
57       'templates/r/editor/'
58     end
59     
60     def template_file_name
61       'editor'
62     end
63     
64     def template_name
65       self.template_dir + self.template_file_name
66     end
67     
68     def register
69       @root_item.editor = self
70       @root_item.each_elements(self.name) do |element|
71         element.editor = self
72         element.parent = @root_item
73       end
74     end
75     
76     def eid
77       'editor-' + @@eid.to_s
78     end
79     
80     def dom_id
81       'editor-' + @root_item.id.to_s
82     end
83     
84     def dom_class
85       'editor'
86     end
87     
88     def render view
89       @docks.map {|element| 
90         ElementTab.new self, element
91       }
92     end
93   end
94   
95 end