         nodeView.once "abortProgress", => fsFile.abort yes
 
       fsFile._isBeingUploaded = yes
-      nodeView = finder.treeController.nodes[filePath]
+      nodeView = @finder.treeController.nodes[filePath]
       if nodeView
       then bindAbort()
       else
-        finder.treeController.on "NodeWasAdded", (nodeView)->
+        @finder.treeController.on "NodeWasAdded", (nodeView)->
           if nodeView.getData().path is filePath and fsFile._isBeingUploaded
             bindAbort()
 
-        fsFile.save "", -> finder.revealPath parentPath
+        fsFile.save "", -> @finder.revealPath parentPath
 
     @on "uploadEnd", (fsFile)->
       fsFile._isBeingUploaded = no
+
+  viewAppended: ->
+    super
+    @finder = KD.getSingleton "finderController"
+    tc      = @finder.treeController
+    @notify = tc.notify.bind tc
 
   reset: ->
     {uploadToVM, defaultPath, title} = @getOptions()

      for item in items
        itemEntry = item.webkitGetAsEntry?()
        if itemEntry.isDirectory
          return new KDNotificationView
            title: "Folder uploads not available for now."

    finder = KD.getSingleton "finderController"
    {notify} = finder.treeController
    if files.length >= 20
      notify """
      Too many files to transfer!<br>
      Archive your files and try again.
      """, "error", """

      @on "drop",      => @unsetClass "hover"

    @on "uploadFile", (fsFile, percent)=>
      filePath  = "[#{fsFile.vmName}]#{fsFile.path}"
      @finder.treeController.nodes[filePath]?.updateProgressView percent

    @on "uploadStart", (fsFile)=>
      filePath   = "[#{fsFile.vmName}]#{fsFile.path}"
      parentPath = "[#{fsFile.vmName}]#{fsFile.parentPath}"

