OSDN Git Service

fix:replace row break
[pettanr/pettanr.git] / app / assets / javascripts / models / panel_picture.js.coffee
index 52b1fd0..12241b2 100644 (file)
@@ -1,5 +1,4 @@
 class Pettanr.PanelPicture extends Peta.Element\r
-  url: '/panel_pictures/'\r
   \r
   @singular: () ->\r
     'PanelPicture'\r
@@ -14,19 +13,9 @@ class Pettanr.PanelPicture extends Peta.Element
   @pick_item_name: () ->\r
     'resource_picture'\r
   \r
-  @pick_model: () ->\r
-    Manifest.item_name_to_model(@pick_item_name())\r
-  \r
   @traceable_item_names: () ->\r
     ['ground_picture', 'picture']\r
   \r
-  @is_traceable: (item_name) ->\r
-    _.contains(@traceable_item_names(), item_name)\r
-  \r
-  trace_from_ground_picture: () ->\r
-  \r
-  trace_from_picture: () ->\r
-  \r
   pick: (picked_item) ->\r
     {\r
       picture_id: picked_item.get('picture_id'),\r
@@ -35,10 +24,10 @@ class Pettanr.PanelPicture extends Peta.Element
     }\r
   \r
   picture: () ->\r
-    new Pettanr.Picture({id: @get('picture_id')})\r
+    new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id'))\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
   @has_picture: () ->\r
     true\r
@@ -77,18 +66,54 @@ class Pettanr.PanelPicture extends Peta.Element
     })\r
   \r
   symbol_option: () ->\r
-    i = @picture()\r
-    i.fetch({cache: true}).done =>\r
-      @trigger('ready:symbol', i.tmb_opt_img_tag())\r
+    retriever = @picture()\r
+    @listenTo(retriever, 'retrieve', @retrieve_symbol)\r
+    retriever.retrieve()\r
+  \r
+  retrieve_symbol: (item) -> \r
+    @trigger('ready:symbol', item.tmb_opt_img_tag())\r
   \r
   element_face: () ->\r
     new Pettanr.Views.PanelPicture.ElementFace({element: this})\r
   \r
   initialize: (attr, options) ->\r
     super(attr, options)\r
-    if @id\r
-      @url = @url + @id\r
-    @bind('change:width', () ->\r
-      console.log('cng')\r
+  \r
+class Pettanr.PanelPicture.TraceFromPicture\r
+  \r
+  constructor: (options) ->\r
+    _.extend(this, Backbone.Events)\r
+  \r
+  trace: (picture) ->\r
+    @picture(picture)\r
+  \r
+  picture: (picture) ->\r
+    resource_picture_picture_list = picture.has_one('resource_picture_picture')\r
+    resource_picture_picture_list.open(() =>\r
+      resource_picture_picture = resource_picture_picture_list.items()[0]\r
+      retriever = new Pettanr.Cache.Retriever(Pettanr.ResourcePicture, resource_picture_picture.get('resource_picture_id'))\r
+      @listenTo(retriever, 'retrieve', @resource_picture)\r
+      retriever.retrieve()\r
     )\r
   \r
+  resource_picture: (resource_picture) ->\r
+    @trigger('trace', resource_picture)\r
+  \r
+class Pettanr.PanelPicture.TraceFromGroundPicture extends Pettanr.PanelPicture.TraceFromPicture\r
+  \r
+  trace: (ground_picture) ->\r
+    @ground_picture(ground_picture)\r
+  \r
+  ground_picture: (ground_picture) ->\r
+    retriever = new Pettanr.Cache.Retriever(Pettanr.Picture, ground_picture.get('picture_id'))\r
+    @listenTo(retriever, 'retrieve', @picture)\r
+    retriever.retrieve()\r
+  \r
+  picture: (picture) ->\r
+    tracer = new Pettanr.PanelPicture.TraceFromPicture()\r
+    @listenTo(tracer, 'trace', @success)\r
+    tracer.trace(picture)\r
+  \r
+  success: (resource_picture) ->\r
+    @trigger('trace', resource_picture)\r
+  \r