OSDN Git Service

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