Drag&Drop Problem (Transferable in dragOver)

Heinzelmann

Grünschnabel
Hallo,
ich möchte DnD zwischen 2 Listen (Drag) und einem JTree(Drop) machen . Es sollen also Listeinträge in den Baum gezogen werden können.
Die Listeinträge dürfen aber nur an bestimmten Stellen im Baum fallen gelassen werden.
Listbox 1 enthält Rechte-Objekte und Listbox 2 enthält Rollen.
Im Baum wird der Benutzer mit seinen Rechten und Rollen angezeigt. Es gibt also einen Knoten für Rechte und einen Knoten für Rollen. Es muß nun sichergestellt werden, dass z.B. Rollen aus Listbox 2 nur auf den Knoten Rollen im Baum erlaubt sind. Ist die Maus im Baum über einem anderen Knoten, so soll der Cursor ein Verbots-Cursor sein.

Das DnD zwischen den Listen und dem Baum funktioniert problemlos. Was noch nicht funktioniert ist die Prüfung ob Drop auf dem Knoten erlaubt ist.

Die Prüfung muß irgendwo im DropTargetListener untergebracht werden. Da die Methode "dragOver" bei jeder Mausbewegung durchlaufen wird ist dies wohl der beste Ort für die Prüfung. Damit die Prüfung aber funktionert müßte ich in der Methode wissen welches Objekt der Benutzer gerade ziehen will (Transferable). Das Event DropTargetDragEvent gibt mir aber darüber leider keine Auskunft. Erst wenn die Methode "drop" ausgeführt wird hat man die Transferable-Infos. Dann ist es aber zu spät.

Woher kann ich die notwendige Info erhalten und wie ändere ich dann den Cursor ?

Es muß doch irgendwo eine Verbindung zwischen dem Drag-Objekt und dem Drop-Objekt geben. Allein die Prüfung auf den DataFlavor reicht nicht aus.


Danke
Arni
 

Neue Beiträge

Zurück