OSDN Git Service

fix:balloon r
[pettanr/pettanr.git] / app / assets / javascripts / models / speech_balloon.js.coffee
index 4d8e84b..359669a 100644 (file)
@@ -16,48 +16,47 @@ class Pettanr.SpeechBalloon extends Peta.Element
   @pick_item_name: () ->\r
     'speech_balloon_template'\r
   \r
-  @pick_model: () ->\r
-    Manifest.item_name_to_model(@pick_item_name())\r
-  \r
   @traceable_item_names: () ->\r
     ['speech', 'balloon']\r
   \r
-  @is_traceable: (item_name) ->\r
-    _.contains(@traceable_item_names(), item_name)\r
-  \r
-  trace_from_speech: () ->\r
-  \r
-  trace_from_balloon: () ->\r
-  \r
-  pick: (templates) ->\r
+  pick: () ->\r
     # \r
-    speech_balloon_template = templates.speech_balloon_template\r
+    speech_balloon_template = @templates.speech_balloon_template\r
     {\r
       speech_balloon_template_id: speech_balloon_template.get('id'),\r
-      speech_balloon_template_module_name: speech_balloon_template.get('module_name'),\r
-      speech_balloon_template_settings: speech_balloon_template.get('settings')\r
+      speech_balloon_template_module_name: speech_balloon_template.get('module_name')\r
     }\r
   \r
-  panel: (options = {}) ->\r
-    new Pettanr.Panel({id: @get('panel_id')}, options)\r
+  panel: () ->\r
+    new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id'))\r
   \r
   speech_balloon_template: () ->\r
-    new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')})\r
+    new Pettanr.Cache.Retriever(Pettanr.SpeechBalloonTemplate, @get('speech_balloon_template_id'))\r
   \r
   @has_picture: () ->\r
     false\r
   \r
   symbol_option: () ->\r
-    sbt = @speech_balloon_template()\r
-    sbt.fetch({cache: true}).done =>\r
-      sp = sbt.system_picture()\r
-      sp.fetch({cache: true}).done =>\r
-        @trigger('ready:symbol', sp.tmb_opt_img_tag())\r
+    retriever = @speech_balloon_template()\r
+    @listenTo(retriever, 'retrieve', @retrieve_speech_balloon_template)\r
+    retriever.retrieve()\r
+  \r
+  retrieve_speech_balloon_template: (speech_balloon_template) -> \r
+    retriever = speech_balloon_template.system_picture()\r
+    @listenTo(retriever, 'retrieve', @retrieve_system_picture)\r
+    retriever.retrieve()\r
+  \r
+  retrieve_system_picture: (system_picture) -> \r
+    @trigger('ready:symbol', system_picture.tmb_opt_img_tag())\r
   \r
   filer_caption: () ->\r
-    @fetch({cache: true}).done =>\r
-      caption = @escape('caption')\r
-      @trigger('ready:caption', caption)\r
+    retriever = @retriever()\r
+    @listenTo(retriever, 'retrieve', @retrieve_filer_caption)\r
+    retriever.retrieve()\r
+  \r
+  retrieve_filer_caption: (item) -> \r
+    caption = item.escape('caption')\r
+    @trigger('ready:caption', caption)\r
   \r
   plain_scenario: () ->\r
     @get('caption')\r
@@ -70,3 +69,35 @@ class Pettanr.SpeechBalloon extends Peta.Element
     if @id\r
       @url = @url + @id\r
   \r
+class Pettanr.SpeechBalloon.TraceFromBalloon\r
+  \r
+  constructor: (options) ->\r
+    _.extend(this, Backbone.Events)\r
+  \r
+  trace: (balloon) ->\r
+    @balloon(balloon)\r
+  \r
+  balloon: (balloon) ->\r
+    retriever = new Pettanr.Cache.Retriever(Pettanr.SpeechBalloon, balloon.get('speech_balloon_id'))\r
+    @listenTo(retriever, 'retrieve', @speech_balloon)\r
+    retriever.retrieve()\r
+  \r
+  speech_balloon: (speech_balloon) ->\r
+    @trigger('trace', speech_balloon)\r
+  \r
+class Pettanr.SpeechBalloon.TraceFromSpeech\r
+  \r
+  constructor: (options) ->\r
+    _.extend(this, Backbone.Events)\r
+  \r
+  trace: (speech) ->\r
+    @speech(speech)\r
+  \r
+  speech: (speech) ->\r
+    retriever = new Pettanr.Cache.Retriever(Pettanr.SpeechBalloon, speech.get('speech_balloon_id'))\r
+    @listenTo(retriever, 'retrieve', @speech_balloon)\r
+    retriever.retrieve()\r
+  \r
+  speech_balloon: (speech_balloon) ->\r
+    @trigger('trace', speech_balloon)\r
+  \r