OSDN Git Service

fix: new element tracer
[pettanr/pettanr.git] / app / assets / javascripts / models / speech_balloon.js.coffee
index f77322a..4daf06a 100644 (file)
@@ -19,10 +19,6 @@ class Pettanr.SpeechBalloon extends Peta.Element
   @traceable_item_names: () ->\r
     ['speech', 'balloon']\r
   \r
-  trace_from_speech: () ->\r
-  \r
-  trace_from_balloon: () ->\r
-  \r
   pick: (templates) ->\r
     # \r
     speech_balloon_template = templates.speech_balloon_template\r
@@ -73,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