Informations G�n�rales   Screenshots   Download   Mod�le dynamique   Mod�le statique   Manuel utilisateur   API 

Mod�le dynamique

Gestion du XML

Nous utilisons l'interface SAX pour parser nos documents. Chaque objets est responsable de son chargement ou de sa sauvegarde en XML. (Il n'y a pas de super-objet qui cr�e toute la sc�ne)

SAX utilise une programmation �v�nementielle, � chaque d�but de balise SAX nous envoie un �v�nement (StartElement). Cet �v�nement est associ� avec le nom de la balise et ses attibuts.

Nous utilisons une pile pour repr�senter l'arbre XML, les m�thodes add et set sont toujours appliqu�es sur le sommet de pile. La DTD nous garantie que l'on ne va pas demander n'importe quoi aux objets.

Interactions avec l'utilisateur

Dans ce premier sc�nario, l'utilisateur clique sur un objet visible. Cet �v�nement est transmis � un objet MmGUICallback. Ce dernier d�cide des actions � mettre en oeuvre.



Il existe plusieurs modes de d�placement dans jMm :
Mode r�el
Ce mode indique aux objets si leur comportement doit �tre r�el ou pas. En effet dans un mode non r�aliste, un objet dragg� est oblig� de bouger, c'est un mode de mise au point. Tous les composants de l'objet sont d�plac�s de la m�me fa�on. L'attribut MmState.deplace est surcharg�.

Mode Multiple
Ce mode indique aux objets que leur d�placement est compl�tement libre, le MouseMotionListener ne fait plus bouger le MmObject, mais juste le MmGUIObject.

Gestion des librairies

Pour pouvoir mettre en place la gestion des librairies, nous avons ajout� une balise mmlib. Comme le chargement de nouveau �l�ment est dynamique, la dtd seule ne nous assure plus l'unicit� des id dans le syst�me. En effet si l'utilisateur d�cide de charger plusieurs fois le m�me �l�ment, cela risque de provoquer des conflits de id.
Nous avons donc mis en place un gestionnaire dynamique d'indentifiant. L'objet s'enregistre aupr�s de ce gestionnaire qui lui indique l'identifiant qu'il peut prendre dans cette session. Ce gestionnaire assure une convertion entre les identifiants de la librairie (interne) et ceux qui seront utilis� dans le Micro Monde.


Eric Bollengier eric@deesse
Fabien Grumelard fgrum@deesse
*SOURCEFORGE*