# Java > Interfaces Graphiques en Java > AWT/Swing >  Le docking sous Swing/Java 6.0 : vos avis [Dbat]

## sironimo

Bonjour, en recherchant les nouveauts Swing apportes par le passage  Mustang (Java 6.0), je suis tomb sur le rsum d'une session de chat technique de l'quipe de dveloppez.com. 

L une question de lunatix a attir fortement mon attention  ::lol::  concernant le docking framework. Vous retrouverez ICI la discussion .




> * Pas de docking framework de prevu pour swing pour la suite (une DockJframe qui par defaut pourrait stocker ses sous fenetres dans des barres laterales) ? lunatix
> 
> Le docking a va d'abord atterir dans SwingX : rien d'officiel ni de dfinitif ni de prvu.


Honntement, je connaissais le concept mais pas la nomenclature. Du coup, je me suis mis  la recherche de docking sous Swing et j'en ai trouv quelques uns :
- MyDoggy
- Java Dock Component
- VL Docking

Je voulais donc vous inviter  donner vos avis sur ce concept que je trouve tout simplement gnial pour stocker les menus sur les fentres. Vous pouvez aussi donner vos avis sur les diffrentes librairies et en proposer d'autres. Et pourquoi pas en prvoir un en standard pour Dolphin?

Merci de vos avis  :;):

----------


## schniouf

MyDoggy est tout bonnement incroyable  ::hola::   ::ave::   ::ccool::  
http://mydoggy.sourceforge.net/

----------


## bobuse

Moi j'utilise Infonode Docking Windows qui est assez simple et efficace (disons que a me suffit).
http://www.infonode.net/index.html?idw
http://sourceforge.net/projects/infonode/

----------


## sironimo

Ok merci pour vos avis. Personne d'autre n'en utilise ou n'a d'avis sur le sujet ?

C'est vrai que se serait allchant de l'avoir en standard dans la prochaine version de Java ie Dolphin.

----------


## om

Ah c'est gnial (vu les screenshots), et dire que j'en ai programm un moi-mme (sauf qu'on ne peut pas rduire les fenetres dans une barre, on peut juste les dtacher d'un jtabbedpane)...
Je regarderai a de plus prs  ::):

----------


## sironimo

Bon j'ai commenc  regarder de plus prs et je dois reconnatre que ma prfrence va pour l'instant sur MyDoggy, pratique et efficace.

----------


## sironimo

Je vais mme me lancer dans un petit tutorial sur MyDoggy : installation, configuration et utilisation  ::king::

----------


## natha

Trs bonne ide.
J'attends avec impatience  ::):

----------


## n!co

On peut aussi citer Netbeans Plateform et Eclipse RCP (bien qu'englobant bien plus que du docking).

Pour Netbeans, que j'utilise, le docking est performant et il n'y a rien  faire pour le mettre en oeuvre. 
Par contre je lui reprocherais un fonctionnement trop rigide, pas plus pas moins que ce que l'on peut faire durant l'utilisation de netbeans en lui meme.

n!co

----------


## sinok

A noter que le docking framework de netbeans a t sorti de la plateforme et est donc utilisable de faon indpendante: 

https://jdocking.dev.java.net/

----------


## bassim

> Je vais mme me lancer dans un petit tutorial sur MyDoggy : installation, configuration et utilisation


j'ai trouv pas mal de difficults  utiliser ce framework , des nouvelles sur ton tutoriel *sironimo*  ::bug::

----------


## bobuse

> A noter que le docking framework de netbeans a t sorti de la plateforme et est donc utilisable de faon indpendante: 
> 
> https://jdocking.dev.java.net/


Salut  ::):  

Et tu as le doc sur comment l’utiliser ? Parceque j’ai rien trouv pour l’instant  ::?:

----------


## zenii

Bonjour,

j'utilise Jide Docking Frameworks qui marche plutt bien.

Je rencontre un seul problme majeur : cette librairie ne supporte ni le FlowLayout ni le GridBagLayout.

