mercredi 28 avril 2010

Présentation de XUL

Depuis le lancement de ce blog, je m'aperçois qu'un grand nombre de personne viennent visiter ce site pour y trouver des informations sur XULRunner et XPCOM (C++ et Java). C'est pourquoi je vais vous écrire une série de posts à ce sujet un peu plus tôt que je l'avais prévu.

Voici la liste des posts prévus :

Commençons par la présentation de XUL !

1. Le langage
XUL est avant tout un langage dérivé du XML permettant de générer des interfaces graphiques.
Un fichier XUL doit être lu par le runtime XULRunner ou une application compatible (comme Firefox ou Thunderbird), au même titre qu’une page HTML.
Un fichier XUL peut également intégrer du Javascript, ainsi que n’importe qu’elle balise HTML suivant les paramètres donnés à la balise « windows ».

2. Exemple de code XUL
Dans l’exemple qui suit, les balises sont interprétée en XUL par défaut et en XHTML pour les balises précédées de « html: »

2.1. Code
<window id="hello"  
 title="HTML" 
 width="400" 
 height="300" 
 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
 xmlns:html="http://www.w3.org/1999/xhtml"
 >
 <vbox>
  <hbox width="500">
   <html:input id="hin" type="text" value="taper un texte">
   <html:input onclick="pass();" type="button" value="Submit">
  </html:input></html:input></hbox> 
  
  <box>
   <label id="xlab" value="Vide">
  </label></box>

 </vbox> 
 <script>
  function pass(){
   var source = document.getElementById("hin");
   var target = document.getElementById("xlab");
   target.value = source.value;
  }
 </script>
</window>


2.2. Aperçu

3. Exemple de menu XUL
Exemple de menu généré à partir d’une source RDF externe.

3.1. Code
<window xmlns:html="http://www.w3.org/1999/xhtml"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<toolbox>
 <menubar id="windowlist-menubar">
  <menu label="Window">
   <menupopup datasources="rdf:window-mediator" id="window-menu" ref="NC:WindowMediatorRoot">
    <template>
     <rule>
      <menuitem label="rdf:http://home.netscape.com/NC-rdf#Name" uri="rdf:*"></menuitem>
     </rule>
    </template>
   </menupopup>
  </menu>          
 </menubar>
</toolbox>
</window>


3.2. Aperçu

3.3. Le Runtime
Le runtime XULRunner peut être téléchargé ici :
ftp://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/

Ce logiciel, actuellement dans sa version 1.9.0.5, permet de lancer les applications XUL.

4. L’application XUL
Une application XUL est un ensemble de fichiers organisés de tel façon qu’ils puissent être utilisés par l’executable XULRunner.

Dans l’application XUL suivante, la page main.xul est affichée. Celle-ci utilise des fonctions du composant « MyComponent ».
4.1. Architecture d’une application XUL

Cette architecture peut être générée automatiquement par le plugin XULBooster pour Eclipse (http://www.xulbooster.org/).

La commande suivante permet de lancer une application XUL :
xulrunner {CHEMIN_DE_MON_APPLICATION_XUL}/application.ini

5. Le SDK
Le SDK XULRunner peut être téléchargé ici :
ftp://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/

Il contient principalement :
- Les outils et librairies permettant de générer les composants XPCOM
- Les outils permettant de générer une extension Thunderbird, Firefox ou une autre application XUL gérant le système d’extension.

6. XPCOM
XPCOM est une interface permettant à des composants de communiquer entre eux indépendamment du langage dans lequel ils sont écrit.

Il permet entre autre la communication entre les langages suivants :
- Javascript
- Java
- C++

Aucun commentaire:

Enregistrer un commentaire