/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or any later version. * * Squale is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ package org.squale.welcom.struts.bean; import java.util.Collections; import java.util.Comparator; import java.util.Enumeration; import java.util.Iterator; import java.util.Locale; import java.util.Vector; import org.apache.commons.validator.GenericValidator; import org.apache.struts.util.MessageResources; /** * Ins�rez la description du type ici. Date de cr�ation : (31/10/2001 15:40:32) * * @author: Fabienne Madaule */ public class WComboValueLabel { /** la liste des WCouple */ private java.util.Vector liste; /** Resource */ private MessageResources resources; /** Locale */ private Locale locale; /** * Commentaire relatif au constructeur . * * @param pLocale : locale * @param pResources : Resources */ public WComboValueLabel( final MessageResources pResources, final Locale pLocale ) { super(); resources = pResources; locale = pLocale; liste = new Vector(); } /** * Commentaire relatif au constructeur . */ public WComboValueLabel() { this( null, null ); } /** * Ins�rez la description de la m�thode ici. Date de cr�ation : (31/10/2001 15:47:30) * * @return java.lang.String[] */ public java.util.Vector getListe() { return liste; } /** * @return un vecteur contenant toutes les values */ public java.util.Vector getListeValue() { final Vector newListe = new Vector(); final Enumeration enumeration = liste.elements(); while ( enumeration.hasMoreElements() ) { final WCouple c = (WCouple) enumeration.nextElement(); newListe.add( c.getValue() ); } return newListe; } /** * @return un vecteur contenant tous les labels */ public java.util.Vector getListeLabel() { final Vector newListe = new Vector(); final Enumeration enumeration = liste.elements(); while ( enumeration.hasMoreElements() ) { final WCouple c = (WCouple) enumeration.nextElement(); newListe.add( c.getLabel() ); } return newListe; } /** * @param value la value du label recherche * @return le label */ public String getLabel( final String value ) { for ( final Iterator iter = liste.iterator(); iter.hasNext(); ) { final WCouple couple = (WCouple) iter.next(); if ( couple.getValue().equals( value ) ) { return couple.getLabel(); } } return ""; } /** * @return la taille du vecteur */ public int getSize() { return liste.size(); } /** * @param i index * @return la value se trouvant a l'index i */ public java.lang.String getValue( final int i ) { return ( (WCouple) liste.elementAt( i ) ).getValue(); } /** * @param newListe la nouvelle liste */ public void setListe( final java.util.Vector newListe ) { liste = new Vector( newListe ); } /** * @param newValue nouvelle value a ajouter */ public void addValue( final java.lang.String newValue ) { addValueLabel( newValue, newValue ); } /** * @param newValue nouvelle value a ajouter * @param newLabel nouveau label associe */ public void addValueLabel( final java.lang.String newValue, final String newLabel ) { liste.add( new WCouple( newValue, convert( newLabel ) ) ); } /** * @param newValue nouvelle value ajoutee en 1ere position */ public void pushValueLabel( final java.lang.String newValue ) { pushValueLabel( newValue, newValue ); } /** * @param newValue nouvelle value a ajouter en 1ere position * @param newLabel nouveau label associe */ public void pushValueLabel( final java.lang.String newValue, final String newLabel ) { liste.add( 0, new WCouple( newValue, convert( newLabel ) ) ); } /** * Traduit si possible * * @param s : Chaine a traduire * @return Recherch� dans le message resources avec la locale */ private String convert( final String s ) { String mylabel = null; if ( ( resources != null ) && ( locale != null ) ) { mylabel = resources.getMessage( locale, mylabel ); } if ( GenericValidator.isBlankOrNull( mylabel ) ) { mylabel = s; } return mylabel; } /** * Ins�rez la description de la m�thode ici. Date de cr�ation : (29/11/2001 10:13:37) */ public void sort() { Collections.sort( liste, new WCoupleComparator() ); } /** * @see java.util.Collection#iterator() */ public Iterator iterator() { return liste.iterator(); } /** * Class WCoupleComparator */ class WCoupleComparator implements Comparator { /** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ public int compare( final Object arg0, final Object arg1 ) { return ( (WCouple) arg0 ).getLabel().compareTo( ( (WCouple) arg1 ).getLabel() ); } /** * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals( final Object arg0 ) { return false; } } }