dennisalcapone
Grünschnabel
SWT/JFace: Drag/Drop Tree -> Table: Wie bekomme ich den Spaltenindex?
Hallo,
ich ziehe per DragAndDrop ein TreeItem auf eine Tabelle (SWT/JFace, kein Swing).
Danach soll der Text des TreeItem in der Zelle (Spalte x, Zeile y) der Tabelle eingefügt werde, wo das 'drop' passiert.
Über event.item erhalte ich die Zeile (das TableItem):
int index = table.indexOf((TableItem) event.item);
Wie bekomme ich jetzt den Spaltenindex ?
Die einzige Möglichkeit, die ich bis jetzt gesehen habe:
Mit event.x und event.y erhalte ich die Koordinaten der Maus, wenn das 'drop' passiert.
Point pt = new Point (event.x, event.y);
Dann gehe ich durch die Spalten des (TableItem) event.item und prüfe, ob der Punkt innerhalb der Grenzen einer Spalte liegt
TableItem item = (TableItem) event.item;
for (int i=0; i<COLUMNS; i++) {
Rectangle rect = item.getBounds (i);
if (rect.contains (pt)) {
columnIndex = i;
break;
}
}
Leider liefert TableItem.getBounds die Koordinaten relativ zum 'parent', also zur Tabelle.
DropTargetEvent.x und DropTargetEvent.y liefern die Koordinaten relativ zum 'display'
Muss ich jetzt umrechnen oder kennt jemand eine einfachere Lösung?
Viele Dank
Hallo,
ich ziehe per DragAndDrop ein TreeItem auf eine Tabelle (SWT/JFace, kein Swing).
Danach soll der Text des TreeItem in der Zelle (Spalte x, Zeile y) der Tabelle eingefügt werde, wo das 'drop' passiert.
Über event.item erhalte ich die Zeile (das TableItem):
int index = table.indexOf((TableItem) event.item);
Wie bekomme ich jetzt den Spaltenindex ?
Die einzige Möglichkeit, die ich bis jetzt gesehen habe:
Mit event.x und event.y erhalte ich die Koordinaten der Maus, wenn das 'drop' passiert.
Point pt = new Point (event.x, event.y);
Dann gehe ich durch die Spalten des (TableItem) event.item und prüfe, ob der Punkt innerhalb der Grenzen einer Spalte liegt
TableItem item = (TableItem) event.item;
for (int i=0; i<COLUMNS; i++) {
Rectangle rect = item.getBounds (i);
if (rect.contains (pt)) {
columnIndex = i;
break;
}
}
Leider liefert TableItem.getBounds die Koordinaten relativ zum 'parent', also zur Tabelle.
DropTargetEvent.x und DropTargetEvent.y liefern die Koordinaten relativ zum 'display'
Muss ich jetzt umrechnen oder kennt jemand eine einfachere Lösung?
Viele Dank
Zuletzt bearbeitet: