anchor.diff:       });
       return resources;
     }
  +  void setSelection(List<String> nodeUIDs)
  +  {
  +    _treeView.selection.clear();
  +    _treeView.selection = nodeUIDs;
  +  }
   
     ListViewCell treeViewCellForNode(TreeView view, String nodeUID) {
       Resource resource = _filesMap[nodeUID];
  
positive.code:   
    void treeViewDrop(TreeView view, String nodeUID, html.DataTransfer dataTransfer) {
      Folder destinationFolder = _filesMap[nodeUID] as Folder;
      for(html.File file in dataTransfer.files) {
        html.FileReader reader = new html.FileReader();
        reader.onLoadEnd.listen((html.ProgressEvent event) {
          destinationFolder.createNewFile(file.name).then((File file) {
  
negative.code:       });
        reader.readAsArrayBuffer(file);
      }
      
      //wait and listen for all files to be available after calling destinationFolder.createNewFile(...)
      new Timer.periodic(const Duration(milliseconds: 100),  (Timer t) {
        List<String> existing_nuids = new List<String>();
        Iterable<Resource> child_files = destinationFolder.getChildren().where((Resource e) => e.isFile);
        for(Resource child_file in child_files) {
          existing_nuids.add(child_file.uuid);
        }
        
        bool ready = true;
        new_selection.forEach((String nuid) {
          if(!existing_nuids.contains(nuid)) {
            ready = false;
          }
        });
        
        if(ready) {
          setSelection(new_selection);
          t.cancel();
        }
      });
    }
    
    bool _isDifferentProject(List<String> nodesUIDs, String targetNodeUID) {
  