[Java lista] DnD reset

Loxy Gento loxygento at gmail.com
2007. Aug. 13., H, 20:36:58 CEST


Sziasztok,


A problémám a következő:

Környezet:

OS: Solaris 8 (Motif 2.1)
Java verzió: 1.4.2_01

Van egy swinges alkalmazás, ami két JTree között drag & drop - ot (DnD) tesz
lehetővé.
A DnD megvalósítás a Swinges DnD - ot használja, egy speciális
TransferHandler segítségével (a DataFlavor is egyedi).

Windows alatt minden rendben van.

Solaris alatt pedig a következő a probléma:

A Mozilla 1.0 - ás és 1.5 - ös verziója is mindent megeszik, azaz bármit rá
lehet dobni. (A Firefox 2.0is hasonlóan viselkedik, windows alatt is.)

A gond az, hogy ha elengedem a Mozilla fölött az egeret, akkor természetesen
a Mozillában semmi nem történik, de nem váltódik ki a drop esemény, azaz nem
hívódik meg az exportDone metódusa a TransferHandlernek. Ezután már el sem
kezdődik egy új DnD a JTree-kben, azaz nem ér véget a startDrag(...)
metódus.

Sikerült eljutnom odáig, hogy a sun.awt.dnd.SunDropTargetContextPeer osztály
motif specializációjánál keletkezik, egy natív metódus hívásakor a
java.awt.dnd.InvalidDnDOperationException: failed to create native peer at
sun.awt.motif.MDragSourceContextPeer... kivétel.

Azt sikerült kihámoznom, hogy egyszerre csak egy DnD lehet aktív és mivel az
előző nem fejeződik be, így kivétel keletkezik és nem indul el az új.

Most azon probálkozom, hogy valahogy ki kellene lőni a be nem fejeződött DnD
- t, de nem igazán találtam rá megoldást.

Azért is részleteztem ennyire a problémát, hogy hátha esetleg máshol kell
elindulni.


Mindenféle ötletet, megoldást, javaslatot szívesen fogadok!



Üdv:

loxygen
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20070813/4524518f/attachment-0001.html 


További információk a(z) Javalist levelezőlistáról