2013-01-24 128 views
2

我有一个浏览器行为丢弃文件的问题。我有一个包含文件拖放区域的“ContentPanel”。当我拖放一个文件时,一切正常,但当我在“ContentPanel”内的其他位置放置文件时,浏览器会打开文件(默认情况下为行为)。浏览器拖放文件事件GWT

我该如何避免这种情况?在最后一种情况下什么都不应该发生

+1

如果您解决了您的问题,请将解决方案作为答案发布,而不是将其编辑到问题中。 –

+1

是的,除了@RalZarek所说的,你的答案标记为“接受”。这就是我们在这里“解决”的方式:-) –

回答

1

这是必要的2滴处理程序,一个用于内容面板和其他拖放区域。

public FileUploadWidget() { 

    RootPanel rootPanel = RootPanel.get(); 
    DropHandler dropHandlerRoot = new DropHandler(rootPanel); 

    dropHandlerRoot.addFileEventHandler(new FileEventHandler() { 
     @Override 
     public void onFiles(FileEvent event) { 
      // Nothing to do, avoid the default browser 
      // behaviour which is to open the file 
     } 
    }); 

    // Drag and drop area handler 
    dropHandler = new DropHandler(dragAndDropArea); 
    dropHandler.addFileEventHandler(new FileEventHandler() { 
     @Override 
     public void onFiles(FileEvent event) { 
      JsArray<File> files = event.getFiles(); 

      for (int i = 0; i < files.length(); ++i) { 
       File file = files.get(i); 
       addFile(file); 
       handleSizeChange(); 
      } 
     } 
    }); 
}