OSDN Git Service

fix editor's speechballoon event
authoryasushiito <yas@pen-chan.jp>
Fri, 9 Jan 2015 02:31:44 +0000 (11:31 +0900)
committeryasushiito <yas@pen-chan.jp>
Fri, 9 Jan 2015 02:31:44 +0000 (11:31 +0900)
app/assets/javascripts/editor/panel_editor.js.coffee
app/assets/javascripts/local_manifest/form/field.js.coffee
app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee
app/assets/javascripts/views/balloons/element.js.coffee
app/assets/javascripts/views/speech_balloons/element.js.coffee
app/assets/javascripts/views/speeches/element.js.coffee

index 0e44e52..a87e9f1 100644 (file)
@@ -12,7 +12,8 @@ class Editor.PanelEditor extends Backbone.View
     })\r
     @dock = new Editor.PanelEditor.Dock({parent: this})\r
     @credits = new Pettanr.Views.Panel.Show.Credits({pictures: {}})\r
-    _.each @panel.zorderd_elements(), (element) =>\r
+    list = @panel.zorderd_elements()\r
+    _.each list, (element) =>\r
       element.fetch({cache: true}).done =>\r
         @add_element(element)\r
     #@dock.add_new_tab()\r
index 55f37f5..f0a7fba 100644 (file)
@@ -5,7 +5,7 @@ class LocalManifest.FormModule.Field extends ManifestBase.NameValues
     @values['label'] ||= {}\r
     @values['tag'] ||= {}\r
     @values['helpers'] ||= {}\r
-    @values['row_break'] ||= true\r
+    # @values['row_break'] ||= true # default false. only set true\r
     \r
   init: () ->\r
     super()\r
index ccc6687..8cd1f1a 100644 (file)
@@ -37,7 +37,7 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.Form
   \r
   # balloon r helper\r
   \r
-  balloon_next_index: (d)  ->\r
+  balloon_next_index: (d) ->\r
     r_val = @field.val()\r
     v = parseInt(r_val) + @r_step * d\r
     tr = v % 360\r
@@ -55,7 +55,7 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.Form
     @field.tag.$el.val(ir)\r
     idx\r
   \r
-  balloon_index: ()  ->\r
+  balloon_index: () ->\r
     v = parseInt(@field.val())\r
     tr = v % 360\r
     tr = 360 + tr if tr < 0\r
@@ -63,16 +63,12 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.Form
     idx = Math.floor(((tr + offset) % 360) / @r_step)\r
     idx\r
   \r
-  refresh_balloon: (idx)  ->\r
-    return\r
+  refresh_balloon: (idx) ->\r
     sp_id = @system_picture_id(idx)\r
-    fn = '/system_pictures/' + String(sp_id) + '.png'\r
-    ofn = bln.attr('src')\r
-    if fn == ofn\r
-    else\r
-      if bln.attr('src')\r
-        bln.attr('src', fn) \r
-        $(balloon_trace + 'system_picture_id').val(sp_id)\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
index 8844eed..0344409 100644 (file)
@@ -1,6 +1,9 @@
 class Pettanr.Views.Balloon.Element extends Backbone.View\r
   tagName: 'img'\r
   className: 'pettanr-balloon'\r
+  events: {\r
+    'ready:picture': 'set_style'\r
+  }\r
   \r
   initialize: (options) ->\r
     @element = options.element\r
@@ -8,17 +11,17 @@ class Pettanr.Views.Balloon.Element extends Backbone.View
     @spot = options.spot\r
     @speech_balloon = options.parent\r
     @system_picture = @element.system_picture()\r
-    @system_picture.fetch({cache: true}).done =>\r
-      @render()\r
   \r
   clear: () ->\r
+    @system_picture.fetch({cache: true}).done =>\r
+      @render()\r
     this\r
   \r
   render: () ->\r
-    @restyle()\r
+    @set_style()\r
     this\r
   \r
