2013-01-24 125 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(); 
      } 
     } 
    }); 
}