           )
     )
 
-  get: (fileId, callback) ->
+  fetchFile: (fileId, callback, caller) ->
     that = this
     that.gdrive.get(fileId, (file)->
       that.set("file", file)
-
-      callback(file, "get")
-    )
-
-  upload: (title, content, callback) ->
+      that.set('title', file.title)
+
+      that.gdrive.getFileResource(
+        file.downloadUrl,
+        that.get('access_token'),
+        (data) ->
+          that.set('content', data)
+      )
+
+      callback(file, caller)
+    )
+
+  upload: (title, content, callback, caller) ->
+    this.set({title: title, content: content})
+
     if this.get("file")
       this.update(title, content, callback, caller)
     else

    else
      caller.alertView.show("warning", "Fail GoogleDrive authorization")

  uploadAlert: (file, methodName, caller)->
    if !file.error
      caller.alertView.show("info", "Success " + methodName + "!")
    else
      caller.alertView.show("danger", "Fail " + methodName + "!")

  createPicker: ()->
    console.log("picker create")
    this.showPicker(this)

  showPicker: (that)->
    client_id = that.model.get('client_id')
    access_token = that.model.get("access_token")
    if access_token

    if file
      documentLink = $('#document-link')
      documentLink.text(file.title)
      # TODO: file.alternateLinkで同じアドレス取れそう
      documentLink.attr("href", "https://drive.google.com/file/d/" \
       + file.id + "/view")
      documentLink.removeClass("text-muted").addClass("text-primary")
