Ellipse Tutorial

Comment utiliser le composant <web:ChoiceSelector> ?



ATTENTION : Tutorial en cours d'écriture ! N'hésitez pas à nous signaler toute erreur ou suggestion.

Accès rapide :
   Syntaxe générale
   Répétition d'éléments de choix

Syntaxe générale

Un composant <web:ChoiceSelector> permet la saisie d'une valeur parmi une liste de choix. Le composant <ChoiceSelector> permet de définir la liste de choix. Le composant <ChoiceElement> permet de définir un choix donné : ce composant doit, bien entendu, être placé dans la liste. Voici quelques exemples de listes, avec les trois modes supportés.

<div>
    Sex :
    <web:ChoiceSelector id="dpdSex" selectorType="dropdown" autoPost="true">
        <web:ChoiceElement text="male" value="0" />
        <web:ChoiceElement text="female" value="1" />
    </web:ChoiceSelector> <br/> <br/>

    Sex 2 :
    <web:ChoiceSelector id="rdoSex2" selectorType="radio_buttons" value="0">
        <web:ChoiceElement text="male" value="0" />
        <web:ChoiceElement text="female" value="1" />
    </web:ChoiceSelector> <br/> <br/>

    Sex 3 :
    <web:ChoiceSelector id="lstSex3" selectorType="list" value="1">
        <web:ChoiceElement text="male" value="0" />
        <web:ChoiceElement text="female" value="1" />
    </web:ChoiceSelector> <br/> <br/>
</div>

Répétition d'éléments de choix

Il est possible de générer dynamiquement une liste de choix, à partir d'un tableau de valeur. Afin de mieux comprendre les choses, regardons les deux extraits de code suivants. Le premier correspond à la classe de page Web : la méthode getCities permettant l'extraction d'un tableau d'objets de description de villes. Le second extrait montre comment répéter les éléments à partir de ces données.

01 package corelib.services.web.samples.virtualcaddy.webpages.samples;
02
03 import corelib.services.web.webapplications.WebPage;
04
05 public class ChoiceSelectorSamples extends WebPage {
06
07
08     public CityPair [] getCities() {
09         return new CityPair [] {
10             new CityPair( "Lyon", 0 ),
11             new CityPair( "Nice", 1 ),
12             new CityPair( "Paris", 2 ),
13             new CityPair( "Toulouse", 3 )
14         };
15     }
16
17
18
19     public class CityPair {
20         private String name;
21         private int code;
22
23         public CityPair( String name, int code ) {
24             this.name = name;
25             this.code = code;
26         }
27
28         public String getName() {
29             return this.name;
30         }
31
32         public int getCode() {
33             return this.code;
34         }
35     }
36
37 }

<div>
    City :
    <web:ChoiceSelector id="dpdCity" selectorType="dropdown" autoPost="true">
        <web:Repeater values="#{this.cities}" elementAlias="city">
            <web:ChoiceElement text="#{city.name}" value="#{city.code}" />
        </web:Repeater>
    </web:ChoiceSelector> <br/>
</div>

Notez que pour la liaison aux données, ce sont les propriétés des différents objets qui sont utilisées. Ainsi derrière l'expression de liaison #{this.cities} se cache un appel à la méthode getCities. De même, derrière l'expression #{city.name} se cache un appel à la méthode getName (city étant un alias sur, tour à tour, chaque élément du tableau de villes).

ATTENTION : Ellipse Framework vous est proposé en version beta (d'évaluation) afin de vous permettre d'évaluer ce framework. Infini Software se dégage de toutes responsabilités relatives à l'utilisation de ce framework. De plus, Infini Software ne pourra nullement être tenu responsable de l'utilisation des informations présentes dans ces tutoriaux.

Dominique LIARD - © 2007..2010 SARL Infini Software - Tous droits réservés
Les autres marques et les noms de produits cités dans ces documents sont la propriété de leurs détenteurs respectifs.