+ element_face: () ->\r
+ new Pettanr.Views.GroundPicture.ElementFace({element: this})\r
+ \r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
+ \r
+class Pettanr.GroundPicture.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.GroundPicture.TraceFromPanelPicture extends Pettanr.GroundPicture.TraceFromPicture\r
+ \r
+ trace: (panel_picture) ->\r
+ @panel_picture(panel_picture)\r
+ \r
+ panel_picture: (panel_picture) ->\r
+ retriever = new Pettanr.Cache.Retriever(Pettanr.Picture, panel_picture.get('picture_id'))\r
+ @listenTo(retriever, 'retrieve', @picture)\r
+ retriever.retrieve()\r
+ \r
+ picture: (picture) ->\r
+ tracer = new Pettanr.GroundPicture.TraceFromPicture()\r
+ @listenTo(tracer, 'trace', @success)\r
+ tracer.trace(picture)\r