class Pettanr.GroundPicture extends Peta.Element\r
- url: '/ground_pictures/'\r
\r
@singular: () ->\r
'GroundPicture'\r
@repeat_texts: () -> \r
['repeat', 'repeat-x', 'repeat-y', 'no-repeat']\r
\r
+ @pick_item_name: () ->\r
+ 'resource_picture'\r
+ \r
+ @traceable_item_names: () ->\r
+ ['panel_picture', 'picture']\r
+ \r
+ pick: (picked_item) ->\r
+ {picture_id: picked_item.get('picture_id')}\r
+ \r
+ panel: () ->\r
+ new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id'))\r
+ \r
picture: () ->\r
- new Pettanr.Picture({id: @get('picture_id')})\r
+ new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id'))\r
\r
- has_picture: () ->\r
+ @has_picture: () ->\r
true\r
\r
- style: (spot = null, opacity = 20) ->\r
- r = {\r
- position: 'absolute', \r
- top: '0px', \r
- left: '0px',\r
- 'z-index': @get('z'), \r
- 'background-image': 'url(' + @picture().r_url() + ')', \r
- 'background-repeat': @repeat_text(), \r
- 'background-position': Pettanr.to_s(@get('x')) + 'px ' + Pettanr.to_s(@get('y')) + 'px'\r
- }\r
- @merge_opacity(r, opacity) if spot and spot != this\r
- r\r
- \r
tmb_opt_img_tag: (picture) ->\r
- new Pettanr.Picture.SymbolPicture({\r
+ new Pettanr.Image.SymbolPicture({\r
attr: {\r
src: picture.r_url(), \r
- alt: @get('caption')\r
+ alt: @escape('caption')\r
},\r
picture: picture\r
})\r
\r
- symbol_option: (cb) ->\r
- i = @picture()\r
- _this = this\r
- i.fetch().done ->\r
- cb(_this.tmb_opt_img_tag(i))\r
+ symbol_option: () ->\r
+ retriever = @picture()\r
+ @listenTo(retriever, 'retrieve', @retrieve_symbol)\r
+ retriever.retrieve()\r
+ \r
+ retrieve_symbol: (picture) -> \r
+ @trigger('ready:symbol', picture.tmb_opt_img_tag())\r
\r
repeat_text: () ->\r
Pettanr.GroundPicture.repeat_texts()[@get('repeat')]\r
\r
- initialize: () ->\r
- if @id\r
- @url = @url + @id\r
+ 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
+ \r
+ success: (resource_picture) ->\r
+ @trigger('trace', resource_picture)\r
\r
-class Pettanr.GroundPicture.Collection extends Backbone.Collection\r
- model: Pettanr.GroundPicture\r
- url: '/ground_pictures'\r