Bonjour,
J'ai un petit problème avec le drag n drop de Java 6 : Comment faire, et quelle est la méthode la plus propre, pour que l'action du drag (move ou copy par exemple) soit en fait dépendante du composant cible du drop, et non du composant source ?
Je m'explique par un exemple :
Soit 2 JTree, A et B, contenant le même type d'objets. Comment faire le comportement suivant :
- Si on drag depuis A, puis on drop sur A => Action = MOVE
- Si on drag depuis B, puis on drop sur B => Action = MOVE
- Si on drag depuis A, puis on drop sur B => Action = COPY
Le problème vient du fait que lors de l'implémentation de la méthode importData du transferthandler associé, je n'ai aucun moyen de connaitre le composant source (j'ai accès qu'au composant cible), je ne peux donc différencier le fait que si après avoir droppé les éléments au bon endroit, je dois les supprimer ou non de la source...
Comment dois-je m'y prendre ?
J'ai essayé de passer par le transferable, afin qu'il mémorise le composant qui l'a créé, et ajouté une méthode pour le retourner, cependant, le transferable récupéré n'est pas un objet du type de mon transferable (on dirait une sorte de stub...), et je ne peux invoquer que les méthodes définies dans l'interface transferable...
Si quelqu'un a déjà rencontré ce problème, ou a une idée, merci de m'aider![]()
Partager