XUL statique

Le contenu du Wizard page d'un XML component est décrit en XUL. Les paramètres attendus par le template d'un XML component sont décrits par des contrôles XUL.

L'attribut id d'un contrôle XUL correspond au nom du paramètre à utiliser dans le template.

Vous pouvez trouver des exemple de XML component avec les différents controls XUL dans le catalogue usecases-catalog/Components/Xul

Pour plus d'information sur la syntaxe XUL, vous pouvez aller voir le site de mozilla.

Cette section organise les elements XUL de la façon suivante :

  • XUL controls : contrôles XUL utilisés dans les paramètres du template :
    • textbox : champ de texte.
    • checkbox cases à cocher.
    • radio : bouton radio.
    • radiogroup : groupe de boutons radio.
    • menulist : menu déroulant (Drop-down Lists).
    • tree : boite de liste d'élements, linéaire ou en arbre, avec plusieurs colonnes.
    • listbox : boite de liste d'élements.
  • XUL buttons : boutons qui permettent d'ouvrir des fenêtre de navigation, de prévisualisation,... :
    • Type folder : ouvre une fenêtre de dialogue pour sélectionner un répertoire.
    • Type package : ouvre une fenêtre de dialogue pour sélectionner un package.
    • Type src : ouvre une fenêtre de dialogue pour sélectionner un fichier source Java.
    • Type class/classText : ouvre une fenêtre de dialogue pour sélectionner une classe Java.
    • Type preview : ouvre la fenêtre de pré-visualisation de la génération de code.
  • XUL elements : élements de présentation :

Javascript events

Les événements des contrôles XUL font appel à des fonctions javascript. Le namespace javascript: doit être placé devant le nom de la fonction à appeler comme ceci :

  <textbox id="textboxParam" oninput="javascript:validate();"  />

validate est une fonction javascript à appeler lorsque la valeur du contrôle XUL est modifiée.

XUL controls

textbox

Description XUL

La description XUL :

<label value="textbox parameter:" />                            
<textbox id="textboxParam" flex="1"  />

permet de générer l'interface SWT :

Voici les attributs du contrôle XUL :

Nom attributDescriptionObligatoire ?
idID du contrôle XUL utilisé dans le template et script (voir document.getElementById(id)).Oui
valueValeur de la textbox.Non
readonlytrue si le contrôle doit être en lecture-seule et false sinon.Non
disabledtrue si le contrôle doit être désactivé et false sinon.Non

Voici les évenements (attributs) du contrôle XUL :

Nom attributDescriptionObligatoire ?
onkeyupAppel un script qui est déclenché lorsque une touche du clavier est relaché dans ce contrôle.Non
oninputAppel un script qui est déclenché lorsque la valeur du contrôle est modifiée.Non

Template

Un exemple de template Freemarker serait :

textbox parameter: ${textboxParam} 

Cliquez sur la section Freemarker, Velocity, XSLT pour utiliser la valeur de ce contrôle XUL dans un template.

Script

Cliquez sur la section script, pour gérer ce contrôle XUL en Javascript.

checkbox

Description XUL

La description XUL :

<checkbox id="checkboxParam" checked="true" label="checkbox parameter" flex="1" />

permet de générer l'interface SWT :

Voici les attributs du contrôle XUL :

Nom attributDescriptionObligatoire ?
idID du contrôle XUL utilisé dans le template et script (voir document.getElementById(id)).Oui
labelLabel de la checkboxNon
checkedtrue si la checkbox doit être cochée et false sinon.Non
disabledtrue si le contrôle doit être désactivé et false sinon.Non

Voici les évenements (attributs) du contrôle XUL :

Nom attributDescriptionObligatoire ?
oncommandAppel un script qui est déclenché lorsque le contrôle est coché ou non.Non

Template

Un exemple de template Freemarker serait :

checkbox parameter is <#if checkboxParam >checked<#else>not checked</#if>

Cliquez sur la section Freemarker, Velocity, XSLT pour utiliser la valeur de ce contrôle XUL dans un template.

Script

Cliquez sur la section script, pour gérer ce contrôle XUL en Javascript.

radio

Description XUL

La description XUL :

<radio id="radio1Param" label="radio 1"/>
<radio id="radio2Param" selected="true" label="radio 2"/>
<radio id="radio3Param" label="radio 3"/>

permet de générer l'interface SWT :

Voici les attributs du contrôle XUL :

Nom attributDescriptionObligatoire ?
idID du contrôle XUL utilisé dans le template et script (voir document.getElementById(id)).Oui
labelLabel du radio.Non
valueValeur du radio (utilisé dans le template).Oui
selectedtrue si le radio doit être sélectionné et false sinon.Non
disabledtrue si le contrôle doit être désactivé et false sinon.Non

Template

