class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.FormModule.FieldModule.HelperModule.Base\r
- tagName: 'select'\r
+ className: 'r-wrap'\r
+ \r
+ # wrapper\r
+ initialize: (options) ->\r
+ super(options)\r
+ @down = new Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Down({field: @field, helper: this})\r
+ @up = new Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Up({field: @field, helper: this})\r
+ @reset = new Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Reset({field: @field, helper: this})\r
+ @speech_balloon_template = new Pettanr.SpeechBalloonTemplate({\r
+ id: @field.item().get('speech_balloon_template_id')\r
+ })\r
+ @speech_balloon_template.fetch({cache: true}).done =>\r
+ @r_step = @_r_step()\r
\r
render: () ->\r
+ @attr = {\r
+ style: 'display: block'\r
+ }\r
+ this.$el.attr(@attr)\r
this.$el.html('')\r
+ this.$el.append(@down.render().el)\r
+ this.$el.append(@up.render().el)\r
+ this.$el.append(@reset.render().el)\r
+ this\r
+ \r
+ settings: () ->\r
+ @speech_balloon_template.parsed_settings()\r
+ \r
+ _r_step: () ->\r
+ settings = @settings()\r
+ settings['speech_balloon']['r_step']\r
+ \r
+ system_picture_id: (idx) ->\r
+ settings = @settings()\r
+ settings[idx]['balloon']['system_picture_id']\r
+ \r
+ # balloon r helper\r
+ \r
+ balloon_next_index: (d) ->\r
+ r_val = @field.val()\r
+ v = parseInt(r_val) + @r_step * d\r
+ tr = v % 360\r
+ tr = 360 + tr if tr < 0\r
+ offset = @r_step / 2.0\r
+ idx = Math.floor(((tr + offset) % 360) / @r_step)\r
+ if idx == 0\r
+ ir = 0\r
+ else\r
+ if v < 0\r
+ ir = Math.floor(idx * @r_step) - 360\r
+ else\r
+ ir = Math.floor(idx * @r_step)\r
+ @field.set(ir)\r
+ @field.tag.$el.val(ir)\r
+ idx\r
+ \r
+ balloon_index: () ->\r
+ v = parseInt(@field.val())\r
+ tr = v % 360\r
+ tr = 360 + tr if tr < 0\r
+ offset = @r_step / 2.0\r
+ idx = Math.floor(((tr + offset) % 360) / @r_step)\r
+ idx\r
+ \r
+ refresh_balloon: (idx) ->\r
+ sp_id = @system_picture_id(idx)\r
+ @field.item().set({\r
+ system_picture_id: sp_id\r
+ }, {silent: true})\r
+ @field.item().trigger('input:r')\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule\r
+class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Down extends Backbone.View\r
+ tagName: 'button'\r
+ className: 'r-down'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ @helper = options.helper\r
+ \r
+ render: () ->\r
+ this.$el.html('<')\r
this\r
\r
+ click: () -> \r
+ idx = @helper.balloon_next_index(-1)\r
+ @helper.refresh_balloon(idx)\r
+ @field.trigger('change')\r
+ false\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Up extends Backbone.View\r
+ tagName: 'button'\r
+ className: 'r-up'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ @helper = options.helper\r
+ \r
+ render: () ->\r
+ this.$el.html('>')\r
+ this\r
+ \r
+ click: () -> \r
+ idx = @helper.balloon_next_index(1)\r
+ @helper.refresh_balloon(idx)\r
+ @field.trigger('change')\r
+ false\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Reset extends Backbone.View\r
+ tagName: 'button'\r
+ className: 'r-reset'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ @helper = options.helper\r
+ \r
+ render: () ->\r
+ this.$el.html('reset')\r
+ this\r
+ \r
+ click: () -> \r
+ @field.tag.$el.val(0)\r
+ @field.trigger('change')\r
+ @helper.refresh_balloon(0)\r
+ false\r
+ \r