-  restyle: () ->\r
+  set_style: () ->\r
     attr = {\r
       src: @system_picture.r_url(), \r
       alt: @element.get('caption'),\r
index 5be87e5..1ad28a9 100644 (file)
@@ -1,6 +1,10 @@
 class Pettanr.Views.SpeechBalloon.Element extends Backbone.View\r
   tagName: 'div'\r
   className: 'pettanr-comic-balloon'\r
+  events: {\r
+    'ready:balloon': 'ready_balloon'\r
+    'ready:speech': 'ready_speech'\r
+  }\r
   \r
   initialize: (options) ->\r
     @element = options.element\r
@@ -17,37 +21,43 @@ class Pettanr.Views.SpeechBalloon.Element extends Backbone.View
     switch element.item_name()\r
       when 'balloon'\r
         @balloon = element\r
-        @set_style()\r
-        klass = @balloon_class()\r
-        view = new klass({\r
-          parent: this, \r
-          element: element, \r
-          root: @root,\r
-          spot: @spot\r
-        })\r
-        this.$el.append(view.clear().el)\r
+        @ready_balloon()\r
+        view = @balloon_view\r
       when 'speech'\r
         @speech = element\r
-        klass = @speech_class()\r
-        view = new klass({\r
-          parent: this, \r
-          element: element, \r
-          root: @root,\r
-          spot: @spot\r
-        })\r
-        this.$el.append(view.render().el)\r
+        @ready_speech()\r
+        view = @speech_view\r
     view\r
   \r
-  render: () ->\r
+  ready_balloon: () ->\r
     @set_style()\r
+    klass = @balloon_class()\r
+    @balloon_view = new klass({\r
+      parent: this, \r
+      element: @balloon, \r
+      root: @root,\r
+      spot: @spot\r
+    })\r
+    this.$el.append(@balloon_view.clear().el)\r
+    @balloon_view\r
+  \r
+  ready_speech: () ->\r
+    klass = @speech_class()\r
+    @speech_view = new klass({\r
+      parent: this, \r
+      element: @speech, \r
+      root: @root,\r
+      spot: @spot\r
+    })\r
+    this.$el.append(@speech_view.render().el)\r
+    @speech_view\r
+  \r
+  render: () ->\r
     this.$el.html('')\r
     _.each @views, (view) =>\r
       this.$el.append(view.clear().el)\r
     this\r
   \r
-  restyle: () ->\r
-    @set_style()\r
-  \r
   set_style: () ->\r
     attr = {style: Pettanr.to_style(@style())}\r
     this.$el.attr(attr)\r
@@ -78,20 +88,22 @@ class Pettanr.Views.SpeechBalloon.Element.Edit extends Pettanr.Views.SpeechBallo
     @views = []  # elements collect by dock\r
   \r
   set_style: () ->\r
-    if @balloon\r
-      super()\r
-      @listenTo(@balloon, 'input:x', @restyle)\r
-      @listenTo(@balloon, 'input:y', @restyle)\r
-      @listenTo(@balloon, 'input:width', @restyle)\r
-      @listenTo(@balloon, 'input:height', @restyle)\r
-      bln = @balloon\r
-      this.$el.draggable {\r
-        stop: (event, ui) ->\r
-          left = $(@).position().left\r
-          top = $(@).position().top\r
-          bln.set({x: left, y: top}, {silent: true})\r
-          bln.trigger('move')\r
-      }\r
+    super()\r
+    \r
+  ready_balloon: () ->\r
+    super()\r
+    @listenTo(@balloon, 'input:x', @set_style)\r
+    @listenTo(@balloon, 'input:y', @set_style)\r
+    @listenTo(@balloon, 'input:width', @set_style)\r
+    @listenTo(@balloon, 'input:height', @set_style)\r
+    bln = @balloon\r
+    this.$el.draggable {\r
+      stop: (event, ui) ->\r
+        left = Math.floor($(@).position().left)\r
+        top = Math.floor($(@).position().top)\r
+        bln.set({x: left, y: top}, {silent: true})\r
+        bln.trigger('move')\r
+    }\r
   \r
   active: () ->\r
     $('.ui-resizable-handle', this.el).map ->\r
index dbb2ab5..443622f 100644 (file)
@@ -6,7 +6,8 @@ class Pettanr.Views.Speech.Element extends Backbone.View
     @element = options.element\r
     @root = options.root\r
     @spot = options.spot\r
-    @speech_balloon = options.parent\r
+    @parent = options.parent\r
+    @listenTo(@parent, 'ready:balloon', @set_style)\r
     c = @inner_class()\r
     @inner = new c({\r
       element: @element\r
@@ -16,14 +17,17 @@ class Pettanr.Views.Speech.Element extends Backbone.View
     @render()\r
   \r
   render: () ->\r
-    attr = {style: Pettanr.to_style(@style())}\r
-    this.$el.attr(attr)\r
+    @set_style()\r
     this.$el.html(@inner.render().el)\r
     this\r
   \r
   add_element: (element) ->\r
     null\r
   \r
+  set_style: () ->\r
+    attr = {style: Pettanr.to_style(@style())}\r
+    this.$el.attr(attr)\r
+  \r
   style: () ->\r
     {\r
       top: Pettanr.to_s(@element.get('y')) + '%', \r
@@ -44,11 +48,11 @@ class Pettanr.Views.Speech.Element.Inner extends Backbone.View
     @element = options.element\r
   \r
   render: () ->\r
-    @restyle()\r
+    @set_style()\r
     this.$el.html(@element.scenario())\r
     this\r
   \r
-  restyle: () ->\r
+  set_style: () ->\r
     attr = {style: Pettanr.to_style(@style())}\r
     this.$el.attr(attr)\r
   \r
@@ -66,11 +70,11 @@ class Pettanr.Views.Speech.Element.Edit extends Pettanr.Views.Speech.Element
   \r
   render: () ->\r
     super()\r
-    sb = @speech_balloon\r
+    sb_view = @parent\r
     @inner.$el.mouseover -> \r
-      sb.trigger('active')\r
+      sb_view.trigger('active')\r
     @inner.$el.mouseout -> \r
-      sb.trigger('inactive')\r
+      sb_view.trigger('inactive')\r
     this\r
   \r
   inner_class: () ->\r
@@ -81,7 +85,7 @@ class Pettanr.Views.Speech.Element.Inner.Edit extends Pettanr.Views.Speech.Eleme
   initialize: (options) ->\r
     super(options)\r
     @listenTo(@element, 'input:content', @render)\r
-    @listenTo(@element, 'input:font_size', @restyle)\r
-    @listenTo(@element, 'input:text_align', @restyle)\r
-    @listenTo(@element, 'input:fore_color', @restyle)\r
+    @listenTo(@element, 'input:font_size', @set_style)\r
+    @listenTo(@element, 'input:text_align', @set_style)\r
+    @listenTo(@element, 'input:fore_color', @set_style)\r
   \r