[SWT] CTabItem wechseln (während DnD)

Carron

Mitglied
Hallo miteinander,


Ausgangslage:
  • Ein CTabFolder, in dem sich mehrere Tabs befinden.
  • In jedem dieser Tabs kann (mithilfe von DragSource) ein Drag von Text erfolgen.
  • Im DnD befindlicher Text kann wiederum an mehreren Stellen in einem solchen Tab abgelegt werden.
Ziel:
  • Hin und wieder sollen auch Texte in einem Tab aufgenommen und in einem anderen abgelegt werden.
  • Dafür muss natürlich das entsprechende CTabItem ausgewählt werden.
Problem:
  • Vom MouseTrackListener gefangene Hover-Ereignisse auf dem TabFolder treten nur auf, wenn kein Text aufgenommen wurde.
  • Das DnD fängt alle Mausbewegungen ab und kümmert sich nur darum, ob man dort etwas ablegen kann.

Frage: Wie schaffe ich es auf ein anderes CTabItem zu wechseln, während die Maustaste 1 gedrückt ist?


Schon vielen Dank und Grüße
Carron


LÖSUNGSEDIT:
  • ich habe mir nun eine DropSource von meinem CTabFolder erzeugt und
  • darauf einen DropTargetListener gelegt,
  • der kein Transfer gesetzt bekommen hat (also auch keinen Mauszeiger anbietet, der ihn als DropTarget identifiziert) und
  • in der Methode dragOver(DropTargetEvent) die Mauszeigerposition entnommen, via toDisplay(Point) und getItem(Point) auf meinem CTabFolder entsprechend das unter der Maus befindliche CTabItem identifiziert.
  • Intern erhöht der DropTargetListener bei dragOver(DropTargetEvent) einen Zähler um das Ganze etwas abzubremen (ging mir doch etwas zu fix, wenn der sofort auf das andere Tab wechselt...) und setzt die entsprechende Auswahl, wenn ein definierter Wert erreicht ist.

Problem gelöst. Trotzdem Dank an all jene, die sich mit reingedacht haben.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück