Drag & Drop von Daten die noch generiert werden aus Anwendung in Datei

Hallo,

ich hoffe ich kann das Problem das ich versuche zu lösen hinreichend beschreiben. Ausgangsituation ist eine Anwendung in der z.B. in einer Tabelle Daten repäsentiert werden die bisher über Funktionen wie “Öffnen” oder “Speichern unter” entwender z.B. mit Excel geöffnet oder als Datei im Dateisystem gespeichert werden können. Da das erzeugen der Daten (müssen erst vom Server berechnet und übertragen werden) je nach Menge auch schon mal 30 Sekunden oder 3 Minuten dauern kann, kommt beim Aufruf der Funktionen ein entsprechender Wartedialog und dann geht’s los. Die Einträge können auch innerhalb der Anwendung per DnD verschoben werden. Das Ganze läuft mit Java 6 und Windows.

Jetzt wünscht man sich die Funktion “Speichern unter” quasi per DnD, weil das ja einfacher zu handhaben ist. Normal ja kein Problem dachte ich mir, die Probleme liegen aber im Detail. Ich habe mal einfach dem TransferHandler erweitert damit er ein javaFileListFlavour anbietet, was Windows ja verstehen kann. Das Problem ist irgendwann muss ich jetzt die Daten in eine Datei packen, die Windows dann übernimmt. Das geht leider nicht vorher und das geht auch leider nicht schneller als oben beschrieben. Idealerweise wäre es so das der Anwender erst in aller Ruhe den Drop ausführt und dann ein entsprechender Wartedialog erscheint. Ich habe nun die Befürchtung das das mit Java ganz schwierig wird.

[ul]
[li]In der createTransferable() die beim Starten des Drag aufgerufen wird bin ich zu früh dran, falls der Anwender intern verschiebt und man möchte ja auch nicht gleich irgendwas aufpoppen lassen und die Daten generieren.
[/li][li]Die getTransferData() des Transferables sieht vielversprechend aus, wird aber auch spätestens aufgerufen wenn man über die erste Windows-Komponente zieht. Windows akzeptiert den Drop solange verständlicherweise nicht bis die Daten geliefert wurden, also lange Operation darin sind tabu.
[/li][li]Die exportDone() ist zu spät dran, da ist die Datei schon verschoben und ich sehe keine Chance herauszufinden wohin.
[/li][li]Dazwischen sehe ich nichts.
[/li][/ul]

Mit dem DragGestureRecognizer sieht es m.M. nach auch nicht besser aus. Es fehlt die Möglichkeit wenn der Drop vom Benutzer vollzogen ist nochmal einzugreifen oder irgendwie mitzubekommen wohin gedropped wurde. Klar mit der Absicht wurde das DnD ja auch nicht erdacht.

Hat jemand zufällig Ideen wo man noch ansetzten könnte?