Un exemple de template Freemarker serait :

radio 1 is <#if radio1Param >selected<#else>not selected</#if>
radio 2 is <#if radio2Param >selected<#else>not selected</#if>
radio 3 is <#if radio3Param >selected<#else>not selected</#if>

Cliquez sur la section Freemarker, Velocity, XSLT pour utiliser la valeur de ce contrôle XUL dans un template.

Script

Cliquez sur la section script, pour gérer ce contrôle XUL en Javascript.

radiogroup

Description XUL

La description XUL :

<radiogroup flex="1" id="radios" >
    <radio value="radio1Value" label="radio 1" />
    <radio value="radio2Value" selected="true" label="radio 2"/>
    <radio value="radio3Value" label="radio 3"/>
</radiogroup>

permet de générer l'interface SWT :

Voici les attributs du contrôle XUL :

Nom attributDescriptionObligatoire ?
idID du contrôle XUL utilisé dans le template et script (voir document.getElementById(id)).Oui
orientvertical si les radios doivent être affichés verticalement et horizontal si les radios doivent être affichés horzontalement. Par défaut orient="vertical"Non

Voici les évenements (attributs) du contrôle XUL :

Nom attributDescriptionObligatoire ?
onchangeAppel un script qui est déclenché lorsque un radio est coché.Non

Template

Un exemple de template Freemarker serait :

Radio value selected : ${radios}

Cliquez sur la section Freemarker, Velocity, XSLT pour utiliser la valeur de ce contrôle XUL dans un template.

Script

Cliquez sur la section script, pour gérer ce contrôle XUL en Javascript.

menulist (Drop-down Lists)

Description XUL

La description XUL :

<label value="firstCombo:" />
<menulist id="firstCombo" editable="true" >
  <menupopup>
    <menuitem label="Car"/>
    <menuitem label="Taxi"/>
    <menuitem label="Bus" selected="true"/>
    <menuitem label="Train"/>
  </menupopup>
</menulist>

permet de générer l'interface SWT :

Voici les attributs du contrôle XUL (menulist) :

attribute nameDescriptionRequired ?
idID du contrôle XUL utilisé dans le template et script (voir document.getElementById(id)).Oui
editabletrue si menulist doit être editable et false sinon.Non
disabledtrue si le contrôle doit être désactivé et false sinon.Non

Voici les évenements (attributs) du contrôle XUL :

attribute nameDescriptionRequired ?
onchangeAppel un script qui est déclenché lorsqu'un item est sélectionné.Non
oninputAppel un script qui est déclenché lorsque la valeur du contrôle (editable="true") est modifiée.Non

Template

Un exemple de template Freemarker serait :

Value of first combo: ${firstCombo}

Cliquez sur la section Freemarker, Velocity, XSLT pour utiliser la valeur de ce contrôle XUL dans un template.

Script

Cliquez sur la section script, pour gérer ce contrôle XUL en Javascript.

tree

Description XUL

La description XUL :

<tree id="treeParam" checked="true" flex="1" >
  <treecols>
    <treecol label="Fields" flex="1"/>
  </treecols>
  <treechildren>
    <treeitem checked="true" >
      <treerow>
        <treecell label="field 1" />
      </treerow>
    </treeitem>  
    <treeitem>
      <treerow>
        <treecell label="field 2" />
      </treerow>
    </treeitem>                                             
  </treechildren>
</tree>

permet de générer l'interface SWT :

Voici les attributs du contrôle XUL (tree) :

attribute nameDescriptionRequired ?
idID du contrôle XUL utilisé dans le template et script (voir document.getElementById(id)).Oui

Template

Un exemple de template Freemarker serait :

<#if treeParam?is_hash >fields is Map</#if>

List of tree item selected : 
<#list treeParam?keys as key>${key} </#list> 

Cliquez sur la section Freemarker, Velocity, XSLT pour utiliser la valeur de ce contrôle XUL dans un template.

Script

Cliquez sur la section script, pour gérer ce contrôle XUL en Javascript.

listbox

Description XUL

La description XUL :

<listbox id="fields" flex="1" linesVisible="true" seltype="multiple" >
    <listhead>
      <listheader label="Field name" />
      <listheader label="Field type" />
    </listhead>
    <listcols>
      <listcol flex="1" />
      <listcol flex="1">
        <listcolitem label="java.lang.String" />
        <listcolitem label="java.lang.Integer" />
        <listcolitem label="java.util.Date" />
      </listcol>
    </listcols>       
    <listitem>
      <listcell label="name" ></listcell>
      <listcell label="java.lang.String" ></listcell>
    </listitem>                                        
    <listitem>
      <listcell label="login" ></listcell>
      <listcell label="java.lang.String" ></listcell>
    </listitem>                                                            
</listbox>                                                              

