HelloWord component

Ce tutorial permet de créer un XML component HelloWord, qui permet de génerer un fichier qui contiendra Hello $user!. Le template utilisé dans ce tutorial attend un paramètre user de type String.

Vous pouvez trouver l'exemple ci dessous dans le catalogue usecases-catalog/Components/HelloWord/HelloWord.akgncpt.xml.

Voici le Wizard que l'on souhaite obtenir :

Voici le fichier que l'on souhaite obtenir :

  Hello word!

Les étapes de ce tutorial sont :

Template

Dans cet exemple, le template sera écrit en Freemarker. Veuillez consultez le site Freemarker pour plus d'informations sur la syntaxe FTL.

Dans notre cas le tempate attend un paramètre string user.

Voici le template Freemarker helloWord.ftl :

Hello ${user}!  

Créer le fichier template helloWord.ftl dans le répertoire Templates/ftl/HelloWord/ du catalogue MyAkrogenCatalog.

XML component

Un XML component est une description XML du Wizard Page Eclipse. Dans ce fichier XML, vous pouvez définir :

  • des informations comme le titre, la description du composant,...
  • les input qui concernent les paramètres attendus par le template et le nom du fichier de sortie et son répertoire de base. Le contenu du Wizard page est décrit en XUL.
  • les output qui concernent la génération, autrement dit si le résultat de la génération doit créer ou mettre à jour un fichier et le template à utiliser.

Voici le XML component que nous allons utiliser :

<?xml version="1.0" encoding="UTF-8"?>
<component>
  <input>
    <page title="Akrogen Hello Word" >
        <description>HelloWord Akrogen component to generate file with content "Hello $user!".</description>
        <box flex="1" id="" orient="vertical"
             xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
          <hbox>
            <label value="User: ($user)" />
            <textbox id="user" flex="1" />
          </hbox>
          <hbox>
            <label value="Output base dir:" />
            <textbox id="outputBaseDir" flex="1" />
            <button type="folder" target="outputBaseDir" label="Browse..." />
          </hbox>
          <hbox>
            <label value="Output file name:" />
            <textbox id="outputFileName" flex="1" />
          </hbox>       
          <hbox>
            <button type="preview" label="Preview..." />
          </hbox>                       
        </box>                  
    </page>
  </input>
  <output>
    <file>
      <template uri="/ftl/HelloWord/helloWord.ftl" />
    </file>
  </output>
</component>

Créer le fichier XML component HelloWord.akgncpt.xml dans le répertoire Components/HelloWord/ du catalogue MyAkrogenCatalog.

Voici les explications de ce XML component :

Input/page element

Lélement input/page permet de décrire le Wizard page eclipse :

  • la textbox XUL d'id user est le paramètre du template.
  • la textbox XUL d'id outputBaseDir est le répertoire de base du fichier à génerer.
  • le button XUL de type folder permet d'afficher un bouton qui permettent d'ouvrir une fenêtre dialogue qui permettent de sélectionner un répertoire et mettre le résultat de la sélection dans la texbox d'id outputBaseDir (indiqué par l'élement target).
  • la textbox XUL d'id outputFileName est le nom du fichier à génerer.
  • le button XUL de type preview permet de déclencher la previsualisation du code généré par le XML component.

Concernant XUL, il est important :

  • que le contenu XUL de l'élement input/page commence par box, hbox ou vbox.
  • que cet élement contienne le namespace "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"

Output element

L'élement ouptput permet de décrire les paramètres de sorties :

  • l'élément file permet d'indiquer qu'un fichier doit être généré.
  • l'élément template permet d'indiquer le template à utiliser :
    • L'attribut uri permet d'indiquer le chemin du template. Le répertoire de base des templates est celui du répertoire Templates du catalogue.
    • Le moteur de template à utiliser est indiqué par l'exstenion du template :
      • ftl pour Freemarker.
      • vm pour Velocity.
      • xsl pour XSLT.

    Mais si vous ne voulez pas utiliser cette extension, il est possible d'utiliser l'attribut engine pour indiquer le moteur de template à utiliser.

XML component use

Rafraichissez la vue catalogue. HelloWord doit apparaître dans le catalogue :

Double cliquer sur le component HelloWord pour ouvrir le Wizard page.