[SWT/Jface] DND zwischen zwei TreeViewern in beiden Richtungen

mandypb86

Grünschnabel
Hallo zusammen,

nachdem ich den eigentlichen DND-Support für meine beiden TreeViewer (2 FileBrowser, einer ist quasi lokal, einer symbolisiert ein Archiv) hinbekommen habe und auch unterscheiden kann, ob mein Target ein File oder ein Directory ist, stoße ich nun auf folgendes Problem.

Der User soll sowohl Dateien von LOKAL -> ARCHIV als auch von ARCHIV -> LOKAL per DND kopieren können. Heißt, ich hab in beiden TreeViewern eine DragSource und ein DropTarget für die gleiche Art von TransferTypes. Wenn ich nun eine Datei im gleichen TreeViewer kopieren will, klappt das wunderbar, weil der DropTarget nicht verlassen wird. Will ich aber in den anderen TreeViewer wechseln wird ja der DropTarget verlassen und somit die dragLeave()-Methode aufgerufen, was dazu führt, dass das DND Event abgebrochen wird.

Komme ich irgendwie an die DragSource bzw. den DropTarget ran, sodass ich beide auf Gleichheit prüfen kann und dann ggfs. die dragLeave()-Methode überschreiben kann oder wie löse ich dieses Problem?

Über konstruktive Vorschläge freut sich

M@ndy
 
Konnte das Problem noch spezifizieren:

Das DragEvent wird nur abgebrochen, wenn ich es über einen Scrollbalken des Viewers ziehe. Wenn ich keinen Scrollbalken hab, kann ich die Dateien ohne Probleme in beide Richtungen verschieben.

Code:
viewer.addDragSupport(ops, types, dragListener);
viewer.addDropSupport(ops, types, dropListener);

Das sind übrigens die beiden Zeilen, wo ich (hier einem) Viewer den Drag- und DropSupport zuweise. Bei dem zweiten sieht es genau so aus.
ops sind die erlaubten Operations, types die TansferTypes und dann halt die 2 Listener, die auch vollständig ohne CompilerFehler implementiert sind.

Mal gucken, vielleicht finde ich ja noch mehr heraus. Falls doch zwischendurch jemand ne Idee hat: nur her damit.

Gruß
M@ndy
 

Neue Beiträge

Zurück