OSDN Git Service

c1827b66dd725084b9da562bd40ce72403b291ad
[pettanr/pettanr.git] / app / assets / javascripts / views / ground_colors / new_element.js.coffee
1 class Pettanr.Views.GroundColor.NewElement extends Backbone.View\r
2   tagName: 'div'\r
3   className: 'new-element-body'\r
4   \r
5   initialize: (options) ->\r
6     @parent = options.parent\r
7     @target_model = options.target_model\r
8     @pick_model = @target_model.pick_model()\r
9   \r
10   clear: () ->\r
11     this.$el.html('new or inspire')\r
12     this\r
13   \r
14   render: (form) ->\r
15     this.$el.html('')\r
16     this.$el.append(@form.render().el)\r
17     this\r
18   \r
19   pick: (item) ->\r
20     if item.item_name() == @target_model.item_name()\r
21       # Inspire\r
22       new_item = new @target_model(item.attributes)\r
23     else if @target_model.is_traceable(item.item_name())\r
24       # Trace\r
25       n = @target_model['trace_from_' + item.item_name()]\r
26       n()\r
27     else if item.item_name() == @target_model.pick_item_name()\r
28       # Pick\r
29       model = @target_model.pick_model()\r
30       new_item = new model()\r
31     @dialog().stop()\r
32     @set_form(new_item)\r
33     @trigger('pick', new_item)\r
34   \r
35   set_form: (item) ->\r
36     @form = Locmare.Form.factory({\r
37       form_name: item.item_name(), \r
38       use_name: 'default' \r
39       item: item, \r
40       element_form: true, \r
41       submit: null, \r
42     })\r
43   \r
44   dock: () ->\r
45     @parent.dock()\r
46   \r
47   editor: () ->\r
48     @dock().editor()\r
49   \r
50   dialog: () ->\r
51     @editor().dialog\r
52   \r