OSDN Git Service

fix editor event
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / dock.js.coffee
1 class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase\r
2   tagName: 'div'\r
3   className: 'dock'\r
4   \r
5   initialize: (options) ->\r
6     super(options)\r
7     @root_bay = new Editor.EditorModule.DockModule.RootBay({\r
8       parent: this, index: 0, name: 'panel'\r
9     })\r
10     @add_tab(\r
11       @root_bay, \r
12       new Editor.EditorModule.DockModule.TabModule.RootBayLabel({\r
13         parent: @root_bay, caption: 'panel'\r
14       }), \r
15       new Editor.EditorModule.DockModule.TabModule.RootBayBody({\r
16         parent: @root_bay\r
17       })\r
18     )\r
19     @element_bay = new Editor.EditorModule.DockModule.ElementBay({\r
20       parent: this, index: 1, name: 'elements'\r
21     })\r
22     @add_tab(\r
23       @element_bay, \r
24       new Editor.EditorModule.DockModule.TabModule.ElementBayLabel({\r
25         parent: @element_bay, caption: 'elements'\r
26       }), \r
27       new Editor.EditorModule.DockModule.TabModule.ElementBayBody({\r
28         parent: @element_bay\r
29       })\r
30     )\r
31     @scenario_bay = new Editor.EditorModule.DockModule.ScenarioBay({\r
32       parent: this, index: 2, name: 'scenario'\r
33     })\r
34     @add_tab(\r
35       @scenario_bay, \r
36       new Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel({\r
37         parent: @scenario_bay, caption: 'scenario'\r
38       }), \r
39       new Editor.EditorModule.DockModule.TabModule.ScenarioBayBody({\r
40         parent: @scenario_bay\r
41       })\r
42     )\r
43   \r
44   render: () ->\r
45     this.$el.html('')\r
46     l = _.map @tabs, (tab) ->\r
47       tab.label\r
48     labels = new Tag.Ul({contents: l, class_name: @dom_labels_class()})\r
49     this.$el.append(labels.render().el)\r
50     _.each @tabs, (tab) =>\r
51       this.$el.append(tab.render().el)\r
52     this\r
53   \r
54   add_element: (element) ->\r
55     @element_bay.add_element(element)\r
56   \r
57   editor: () ->\r
58     @parent\r
59   \r
60   dom_id: () ->\r
61     @editor().dom_id() + '-dock'\r
62   \r
63   dom_class: () ->\r
64     @editor().dom_class() + '-dock'\r
65   \r
66   dom_labels_class: () ->\r
67     @dom_class() + '-labels'\r
68   \r
69 class Editor.EditorModule.DockModule.RootBay extends Editor.EditorModule.DockModule.SimpleBay\r
70   \r
71   render: () ->\r
72     @body.render()\r
73   \r
74 class Editor.EditorModule.DockModule.TabModule.RootBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
75   \r
76 class Editor.EditorModule.DockModule.TabModule.RootBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
77   \r
78   initialize: (options) ->\r
79     super(options)\r
80     @form = new Locmare.Bucket.factory(\r
81       @root_item().item_name(), \r
82       @root_item(), \r
83       @mounted(), \r
84       'default', \r
85       @dock().editor().operators\r
86     )\r
87     @bucket = new Editor.EditorModule.DockModule.FormBucket({\r
88       parent: this, form: @form\r
89     })\r
90   \r
91   render: () ->\r
92     super()\r
93     @el.className = @bay().body.dom_class()\r
94     this.$el.html(@bucket.render().el)\r
95     this\r
96   \r
97   mounted: () ->\r
98     true\r
99   \r
100   dock: () ->\r
101     @parent.dock()\r
102   \r
103   root_item: () ->\r
104     @dock().root_item()\r
105   \r
106 class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.DockModule.BoardBay\r
107   \r
108   initialize: (options) ->\r
109     super(options)\r
110     @elements_tabs = new Editor.EditorModule.DockModule.ElementBay.ElementsTabs({\r
111     })\r
112   \r
113   add_element: (element) ->\r
114     index = element.get('z') - 1\r
115     tab = new Editor.EditorModule.DockModule.ElementBoard({\r
116       parent: this, index: index, name: element.item_name(), element: element\r
117     })\r
118     bb = new Editor.EditorModule.DockModule.TabModule.ElementBoardBody({parent: tab})\r
119     @add_tab(\r
120       tab, \r
121       new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({parent: tab, name: element.item_name()}), \r
122       bb\r
123     )\r
124     @elements_tabs.add_element_tab(tab)\r
125     @elements_tabs.$el.tabs('refresh')\r
126     bb.form\r
127   \r
128   add_new_tab: () ->\r
129   \r
130   render: () ->\r
131     this.$el.html('')\r
132     this.$el.attr('id', @body.dom_id())\r
133     this.$el.append(@elements_tabs.render().el)\r
134     @elements_tabs.$el.tabs()\r
135     this\r
136   \r
137   panel_body: () ->\r
138     @dock().editor().body\r
139   \r
140 class Editor.EditorModule.DockModule.ElementBay.ElementsTabs extends Backbone.View\r
141   tagName: 'div'\r
142   className: 'elements_tabs ui-tabs-vertical ui-helper-clearfix'\r
143   \r
144   initialize: (options) ->\r
145     super(options)\r
146     @inner_elements_tabs = new Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs({\r
147     })\r
148   \r
149   render: () ->\r
150     this.$el.html('')\r
151     this.$el.append(@inner_elements_tabs.render().$el)\r
152     this\r
153   \r
154   add_element_tab: (tab) ->\r
155     @inner_elements_tabs.add_label(tab.label)\r
156     this.$el.append(tab.body.render().$el)\r
157   \r
158 class Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs extends Backbone.View\r
159   tagName: 'ul'\r
160   \r
161   initialize: (options) ->\r
162     super(options)\r
163   \r
164   render: () ->\r
165     this.$el.html('')\r
166     this\r
167   \r
168   add_label: (label) ->\r
169     this.$el.append(label.render().$el)\r
170     label.add_label()\r
171   \r
172 class Editor.EditorModule.DockModule.TabModule.ElementBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
173   \r
174 class Editor.EditorModule.DockModule.TabModule.ElementBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
175   \r
176   render: () ->\r
177     @body.render()\r
178   \r
179 class Editor.EditorModule.DockModule.ElementBoard extends Editor.EditorModule.DockModule.Board\r
180   \r
181   initialize: (options) ->\r
182     super(options)\r
183     @element = options.element\r
184   \r
185   dom_id: () ->\r
186     super() + '-' + @element.get('id') + '-'  # use tab index\r
187   \r
188 class Editor.EditorModule.DockModule.TabModule.ElementBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
189   \r
190   render: () ->\r
191     super()\r
192     this.$el.removeClass('ui-corner-top')\r
193     this.$el.addClass('ui-corner-left')\r
194     this\r
195   \r
196   add_label: () ->\r
197     this.$el.attr('id', @dom_id())\r
198   \r
199 class Editor.EditorModule.DockModule.TabModule.ElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
200   \r
201   initialize: (options) ->\r
202     super(options)\r
203     @form = Locmare.Form.factory({\r
204       form_name: @element().item_name(), \r
205       item: @element(), \r
206       mounted: @mounted(), \r
207       submit: null, \r
208       operators: @dock().editor().operators,\r
209       action: '/' + @element().table_name() + '/' + Pettanr.to_s(@element().get('id'))\r
210     })\r
211   \r
212   render: () ->\r
213     this.$el.attr('id', @dom_id())\r
214     this.$el.html(@form.render().el)\r
215     this\r
216   \r
217   add_element: (element) ->\r
218     @form.add_element(element)\r
219   \r
220   mounted: () ->\r
221     true\r
222   \r
223   element: () ->\r
224     @parent.element\r
225   \r
226 class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.DockModule.BoardBay\r
227   \r
228   initialize: (options) ->\r
229     super(options)\r
230     i = 0\r
231     _.each @elements(), (element) =>\r
232       tab = new Editor.EditorModule.DockModule.ScenarioBoard({\r
233         parent: this, index: i, name: element.item_name(), element: element\r
234       })\r
235       @add_tab(\r
236         tab, \r
237         new Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel({parent: tab, caption: element.item_name()}), \r
238         new Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody({parent: tab})\r
239       )\r
240       i++\r
241   \r
242   render: () ->\r
243     this.$el.html('')\r
244     this.$el.attr('id', @body.dom_id())\r
245     elements_tabs = new Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs({\r
246       tabs: @tabs\r
247     })\r
248     this.$el.append(elements_tabs.render().el)\r
249     _.each @tabs, (tab) =>\r
250       this.$el.append(tab.body.render().el)\r
251     elements_tabs.$el.tabs()\r
252     this\r
253   \r
254   elements: () ->\r
255     @root_item().scenario_elements()\r
256   \r
257   class_name: () ->\r
258     "tsort-box"\r
259   \r
260 class Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs extends Backbone.View\r
261   tagName: 'ul'\r
262   className: 'tsort'\r
263   \r
264   initialize: (options) ->\r
265     super(options)\r
266     @tabs = options.tabs\r
267   \r
268   render: () ->\r
269     this.$el.html('')\r
270     _.each @tabs, (tab) =>\r
271       this.$el.append(tab.label.render().el)\r
272     this\r
273   \r
274 class Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
275   \r
276 class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
277   \r
278   initialize: (options) ->\r
279     super(options)\r
280   \r
281 class Editor.EditorModule.DockModule.ScenarioBoard extends Editor.EditorModule.DockModule.Board\r
282   \r
283   initialize: (options) ->\r
284     super(options)\r
285     @element = options.element\r
286   \r
287 class Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
288   \r
289   with_destroy_button: () ->\r
290     false\r
291   \r
292 class Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
293   \r
294   initialize: (options) ->\r
295     super(options)\r
296     @bucket = new Editor.EditorModule.DockModule.ScenarioBucket({\r
297       parent: this\r
298     })\r
299   \r
300 class Editor.EditorModule.DockModule.PriorityBay extends Editor.EditorModule.DockModule.BoardBay\r
301   \r
302   initialize: (options) ->\r
303     super(options)\r
304     i = 0\r
305     _.each @elements(), (element) =>\r
306       tab = new Editor.EditorModule.DockModule.PriorityBoard({\r
307         parent: this, index: i, name: element.item_name(), element: element\r
308       })\r
309       @add_tab(\r
310         tab, \r
311         new Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel({parent: tab, name: element.item_name()}), \r
312         new Editor.EditorModule.DockModule.TabModule.PriorityBoardBody({parent: tab})\r
313       )\r
314       i++\r
315   \r
316   render: () ->\r
317     this.$el.html('')\r
318     this.$el.attr('id', @body.dom_id())\r
319     elements_tabs = new Editor.EditorModule.DockModule.PriorityBay.PriorityTabs({\r
320       tabs: @tabs\r
321     })\r
322     this.$el.append(elements_tabs.render().el)\r
323     _.each @tabs, (tab) =>\r
324       this.$el.append(tab.body.render().el)\r
325     elements_tabs.$el.tabs()\r
326     this\r
327   \r
328   elements: () ->\r
329     @root_item().scenario_elements()\r
330   \r
331   class_name: () ->\r
332     "zsort-box"\r
333   \r
334 class Editor.EditorModule.DockModule.PriorityBay.PriorityTabs extends Backbone.View\r
335   tagName: 'ul'\r
336   className: 'zsort'\r
337   \r
338   initialize: (options) ->\r
339     super(options)\r
340     @tabs = options.tabs\r
341   \r
342   render: () ->\r
343     this.$el.html('')\r
344     _.each @tabs, (tab) =>\r
345       this.$el.append(tab.label.render().el)\r
346     this\r
347   \r
348 class Editor.EditorModule.DockModule.TabModule.PriorityBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
349   \r
350 class Editor.EditorModule.DockModule.TabModule.PriorityBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
351   \r
352   initialize: (options) ->\r
353     super(options)\r
354   \r
355 class Editor.EditorModule.DockModule.PriorityBoard extends Editor.EditorModule.DockModule.Board\r
356   \r
357   initialize: (options) ->\r
358     super(options)\r
359     @element = options.element\r
360   \r
361   mounted: () ->\r
362     false\r
363   \r
364 class Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
365   \r
366   with_destroy_button: () ->\r
367     false\r
368   \r
369 class Editor.EditorModule.DockModule.TabModule.PriorityBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
370   \r
371   initialize: (options) ->\r
372     super(options)\r
373     @bucket = new Editor.EditorModule.DockModule.PriorityBucket({\r
374       parent: this\r
375     })\r
376     \r
377 #    form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]\r
378 #    form = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted\r
379 #    bucket = Bucket.new self,form\r
380   \r
381 class Editor.EditorModule.DockModule.NewBay extends Editor.EditorModule.DockModule.BoardBay\r
382   \r
383 \r
384 class Editor.EditorModule.DockModule.TabModule.NewBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
385   \r
386 \r
387 class Editor.EditorModule.DockModule.TabModule.NewBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
388   \r
389   initialize: (options) ->\r
390     super(options)\r
391   \r
392 class Editor.EditorModule.DockModule.NewBoard extends Editor.EditorModule.DockModule.Board\r
393   \r
394 class Editor.EditorModule.DockModule.TabModule.NewBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
395   \r
396 class Editor.EditorModule.DockModule.TabModule.NewBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
397   \r
398   initialize: (options) ->\r
399     super(options)\r
400 #    form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]\r
401 #    form = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted\r
402 #    bucket = Bucket.new self,form\r
403   \r