Bonjour !

Une fois de plus, me voilà bloqué dans mon application RCP...
J'ai un TreeViewer dans une vue, ( qui contient des "répertoires" et des raccourcis, qui dérivent d'une classe commune ElementArborescence).

Je voudrai pourvoir faire des glisser déposer de raccourcis/répertoires dans les répertoires ( de la même vue donc), le problème, c'est que j'arrive pas à faire des glisser déposer de classes à moi, j'ai vu que les Transferts permettaient de transférer des données genre File, String facilement, mais je trouve rien concernant les classes persos.

J'ai déjà regardé ici :

http://www.developpez.net/forums/d33...-drop-eclipse/

Pour le moment j'ai écrit ça dans ma ViewPart:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
private void addDrag() {
		int ops = DND.DROP_COPY | DND.DROP_MOVE;
		final LocalSelectionTransfer transfert = LocalSelectionTransfer.getTransfer();
		this.treeViewer.addDragSupport(ops, new Transfer[] {transfert}, new DragSourceListener() {
			@Override
			public void dragStart(DragSourceEvent event) {
				ISelection selection = ViewRaccourci.this.treeViewer.getSelection();
				if (selection == null){
					event.doit = false;
				}
			}
 
			@Override
			public void dragSetData(DragSourceEvent event) {
				ISelection selection = ViewRaccourci.this.treeViewer.getSelection();
 
				Object object = ((IStructuredSelection)selection).getFirstElement();
				event.data = object; 
				System.out.println("drag "+object);
			}
 
			@Override
			public void dragFinished(DragSourceEvent event) {
				// rien à faire
			}
		});
	}
 
	private void addDrop(){
		int ops = DND.DROP_COPY | DND.DROP_MOVE;
		final LocalSelectionTransfer transfert = LocalSelectionTransfer.getTransfer();
		this.treeViewer.addDropSupport(ops, new Transfer[]{transfert}, new ViewerDropAdapter(this.treeViewer){
			@Override
			public boolean performDrop(Object data) {
				System.out.println("drop "+data);
				return true;
			}
 
			@Override
			public boolean validateDrop(Object target, int operation, TransferData transferType) {
				return true;
			}} 
 
 
		);
}
Quand je fais un drag and drop ,dans la méthode performDrop, data est égal à null...

Je pense qu'il y a un gros truc à côté duquel je suis passé, quelqu'un pourrai il me dire comment faire ce que je veux??

merci !