OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / assets / javascripts / editor.js.coffee
1 class Editor\r
2 @Editor = Editor\r
3 class Editor.EditorModule\r
4 class Editor.EditorModule.DockBase extends Backbone.View\r
5   \r
6   initialize: (options) ->\r
7     @parent = options.parent\r
8     @tabs = []\r
9   \r
10   add_tab: (tab, label, body) ->\r
11     @tabs.push tab\r
12     tab.label = label\r
13     tab.body = body\r
14     tab\r
15   \r
16   remove_tab: (index) ->\r
17     @tabs.splice(index, 1)\r
18   \r
19   root_item: () ->\r
20     @parent.root_item()\r
21   \r
22 class Editor.EditorModule.DockModule\r
23   \r
24 class Editor.EditorModule.DockModule.Tab extends Editor.EditorModule.DockBase\r
25   initialize: (options) ->\r
26     super(options)\r
27     @index = options.index\r
28     @name = options.name\r
29     @label = null\r
30     @body = null\r
31   \r
32   dom_id: () ->\r
33     console.log "no dom_id"\r
34   \r
35   dom_class: () ->\r
36     console.log "no dom_class"\r
37   \r
38 class Editor.EditorModule.DockModule.Bay extends Editor.EditorModule.DockModule.Tab\r
39   \r
40   initialize: (options) ->\r
41     super(options)\r
42   \r
43   dock: () ->\r
44     @parent\r
45   \r
46   root_item: () ->\r
47     @parent.root_item()\r
48   \r
49   dom_id: () ->\r
50     @parent.dom_id() + '-bay-' + @name\r
51   \r
52   dom_class: () ->\r
53     @parent.dom_class() + '-bay'\r
54   \r
55   dom_labels_class: () ->\r
56     @dom_class() + '-labels'\r
57   \r
58 class Editor.EditorModule.DockModule.SimpleBay extends Editor.EditorModule.DockModule.Bay\r
59   tagName: 'div'\r
60   \r
61   initialize: (options) ->\r
62     super(options)\r
63   \r
64 class Editor.EditorModule.DockModule.BoardBay extends Editor.EditorModule.DockModule.Bay\r
65   tagName: 'div'\r
66   \r
67   initialize: (options) ->\r
68     super(options)\r
69     @boards = null\r
70   \r
71   render: () ->\r
72     this.$el.html('')\r
73     @el.className = @body.dom_class()\r
74     rb = new Tag.RowBreak()\r
75     this.$el.append(rb.render().el)\r
76     this\r
77   \r
78   dom_labels_class: () ->\r
79     @dom_class() + "-labels"\r
80   \r
81   dom_bodys_class: () ->\r
82     @dom_class() + "-bodys"\r
83   \r
84 class Editor.EditorModule.DockModule.Board extends Editor.EditorModule.DockModule.Tab\r
85   \r
86   initialize: (options) ->\r
87     super(options)\r
88   \r
89   root_item: () ->\r
90     @parent.root_item()\r
91   \r
92   bay: () ->\r
93     @parent\r
94   \r
95   dock: () ->\r
96     @bay().dock()\r
97   \r
98   bay_index: () ->\r
99     @bay().index\r
100   \r
101   dom_id: () ->\r
102     @bay().dom_id() + '-board-' + @name\r
103   \r
104   dom_class: () ->\r
105     @bay().dom_class() + '-board'\r
106   \r
107   header_class: () ->\r
108     ""\r
109   \r
110 class Editor.EditorModule.DockModule.Bucket extends Backbone.View\r
111   \r
112   initialize: (options) ->\r
113     super(options)\r
114     @parent = options.parent\r
115   \r
116 class Editor.EditorModule.DockModule.FormBucket extends Editor.EditorModule.DockModule.Bucket\r
117   \r
118   initialize: (options) ->\r
119     super(options)\r
120     @form = options.form\r
121   \r
122   render: () ->\r
123     @form.render()\r
124   \r
125 class Editor.EditorModule.DockModule.TabModule\r
126   \r
127 class Editor.EditorModule.DockModule.TabModule.Label extends Backbone.View\r
128   \r
129   initialize: (options) ->\r
130     @parent = options.parent\r
131     @caption = options.caption\r
132   \r
133   root_item: () ->\r
134     @parent.root_item()\r
135   \r
136   index: () ->\r
137     @parent.index\r
138   \r
139   name: () ->\r
140     @parent.name\r
141   \r
142   dom_id: () ->\r
143     console.log "no dom_id"\r
144   \r
145   dom_class: () ->\r
146     console.log "no dom_class"\r
147   \r
148   body: () ->\r
149     @parent.body\r
150   \r
151 class Editor.EditorModule.DockModule.TabModule.Body extends Backbone.View\r
152   \r
153   initialize: (options) ->\r
154     @parent = options.parent\r
155   \r
156   root_item: () ->\r
157     @parent.root_item()\r
158   \r
159   index: () ->\r
160     @parent.index\r
161   \r
162   name: () ->\r
163     @parent.name\r
164   \r
165   label: () ->\r
166     @parent.label\r
167   \r
168   dom_id: () ->\r
169     console.log "no dom_id"\r
170   \r
171   dom_class: () ->\r
172     console.log "no dom_class"\r
173   \r
174 class Editor.EditorModule.DockModule.TabModule.BayLabel extends Editor.EditorModule.DockModule.TabModule.Label\r
175   tagName: 'li'\r
176   \r
177   bay: () ->\r
178     @parent\r
179   \r
180   dock: () ->\r
181     @bay().dock()\r
182   \r
183   dom_id: () ->\r
184     @bay().dom_id() + '-label'\r
185   \r
186   dom_class: () ->\r
187     @bay().dom_class() + '-label'\r
188   \r
189   render: () ->\r
190     this.$el.html('')\r
191     @el.className = @dom_class()\r
192     a = new Tag.A({attr: {href: '#' + @body().dom_id()}, content: @caption})\r
193     this.$el.html(a.render().el)\r
194     this\r
195   \r
196 class Editor.EditorModule.DockModule.TabModule.BayBody extends Editor.EditorModule.DockModule.TabModule.Body\r
197   \r
198   initialize: (options) ->\r
199     super(options)\r
200   \r
201   render: () ->\r
202     this.$el.html('')\r
203     this.$el.attr('id', @dom_id())\r
204     this\r
205   \r
206   bay: () ->\r
207     @parent\r
208   \r
209   dock: () ->\r
210     @bay().dock()\r
211   \r
212   dom_id: () ->\r
213     @bay().dom_id() + '-body'\r
214   \r
215   dom_class: () ->\r
216     @bay().dom_class() + '-body'\r
217   \r
218 class Editor.EditorModule.DockModule.TabModule.BoardLabel extends Editor.EditorModule.DockModule.TabModule.Label\r
219   tagName: 'li'\r
220   \r
221   initialize: (options) ->\r
222     super(options)\r
223   \r
224   board: () ->\r
225     @parent\r
226   \r
227   bay: () ->\r
228     @board().bay()\r
229   \r
230   dock: () ->\r
231     @bay().dock()\r
232   \r
233   element: () ->\r
234     @parent.element\r
235   \r
236   bay_name: () ->\r
237     bay().name\r
238   \r
239   dom_id: () ->\r
240     @board().dom_id() + '-label'\r
241   \r
242   dom_class: () ->\r
243     @board().dom_class() + '-label'\r
244   \r
245   face: () ->\r
246     linked_elements_tab = new Tag.A({\r
247       attr: {href: '#' + @board().body.dom_id() },\r
248       content: @element().element_face().render().el\r
249     })\r
250     this.$el.append(linked_elements_tab.render().el)\r
251     @destroy_button = new Editor.EditorModule.DestroyButton()\r
252     @listenTo(@destroy_button, 'destroy', @destroy)\r
253     this.$el.append(@destroy_button.render().el)\r
254   \r
255   render: () ->\r
256     this.$el.html('')\r
257     this.$el.attr('id', @dom_id())\r
258     this.$el.className = @dom_class()\r
259     @face()\r
260     this\r
261   \r
262   destroy: () ->\r
263     @trigger('destroy', @element())\r
264   \r
265 class Editor.EditorModule.DockModule.TabModule.BoardBody extends Editor.EditorModule.DockModule.TabModule.Body\r
266   board: () ->\r
267     @parent\r
268   \r
269   bay: () ->\r
270     @board().bay()\r
271   \r
272   dock: () ->\r
273     @bay().dock()\r
274   \r
275   dom_id: () ->\r
276     @board().dom_id() + '-body'\r
277   \r
278   dom_class: () ->\r
279     @board().dom_class() + '-body'\r
280   \r
281 class Editor.EditorModule.DestroyButton extends Backbone.View\r
282   tagName: 'button'\r
283   \r
284   render: () ->\r
285     this.$el.html('')\r
286     this.$el.button {\r
287       icons: {\r
288         primary: 'ui-icon-close', \r
289         secondary: null\r
290       }, \r
291       text: false\r
292     }\r
293     @delegateEvents({'click': @click})\r
294     this\r
295   \r
296   dom_id: () ->\r
297     @dom_id() + '-destroy_button'\r
298   \r
299   click: () ->\r
300     @trigger('destroy')\r
301   \r