       filePath   = "[#{fsFile.vmName}]#{fsFile.path}"
       parentPath = "[#{fsFile.vmName}]#{fsFile.parentPath}"
 
-      bindAbort = ->
-        nodeView.showProgressView 1
+      bindAbort = (nodeView)->
         nodeView.once "abortProgress", => fsFile.abort yes
 
-      fsFile._isBeingUploaded = yes
       nodeView = @finder.treeController.nodes[filePath]
       if nodeView
-      then bindAbort()
+      then bindAbort nodeView
       else
         @finder.treeController.on "NodeWasAdded", (nodeView)->
-          if nodeView.getData().path is filePath and fsFile._isBeingUploaded
-            bindAbort()
+          if nodeView.getData().path is filePath
+            bindAbort nodeView
 
         fsFile.save "", =>
           @finder.expandFolders FSHelper.getPathHierarchy parentPath
-
-    @on "uploadEnd", (fsFile)->
-      fsFile._isBeingUploaded = no
 
   viewAppended: ->
     super

      else
        @emit "uploadFile", fsFile, progress.percent

  upload: (fileName, contents)->
    modalStack   = KDModalView.createStack lastToFirst: yes
    fsFolderItem = FSHelper.createFileFromPath @path, 'folder'
    fsFileItem   = FSHelper.createFileFromPath "#{@path}/#{fileName}"

    upload = =>
      fsFileItem.exists (err, exists)=>


          @reset() if item is lastItem

  readDirectory: (dirEntry, callback, error)->

    callback.files  or= []
    callback.i = 0

    dirReader = dirEntry.createReader()
    relative  = dirEntry.fullPath.replace(/^\//, "").replace /(.+?)\/?$/, "$1/"

    dirReader.readEntries (entries)=>
      for entry in entries
        callback.i++
        if entry.isFile
          entry.file (file)->
            file.relativePath = relative + file.name
            callback.files.push file
        else
          @readDirectory entry, callback, error
      if entries.length is callback.i
        callback callback.files
    , error

  setPath: (@path=@options.defaultPath)->
    {uploadToVM, title} = @getOptions()
    @updatePartial """
