OSDN Git Service

276ffc36183a8e9e19531f36877b10d1a080582c
[pettanr/pettanr.git] / app / assets / javascripts / models / ground_picture.js.coffee
1 class Pettanr.GroundPicture extends Peta.Element\r
2   url: '/ground_pictures/'\r
3   \r
4   @singular: () ->\r
5     'GroundPicture'\r
6   \r
7   @plural: () ->\r
8     'GroundPictures'\r
9   \r
10   defaults: {\r
11     id: null,\r
12     x: 0,\r
13     y: 0,\r
14     repeat: 0\r
15   } \r
16   \r
17   @repeat_texts: () -> \r
18     ['repeat', 'repeat-x', 'repeat-y', 'no-repeat']\r
19   \r
20   @pick_item_name: () ->\r
21     'resource_picture'\r
22   \r
23   @traceable_item_names: () ->\r
24     ['panel_picture', 'picture']\r
25   \r
26   pick: (picked_item) ->\r
27     {picture_id: picked_item.get('picture_id')}\r
28   \r
29   panel: () ->\r
30     new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id'))\r
31   \r
32   picture: () ->\r
33     new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id'))\r
34   \r
35   @has_picture: () ->\r
36     true\r
37   \r
38   tmb_opt_img_tag: (picture) ->\r
39     new Pettanr.Image.SymbolPicture({\r
40       attr: {\r
41         src: picture.r_url(), \r
42         alt: @escape('caption')\r
43       },\r
44       picture: picture\r
45     })\r
46   \r
47   symbol_option: () ->\r
48     retriever = @picture()\r
49     @listenTo(retriever, 'retrieve', @retrieve_symbol)\r
50     retriever.retrieve()\r
51   \r
52   retrieve_symbol: (picture) -> \r
53     @trigger('ready:symbol', picture.tmb_opt_img_tag())\r
54   \r
55   repeat_text: () ->\r
56     Pettanr.GroundPicture.repeat_texts()[@get('repeat')]\r
57   \r
58   element_face: () ->\r
59     new Pettanr.Views.GroundPicture.ElementFace({element: this})\r
60   \r
61   initialize: (attr, options) ->\r
62     super(attr, options)\r
63     if @id\r
64       @url = @url + @id\r
65   \r
66 class Pettanr.GroundPicture.TraceFromPicture\r
67   \r
68   constructor: (options) ->\r
69     _.extend(this, Backbone.Events)\r
70   \r
71   trace: (picture) ->\r
72     @picture(picture)\r
73   \r
74   picture: (picture) ->\r
75     resource_picture_picture_list = picture.has_one('resource_picture_picture')\r
76     resource_picture_picture_list.open(() =>\r
77       resource_picture_picture = resource_picture_picture_list.items()[0]\r
78       retriever = new Pettanr.Cache.Retriever(Pettanr.ResourcePicture, resource_picture_picture.get('resource_picture_id'))\r
79       @listenTo(retriever, 'retrieve', @resource_picture)\r
80       retriever.retrieve()\r
81     )\r
82   \r
83   resource_picture: (resource_picture) ->\r
84     @trigger('trace', resource_picture)\r
85   \r
86 class Pettanr.GroundPicture.TraceFromPanelPicture extends Pettanr.GroundPicture.TraceFromPicture\r
87   \r
88   trace: (panel_picture) ->\r
89     @panel_picture(panel_picture)\r
90   \r
91   panel_picture: (panel_picture) ->\r
92     retriever = new Pettanr.Cache.Retriever(Pettanr.Picture, panel_picture.get('picture_id'))\r
93     @listenTo(retriever, 'retrieve', @picture)\r
94     retriever.retrieve()\r
95   \r
96   picture: (picture) ->\r
97     tracer = new Pettanr.GroundPicture.TraceFromPicture()\r
98     @listenTo(tracer, 'trace', @success)\r
99     tracer.trace(picture)\r
100   \r
101   success: (resource_picture) ->\r
102     @trigger('trace', resource_picture)\r
103   \r