2016-05-02 13 views
0

アイテムをXULツリーからフォルダにドラッグする方法はありますか?ドロップした場合、これらのアイテムのデータを含むファイルを作成しますか?ツリー項目をファイルとしてフォルダにドラッグ&ドロップしますか?

MDNの例では、フォルダからXULツリーへのdrag'n dropファイルを正常に実装しましたが、現在は逆の処理が必要です。

は、私は解決策を見つけた

答えて

0

ありがとう、しかし、それは少し副作用がある - ユーザーがマウスボタンをリリースしたときに、私は通知を取得する方法を見つけることができない、からのデータを持つため、ファイル(複数可) tempディレクトリのdragstartイベントの初期化中にツリーを作成する必要があります。これは、ユーザーがマウスボタンを離したときにドロップされたフォルダに移動さ​​れます。 例:

//event listener must be added to <treechildren> element 
document.getElementById("myTreeChildren").addEventListener("dragstart", treeDragStart, true); 
function treeDragStart(e) 
{ 
var nsIFile = FileUtils.getFile("TmpD", ["myfilename.txt"], true), 
     fos = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream), 
     content = "this is an example text"; 
// flags: PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE 
fos.init(nsIFile, 0x04 | 0x08 | 0x20, 0600, 0); 
written = fos.write(content, content.length); 
if (fos instanceof Ci.nsISafeOutputStream) 
    fos.finish(); 
else 
    fos.close(); 

e.dataTransfer.effectAllowed = "move"; 
e.dataTransfer.mozSetDataAt("application/x-moz-file", nsIFile, 0); 
}//treeDragStart() 

誰かが方法がある場合は、ドロップは、アプリケーションの外部から発生したときに通知を取得する知っていますか?

関連する問題