C'est une sacrée idée reçue... Le drag'and drop est implémenté de base dans Swing.
Ces librairies permettent à l'image d'Eclipse, de déplacer des vues ou tu veux sur ta fenêtre, de les fixer, de les détacher, ...
Tu trouveras beaucoup d'infos là-dedans : Introduction to Drag and Drop and Data Transfer
Java6 a également bien amélioré la gestion du DnD. Mais c'est un autre sujet.
Les framework de docking gèrent tous le drag'n drop et ça marche pas mal du tout. Je n'ai jamais entendu que le DnD de java était si mauvais (à part l'implémentation avant Java6 qui ne permettait pas beaucoup de choses).
Y a quoi qui n'était pas faisable avant Java 6...
Il me semble que tout était faisable. Qu'est-ce qui a changé en Java 6 ?
Je sais qu'il y a eu un changement majeur du drag and drop avec Java 1.4 qui a beaucoup facilité le developpement, mais il me semble que dès ce moment, on peut déja tout faire de manière assez aisée.
Comment tu fais dans un arbre pour que l'utilisateur comprenne exactement où il drope son élément ? A savoir dans un noeud (hiérarchique) ou à côté d'un noeud (réordonner). Il y a des librairies comme le TreeWrapper qui donne un indicateur visuel mais pas toujours clair selon le comportement choisi.
Les indicateurs visuels étaient une des grosses critique avant Java6. Maintenant tu les as de base pour les JTable, JList, JTree.
Le problème n'était pas vraiment qu'il n'était pas possible de faire des choses, mais que l'utilisateur ne pouvait pas toujours comprendre clairement ce qu'il faisait lors d'un drag'n drop.
Ah ok, je savais même pas que ça avait été ajouté dans Java 6
Mais certaines personnes l'avaient implémentée eux mêmes cet indicateur visuel. Santhosh Kumar l'avait fait : http://www.jroller.com/santhosh/date/20050527
Je viens de regarder myDoggy, ca ressemble beaucoup a ce qui est utilisé dans l'IDE Intellij Idea, je suppose donc que c'est le même, c'est pas mal. Sinon Infonode a l'air sympa aussi et peut être plus évolué, du moins les exemple que j'ai vu tourner. Cela dit je n'ai pas développé avec et peut être qu'on peut faire plus de choses avec myDoggy qu'a premiere vue (semble pas permettre d'avoir plusieurs panels ouvert en même temps sur un même coté de l'appli)
Personnellement, je doute qu'IntelliJ IDea utilise un outil comme MyDoggy
Je ne dis pas que MyDoggy soit inadapté, mais je pense qu'ils ont soit développé leur propre système de docking soit qu'ils ont utilisés une framework professionnel ou encore mis une surcouche sur un produit OpenSource.
Parce que quand on voit qu'il restait encore un gros bug sur MyDoggy, je doute qu'ils puissent se permettre de l'utiliser...
MyDoggy est inspiré du fonctionnement du docking d'IntelliJ en fait. Ca se veut un clone et il a été développé de zéro apparemment.
Si mais pas de la même façon que la plupart des framework de docking en fait.Envoyé par kpouer
Pour avoir 2 panels ouverts en même temps tu dois ouvrir le premier puis faire un ctrl+clic sur le second, ce qui l'ajoutera (sinon le menu popup avec l'option "Aggregate"). Le problème c'est que si tu as un 3e panel et que tu veux l'ouvrir par dessus les 2 autres, ça n'est pas possible. Il va cacher tes 2 précédents et afficher le 3 (si tu ne fais pas Ctrl+Clic, sinon il va simplement l'ajouter aux 2 autres déjà affichés).
C'est pas mal pour avoir des volets destinés à être souvent fermés. Sinon c'est pas l'idéal.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager