OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / assets / javascripts / locmare / filer / body / file_body.js.coffee
index 47d6b45..ffb0b91 100644 (file)
@@ -5,12 +5,7 @@ class Locmare.FilerModule.BodyModule.FileBody extends Backbone.View
     @body = options.body\r
     @file_items = []\r
     @file_items = _.map @filer().items, (item) =>\r
-      fi = @file_item_class()\r
-      file_item_view = new fi({'file_body': this, 'item': item})\r
-      @listenTo(file_item_view, 'click:symbol', @click_symbol)\r
-      @listenTo(file_item_view, 'navigate', @navigate)\r
-      file_item_view\r
-    @render()\r
+      @init_file_item(item)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -18,8 +13,14 @@ class Locmare.FilerModule.BodyModule.FileBody extends Backbone.View
       this.$el.append(file_item.render().el)\r
     this\r
   \r
-  file_item_class: () ->\r
-    Locmare.FilerModule.BodyModule.FileBodyModule.FileItem\r
+  init_file_item: (item) ->\r
+    file_item_view = new (@module().FileItem)({'file_body': this, 'item': item})\r
+    @listenTo(file_item_view, 'click:pick', @click_pick)\r
+    @listenTo(file_item_view, 'click:symbol', @click_symbol)\r
+    @listenTo(file_item_view, 'http_get', @http_get)\r
+    @listenTo(file_item_view, 'http_post', @http_post)\r
+    @listenTo(file_item_view, 'remove', @remove)\r
+    file_item_view\r
   \r
   filer: () ->\r
     @body.filer\r
@@ -36,10 +37,28 @@ class Locmare.FilerModule.BodyModule.FileBody extends Backbone.View
   items: () ->\r
     @filer().items\r
   \r
-  click_symbol: (symbol_view) ->\r
-    @trigger('click:symbol', symbol_view)\r
+  add_pick: (target_model) ->\r
+    _.each @file_items, (file_item) =>\r
+      file_item.add_pick(target_model)\r
+  \r
+  click_pick: (file_item_view) ->\r
+    @trigger('click:pick', file_item_view)\r
+  \r
+  click_symbol: (file_item_view) ->\r
+    @trigger('click:symbol', file_item_view)\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
+  http_post: (url) ->\r
+    @trigger('http_post', url)\r
+  \r
+  remove: (file_item_view) ->\r
+    @trigger('remove', file_item_view.item)\r
+    @file_items = _.without(@file_items, file_item_view)\r
+    @render()\r
   \r
-  navigate: (url) ->\r
-    @trigger('navigate', url)\r
+  module: () ->\r
+    Locmare.FilerModule.BodyModule.FileBodyModule\r
   \r
 class Locmare.FilerModule.BodyModule.FileBodyModule\r