XulDiag permet de voir le statut général de l'EasyGate. On peut ainsi s'informer sur :
Une version est disponible pour tout Firefox 2.0 ou 3beta1 sous linux :
XulDiag
L'identification des ports USB devrait se faire sans problème sur toute machine,
mais l'affichage des positions précises des périphériques ne se fera correctement qu'après modification du template : xul-diag.html et easygate-usb.js. (Rien de bien compliqué, il suffit de préciser les positions des éléments en fonction d'identifiants USB que l'on trouve dans /proc/bus/usb/devices).
En revanche, l'affichage de la connexion et du son reste spécifique à l'easygate.
L'application est scindée en trois principaux composants :
Sources : /chrome/content/xul-diag.html
C'est un simple fichier HTML qui est spécifique à chaque machine. Suivant le matériel inclus dans celle-ci, nous afficherons certains objets à des positions précisées dans ce fichier via des attributs HTML.
Sources : /chrome/content/xbl/*
Ces fichiers XBL permettent de définir les objets graphiques sous forme de fichier XML. Chaque balises insérées dans le template seront ainsi définies via un de ces fichiers qui sont un mélange entre XML et Javascript.
Pour simplifier, XBL permet de créer de nouveaux objets HTML en définissant leur sous éléments dans <content>***</content> et d'implémenter une interface avec un constructeur, un destructeur ainsi que des méthodes publiques et privées.
Sources : /components/*
Enfin, la partie la plus complexe : les composants permettant de dialoguer avec le système et ainsi de détecter les périphériques USB, le statut du router, etc.
Ce sont des objets XPCOM programmés en Javascript ou en Python.
Chaque objet est composé d'un fichier .idl pour en fixer son interface
et d'un fichier .js/.py pour son implémentation.
Les fichiers XBL vont donc simplement instancier un objet XPCOM et réagir en fonction des évènements qu'il va lui envoyer. Les XBL seront ainsi assez simples et cela nous permet de faciliter le développement graphique.