Est-ce le cas pour vos technologies ?

----------


## Fifan31

Bonjour,
Pour ma part, j'ai eu utilis *FlexDock* qui a rpondu  mes besoins de docking.
Je vais quand mme regarder les autres solutions proposes  :;):  
Merci  vous

----------


## natha

Salut,

Je me met doucement au docking. Je ne veux pas acheter de solution payante donc bye-bye Jide ou VLDocking.
Nos applications sont dj  un stade avanc donc je trouve dlicat d'intgrer Netbeans Platform.
J'ai donc essay Flexdock et MyDoggy.

*Flexdock :*
Semble fournir les fonctionnalits que je souhaiterais avoir dans l'idal MAIS :
- code compliqu  mettre en place
- peu d'explications pour l'utiliser
- 5 faons diffrentes de l'utiliser... au moins !!!
- plusieurs bugs nervants

Alors j'ai abandonn considrant ce produit trop jeune. J'attendrais une version 1.

*MyDoggy :*
- Ne fourni pas les fonctionnalits compltes d'un docking (comme eclipse par exemple), en tout cas pas de base.
- Ca ne me parait pas facile de modifier le plaf fournis... je suis en train de dvelopper le mien pour avoir le look qui me convient et ventuellement modifier certains comportements.
- Trs facile  mettre en oeuvre
- Trs bon tutorial sur le site mme : http://mydoggy.sourceforge.net/tutorial/tutorial.html

Ca serait quand mme sympa que la librairie Swing se dveloppe bien plus vite afin de couvrir les besoins actuels en terme de GUI. SwingX c'est bien, mais peu de composants sont stabiliss.

++

----------


## natha

Bon ben voil, aprs avoir utilis MyDoggy je me rend compte que a ne libre pas les composants correctement...

Ca ne posera pas de problme  ceux qui auront simplement une JFrame principale qui utilise MyDoggy, par contre, ceux comme moi qui l'utilisent dans des JFrame ouvertes  partir de la JFrame principale seront bien embts.

Flexdock et MyDoggy limins donc... je vais tester les autres.

----------


## nicorama

Euh... C'est quoi du docking... Ait cherch, ait pas trouv ::oops::

----------


## natha

> Euh... C'est quoi du docking... Ait cherch, ait pas trouv


Tu n'as srement pas t voir les librairies dont on parle ici... Flexdock, InfoNode, VLDocking... tu as donc trs mal cherch.  ::sm::

----------


## sinok

> Bon ben voil, aprs avoir utilis MyDoggy je me rend compte que a ne libre pas les composants correctement...
> 
> Ca ne posera pas de problme  ceux qui auront simplement une JFrame principale qui utilise MyDoggy, par contre, ceux comme moi qui l'utilisent dans des JFrame ouvertes  partir de la JFrame principale seront bien embts.
> 
> Flexdock et MyDoggy limins donc... je vais tester les autres.


Enfin pour ce genre de problmes, je te recommanderais plutt de poser la question directement sur le forum de MyDoggy

----------


## nicorama

> Tu n'as srement pas t voir les librairies dont on parle ici... Flexdock, InfoNode, VLDocking... tu as donc trs mal cherch.


Hou la mauvaise langue ! Si je suis all voir, Msieur, et j'y ai vu plein de fentres dans tous les sens, avec des interfaces o tu comprend plus rien tellement il faut avoir des yeux de mouches.
Et ca me dit quand mme pas ce que c'est, ou alors je change de topic parceque ca m'excite pas trop
 ::mouarf3::

----------


## natha

> Enfin pour ce genre de problmes, je te recommanderais plutt de poser la question directement sur le forum de MyDoggy


J'ai carrment post un bug en fait  ::roll:: 




> j'y ai vu plein de fentres dans tous les sens


Bah justement, c'est a ! Pouvoir positionner plein de fentres dans la mme fentre comme tu le souhaites, par drag'n drop, et pouvoir configurer leur comportement (volet cach, volet permanent, dialogue, ...).

