V
Vayu
Gast
Servus,
Mal wieder das leidige DND Problem.
Ich habe einen TreeViewer mit einem eigenen Model. Ich möchte jetzt innerhalb des Trees Items anderen parent zuweisen per DND.
Mein Ansatz ist folgender:
So man sollte doch meinen, zumindest ich dachte es gehe so, dass ich in der drop()-methode wieder auf die data vom event zugreifen kann, aber an der Stelle ist sie IMMER NULL.
ich hab am anfang auch probiert, einfach nur m_tree.getSelection() dem data feld vom event zuzuweisen, aber das kam auch nicht an.
Was beachte ich dabei nicht? Ich hab mir jetzt erstmal damit beholfen, im dragSetData die dragSource einer membervariable zuzuweisen und dann im drop() drauf zuzugreifen. Aber ich find das nicht wirklich schön
Weiss einer von Euch da Rat?
Gruss Vayu
Mal wieder das leidige DND Problem.
Ich habe einen TreeViewer mit einem eigenen Model. Ich möchte jetzt innerhalb des Trees Items anderen parent zuweisen per DND.
Mein Ansatz ist folgender:
Java:
m_tree.addDragSupport( DND.DROP_MOVE,
new Transfer[] { LocalSelectionTransfer.getTransfer() },
new DragSourceAdapter() {
@Override
public void dragSetData( DragSourceEvent event ) {
event.doit = true;
event.data = (MyObject) ( (TreeSelection) m_tree.getSelection() ).getFirstElement();
}
} );
m_tree.addDropSupport( DND.DROP_MOVE,
new Transfer[] { LocalSelectionTransfer.getTransfer() },
new ViewerDropAdapter( m_tree ) {
@Override
public boolean performDrop( Object data ) {
return true;
}
@Override
public boolean validateDrop( Object target, int operation,
TransferData transferType ) {
return true;
}
@Override
public void drop( DropTargetEvent event ) {
MyObject dropTarget = (MyObject) event.item.getData();
MyObject dragSource = (MyObject)event.data;
}
} );
So man sollte doch meinen, zumindest ich dachte es gehe so, dass ich in der drop()-methode wieder auf die data vom event zugreifen kann, aber an der Stelle ist sie IMMER NULL.
ich hab am anfang auch probiert, einfach nur m_tree.getSelection() dem data feld vom event zuzuweisen, aber das kam auch nicht an.
Was beachte ich dabei nicht? Ich hab mir jetzt erstmal damit beholfen, im dragSetData die dragSource einer membervariable zuzuweisen und dann im drop() drauf zuzugreifen. Aber ich find das nicht wirklich schön
Gruss Vayu