OSDN Git Service

separate manifest
[pettanr/pettanr.git] / lib / locmare / filer / body / file_body / file_item / edit / edit.rb
1 module Locmare
2   module FilerModule
3     module BodyModule
4       module FileBodyModule
5         module FileItemModule
6           module EditItemColumnModule
7             class Base
8               attr :file_item, :edit_manifest, :item, :column_name
9               
10               def initialize file_item, edit_manifest, item
11                 @file_item = file_item
12                 @edit_manifest = edit_manifest
13                 @item = item
14                 @column_name = 'edit'
15               end
16               
17               def filer
18                 @file_item.filer
19               end
20               
21               def manifest
22                 self.filer.manifest
23               end
24               
25               def item_name
26                 self.filer.item_name
27               end
28               
29               def image_dir
30                 self.filer.image_dir
31               end
32               
33               def column_template_dir
34                 self.filer.template_dir + 'item_column/'
35               end
36               
37               def column_template_file_name
38                 raise "undefined column_template_file_name\n"
39               end
40               
41               def column_template_name
42                 self.column_template_dir + self.column_template_file_name
43               end
44               
45               def item_template_dir
46                 self.filer.template_dir + 'edit/'
47               end
48               
49               def item_template_file_name
50                 raise "undefined item_template_file_name\n"
51               end
52               
53               def item_template_name
54                 self.item_template_dir + self.item_template_file_name
55               end
56               
57             end
58             
59             class Default < Base
60               def column_template_file_name
61                 'show'
62               end
63               
64               def item_template_file_name
65                 if @item.own? self.filer.operators
66                   'default'
67                 else
68                   'none'
69                 end
70               end
71               
72               def edit_img_file_name
73                 self.image_dir + 'edit.png'
74               end
75               
76               def remove_img_file_name
77                 self.image_dir + 'remove.png'
78               end
79               
80               def img_opt
81                 {:width => Manifest.manifest.magic_numbers['thumbnail_width'] / 2, 
82                   :height => Manifest.manifest.magic_numbers['thumbnail_height'] / 2}
83               end
84               
85               def edit_img_opt
86                 img_opt.merge :src => self.edit_img_file_name
87               end
88               
89               def remove_img_opt
90                 img_opt.merge :src => self.remove_img_file_name
91               end
92               
93             end
94             
95             class None < Base
96               def column_template_file_name
97                 'none'
98               end
99               
100             end
101             
102             class Account < Base
103               def column_template_file_name
104                 'show'
105               end
106               
107               def item_template_file_name
108                 if @item.own? self.filer.operators
109                   'account'
110                 else
111                   'none'
112                 end
113               end
114               
115               def edit_img_file_name
116                 self.image_dir + 'edit.png'
117               end
118               
119               def img_opt
120                 {:width => Manifest.manifest.magic_numbers['thumbnail_width'] / 2, 
121                   :height => Manifest.manifest.magic_numbers['thumbnail_height'] / 2}
122               end
123               
124               def edit_img_opt
125                 img_opt.merge :src => self.edit_img_file_name
126               end
127               
128             end
129             
130             class Template < Base
131               def column_template_file_name
132                 'show'
133               end
134               
135               def item_template_file_name
136                 'template'
137               end
138               
139               def template_dir
140                 @item.path_name + '/'
141               end
142               
143               def template_file_name
144                 @edit_manifest.template_name
145               end
146               
147               def template_name
148                 self.template_dir + self.template_file_name
149               end
150               
151             end
152             
153           end
154         end
155       end
156     end
157   end
158 end