permet de générer l'interface SWT :

Voici les attributs du contrôle XUL (listbox) :

Nom attributDescriptionObligatoire ?
idID du contrôle XUL utilisé dans le template et script (voir document.getElementById(id)).Oui
linesVisibletrue si la listbox doit afficher les lignes et false sinon.Non
seltypemultiple si plusieurs lignes peuvent être sélectionné et single dans le cas contraire.Non

Template

Un exemple de template Freemarker serait :

<#assign itemCount = fields.getItemCount() />
<#-- Fields declaration -->
<#if itemCount != 0 >
<#list 0..itemCount -1 as i>
<#assign tableItem = fields.getItem(i) />
<#assign fieldName = tableItem.getText(0) />
<#assign fieldType = tableItem.getText(1) />
  private ${fieldType} ${fieldName};
</#list>
</#if>

Cliquez sur la section Freemarker, Velocity, XSLT pour utiliser la valeur de ce contrôle XUL dans un template.

Script

Cliquez sur la section script, pour gérer ce contrôle XUL en Javascript.

XUL buttons

Un bouton XUL s'écrit de la façon suivante :

<button label="OK" />

Here XUL control attributes :

Nom attributDescriptionObligatoire ?
labelLabel du bouttonNo
typeType du Button(folder, package,...). Voir section suivante.No
oncommandEvenement Click qui peut appeler des fonctions JavasriptNo

Akrogen définit plusieurs type de boutons qui est déterminés par son attribut type.

folder type

Ce type de bouton permet d'afficher la fenêtre de navigation des répertoire de votre projet Eclipse :

Ce bouton doit être lié à un control XUL textbox à l'aide de l'attribut target. Cette textbox contiendra la valeur du répertoire sélectionné.

La description XUL :

<label value="folderName:" />
<textbox id="folderName" flex="1" />
<button type="folder" target="folderName" label="Browse..." />

permet de générer l'interface SWT :

package type

Ce type de bouton permet d'afficher la fenêtre de navigation des packages de votre projet Eclipse :

Ce bouton doit être lié à un control XUL textbox à l'aide de l'attribut target. Cette textbox contiendra la valeur du package sélectionné.

La description XUL :

<label value="packageName:" />
<textbox id="packageName" flex="1" />
<button type="package" target="packageName" label="Browse..." />

permet de générer l'interface SWT :

source type

Ce type de bouton permet d'afficher la fenêtre de navigation des sources de votre projet Eclipse :

Ce bouton doit être lié à un control XUL textbox à l'aide de l'attribut target. Cette textbox contiendra la valeur de la source sélectionné.

La description XUL :

<label value="sourceName:" />
<textbox id="sourceName" flex="1" />
<button type="source" target="sourceName" label="Browse..." />

permet de générer l'interface SWT :

class/classText type

Ce type de bouton permet d'afficher la fenêtre de navigation des class JAVA de votre projet Eclipse :

Ce bouton doit être lié à un control XUL textbox à l'aide de l'attribut target. Cette textbox contiendra la valeur de la classe sélectionné.

La description XUL :

<label value="className:" />
<textbox id="className" flex="1" />
<button type="class" target="className" label="Browse..." />

permet de générer l'interface SWT :

preview type

Ce type de bouton permet de prévisualiser le code généré du composant :

La description XUL :

<button type="preview" label="Preview..." />

permet de générer l'interface SWT :

XUL elements

tabbox

La description XUL :

<tabbox>
  <tabs>
    <tab label="title/description" />                                           
    <tab label="model" />
    <tab label="input" selected="true" />
    <tab label="output"/>
  </tabs>                                         
  <tabpanels>
    <!-- Title/Description -->
    <tabpanel id="title_description_tabpanel" orient="vertical">
      <!-- ...Tab panel content -->
    </tabpanel> 
        <!-- Model -->
    <tabpanel id="model_tabpanel" orient="vertical">
      <!-- ...Tab panel content -->
    </tabpanel> 
    <!-- Input -->      
    <tabpanel id="input_tabpanel" orient="vertical">
      <!-- ...Tab panel content -->
    </tabpanel> 
        <!-- Output -->
    <tabpanel id="output_tabpanel" orient="vertical">
      <!-- ...Tab panel content -->
    </tabpanel>                                                         
  </tabpanels>
</tabbox>                                                               

permet de générer l'interface SWT :

Voici les évenements (attributs) du contrôle XUL (sur l'élement tabs):

Nom attributDescriptionObligatoire ?
onselectAppel un script qui est déclenché lorsque un onglet est sélectionné.Non

groupbox

La description XUL :

<groupbox orient="horizontal" flex="1">
  <caption label="Search Criteria"/>            
    <!-- ... XUL content -->
</groupbox>                                                             

permet de générer l'interface SWT :