OSDN Git Service

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