UI開発にはGXTを使用しています。デスクトップからアプリケーションにファイルをドラッグしてアップロードするために HTML5 を使用しました。しかし今、私は逆の要件を抱えています。ファイルをブラウザからデスクトップにドラッグして、ファイルをデスクトップにダウンロードしたいと考えています。
Chromeでのみ可能であることは知っています。そして、以下のデモをチェックしました: http://www.thecssninja.com/javascript/gmail-dragout
上記のコードを GXT アプリケーションに実装しようとしましたが、問題は、TreePanel への DnD をサポートする編集可能グリッドを使用していることです。グリッドからデスクトップにドラッグすると、ブラウザー イベントがキャプチャされていないと思います (ここで間違っている可能性があります)。
どのように行うべきですか?
ありがとう。
以下は、データがグリッドに挿入された後に呼び出す小さなコードです。すべてのレコードの CSS クラス名は".icon"です。問題は、ドラッグを開始すると、「ドラッグスタート」が呼び出されないことです。なにか提案を?
注: このコードは、ボタン、ラベルなどを作成し、他の必要なパラメーターを使用してドラッグ可能 = true にするときに機能します。
public static native void test(String id)/*-{
var files = $doc.querySelectorAll('.icon');
for (var i = 0, file; file = files[i]; ++i) {
file.addEventListener("dragstart",function(evt){
$wnd.alert("Drag Event started.. ");
evt.dataTransfer.setData("DownloadURL",this.dataset.downloadurl);
},false);
}
}-*/;