OSDN Git Service

add bucket
[pettanr/pettanr.git] / app / assets / javascripts / locmare / form / field / helper / tail_angle.js.coffee
1 class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.FormModule.FieldModule.HelperModule.Base\r
2   className: 'r-wrap'\r
3   \r
4   # wrapper\r
5   initialize: (options) ->\r
6     super(options)\r
7     @down = new Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Down({field: @field, helper: this})\r
8     @up = new Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Up({field: @field, helper: this})\r
9     @reset = new Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Reset({field: @field, helper: this})\r
10     @speech_balloon_template = new Pettanr.SpeechBalloonTemplate({\r
11       id: @field.item().get('speech_balloon_template_id')\r
12     })\r
13     _this = this\r
14     @speech_balloon_template.fetch().done ->\r
15       _this.r_step = _this._r_step()\r
16   \r
17   render: () ->\r
18     @attr = {\r
19       style: 'display: block'\r
20     }\r
21     this.$el.attr(@attr)\r
22     this.$el.html('')\r
23     this.$el.append(@down.render().el)\r
24     this.$el.append(@up.render().el)\r
25     this.$el.append(@reset.render().el)\r
26     this\r
27   \r
28   settings: () ->\r
29     @speech_balloon_template.parsed_settings()\r
30   \r
31   _r_step: () ->\r
32     settings = @settings()\r
33     settings['speech_balloon']['r_step']\r
34   \r
35   system_picture_id: (idx) ->\r
36     settings = @settings()\r
37     settings[idx]['balloon']['system_picture_id']\r
38   \r
39   # balloon r helper\r
40   \r
41   balloon_next_index: (d)  ->\r
42     r_val = @field.val()\r
43     v = parseInt(r_val) + @r_step * d\r
44     tr = v % 360\r
45     tr = 360 + tr if tr < 0\r
46     offset = @r_step / 2.0\r
47     idx = Math.floor(((tr + offset) % 360) / @r_step)\r
48     if idx == 0\r
49       ir = 0\r
50     else\r
51       if v < 0\r
52         ir = Math.floor(idx * @r_step) - 360\r
53       else\r
54         ir = Math.floor(idx * @r_step)\r
55     @field.set(ir)\r
56     @field.tag.$el.val(ir)\r
57     idx\r
58   \r
59   balloon_index: ()  ->\r
60     v = parseInt(@field.val())\r
61     tr = v % 360\r
62     tr = 360 + tr if tr < 0\r
63     offset = @r_step / 2.0\r
64     idx = Math.floor(((tr + offset) % 360) / @r_step)\r
65     idx\r
66   \r
67   refresh_balloon: (idx)  ->\r
68     return\r
69     sp_id = @system_picture_id(idx)\r
70     fn = '/system_pictures/' + String(sp_id) + '.png'\r
71     ofn = bln.attr('src')\r
72     if fn == ofn\r
73     else\r
74       if bln.attr('src')\r
75         bln.attr('src', fn) \r
76         $(balloon_trace + 'system_picture_id').val(sp_id)\r
77   \r
78 class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule\r
79 class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Down extends Backbone.View\r
80   tagName: 'button'\r
81   className: 'r-down'\r
82   events: {\r
83     'click': 'click'\r
84   }\r
85   \r
86   initialize: (options) ->\r
87     @field = options.field\r
88     @helper = options.helper\r
89   \r
90   render: () ->\r
91     this.$el.html('<')\r
92     this\r
93   \r
94   click: () -> \r
95     idx = @helper.balloon_next_index(-1)\r
96     @helper.refresh_balloon(idx)\r
97     false\r
98     \r
99 class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Up extends Backbone.View\r
100   tagName: 'button'\r
101   className: 'r-up'\r
102   events: {\r
103     'click': 'click'\r
104   }\r
105   \r
106   initialize: (options) ->\r
107     @field = options.field\r
108     @helper = options.helper\r
109   \r
110   render: () ->\r
111     this.$el.html('>')\r
112     this\r
113   \r
114   click: () -> \r
115     idx = @helper.balloon_next_index(1)\r
116     @helper.refresh_balloon(idx)\r
117     false\r
118   \r
119 class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Reset extends Backbone.View\r
120   tagName: 'button'\r
121   className: 'r-reset'\r
122   events: {\r
123     'click': 'click'\r
124   }\r
125   \r
126   initialize: (options) ->\r
127     @field = options.field\r
128     @helper = options.helper\r
129   \r
130   render: () ->\r
131     this.$el.html('reset')\r
132     this\r
133   \r
134   click: () -> \r
135     @field.tag.$el.val(0)\r
136     @helper.refresh_balloon(0)\r
137     false\r
138   \r