----------


## natha

> J'ai carrment post un bug en fait


... et ils l'ont dj rsolu pour la prochaine version ! Je teste a cet aprem. Donc je retire le mal que j'ai dit sur MyDoggy  ::):

----------


## nicorama

> par drag'n drop, et pouvoir configurer leur comportement (volet cach, volet permanent, dialogue, ...).


Ah ben ca, ca m'interesse, le drag'n'drop. J'ai souvent pens que c'tait le talon d'achille des IDE Java par rapport au .Net
Vrai ?

----------


## Baptiste Wicht

> Ah ben ca, ca m'interesse, le drag'n'drop. J'ai souvent pens que c'tait le talon d'achille des IDE Java par rapport au .Net
> Vrai ?


C'est une sacre ide reue... Le drag'and drop est implment de base dans Swing. 

Ces librairies permettent  l'image d'Eclipse, de dplacer des vues ou tu veux sur ta fentre, de les fixer, de les dtacher, ...

Tu trouveras beaucoup d'infos l-dedans : Introduction to Drag and Drop and Data Transfer

----------


## natha

Java6 a galement bien amlior la gestion du DnD. Mais c'est un autre sujet.
Les framework de docking grent 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'implmentation avant Java6 qui ne permettait pas beaucoup de choses).

----------


## Baptiste Wicht

> ( part l'implmentation 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 ds ce moment, on peut dja tout faire de manire assez aise.

----------


## natha

> Y a quoi qui n'tait pas faisable avant Java 6...


Comment tu fais dans un arbre pour que l'utilisateur comprenne exactement o il drope son lment ? A savoir dans un noeud (hirarchique) ou  ct d'un noeud (rordonner). 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 problme 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.

----------


## Baptiste Wicht

> Comment tu fais dans un arbre pour que l'utilisateur comprenne exactement o il drope son lment ? A savoir dans un noeud (hirarchique) ou  ct d'un noeud (rordonner). 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 problme 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 mme pas que a avait t ajout dans Java 6  ::oops:: 

Mais certaines personnes l'avaient implmente eux mmes cet indicateur visuel. Santhosh Kumar l'avait fait : http://www.jroller.com/santhosh/date/20050527

----------


## natha

> Mais certaines personnes l'avaient implmente eux mmes cet indicateur visuel. Santhosh Kumar l'avait fait : http://www.jroller.com/santhosh/date/20050527


Oui, je suis abonn  ce blog, a solution est cool mais pas aussi intuitive que celle fournie par Mustang.  ::):  Un vrai plaisir de faire du drag'n drop maintenant.

----------


## kpouer

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 mme, 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 dvelopp 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 mme temps sur un mme cot de l'appli)

----------


## Baptiste Wicht

> 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 mme, 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 dvelopp 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 mme temps sur un mme 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 dvelopp leur propre systme de docking soit qu'ils ont utiliss 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...

----------


## natha

> Personnellement, je doute qu'IntelliJ IDea utilise un outil comme MyDoggy


MyDoggy est inspir du fonctionnement du docking d'IntelliJ en fait. Ca se veut un clone et il a t dvelopp de zro apparemment.




> semble pas permettre d'avoir plusieurs panels ouvert en mme temps sur un mme cot de l'appli


Si mais pas de la mme faon que la plupart des framework de docking en fait.
Pour avoir 2 panels ouverts en mme 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 problme 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 prcdents et afficher le 3 (si tu ne fais pas Ctrl+Clic, sinon il va simplement l'ajouter aux 2 autres dj affichs).

C'est pas mal pour avoir des volets destins  tre souvent ferms. Sinon c'est pas l'idal.

----------


## lunatix

> A noter que le docking framework de netbeans a t sorti de la plateforme et est donc utilisable de faon indpendante: 
> 
> https://jdocking.dev.java.net/


faut pas s'emballer pour celui la ! y'a des problemes de licences et de synergie avec l'equipe netbeans me semble.

----------

