How i can use a List in rich:listShuttle ???
lionceau Jul 10, 2013 11:25 AMHello,
I use Eclipse, JSF 1.2 and Richfaces 3.3.3. and tomcat 6
I would like to use rich:listShuttle , but I can't use a List in my ListShuttle.
In my gestion-profils.xhtml I have this :
<rich:listShuttle sourceValue="#{pickBean.sourceList}" targetValue="#{pickBean.listValues}" var="items" converter="convertString" sourceCaptionLabel="Droits disponibles" targetCaptionLabel="Droit selectionné" listWidth="165px" listHeight="100px" orderable="true" orderControlsVisible="false" fastOrderControlsVisible="false"> <h:outputText value="#{items}"/> </rich:listShuttle >
I use init() in pickbean.java to make my List
import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.model.SelectItem; /** * * */ public class PickBean { /* Variable pour le formulaire pour la gestion des droits du profil*/ private List<String> listValues; private List<String> sourceList; // public List<SelectItem> getListeDroitsDisponibles () { // List<SelectItem> liste = new ArrayList<SelectItem>(); // liste.add(new SelectItem(sourceList.get(index), label)) // } /* #################### INIT #################### */ /** * Méthode permettant d'initialieser les champs du formulaire * Pour info , l'annotation PostConstruct sert a preciser que cette fonction doit etre executer juste après le constructeur */ @PostConstruct public void init() { // creation du nouveau formulaire // List<SelectItem> list = new ArrayList<SelectItem>(); //PickBean nouveauFormulaire = null; System.out.println("taille sourceList : " + sourceList.size()); sourceList.add("key1"); sourceList.add("key2"); sourceList.add("key3"); System.out.println("Je suis passé par là..."); System.out.println("1ère string : " + sourceList.get(0)); System.out.println("taille sourceList : " + sourceList.size()); //ajout des champs dans le formulaire /*if (nouveauFormulaire.sourceList == null) { nouveauFormulaire.sourceList.add(new SelectItem("key1", "Utilisateur")); nouveauFormulaire.sourceList.add(new SelectItem("key2", "Validateur")); nouveauFormulaire.sourceList.add(new SelectItem("key3", "Gestionaire")); nouveauFormulaire.sourceList.add(new SelectItem("key4", "Administrateur")); nouveauFormulaire.sourceList.add(new SelectItem("key5", "Super Administrateur")); } */ } /* #################### listValues #################### */ /** * Méthode permettant d'afficher la liste des champs pour le formulaire * à la création du bean. * * @return listValues */ public List<String> getListValues() { // listValues.add(new SelectItem("csd", "csdvgfb")); return listValues; } public void setListValues(List<String> listval) { listValues = listval; } /* #################### sourceList #################### */ /** * Méthode permettant d'afficher la liste des champs de réponse pour le formulaire * * @return sourceList */ public List<String> getSourceList() { return sourceList; } public void setSourceList(List<String> srcList) { sourceList = srcList; } }
module-administration.xml
<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2"> <!-- ==================== MANAGED-BEANS ==================== --> <managed-bean> <description> Ce bean est utilisé pour la classe PickBean, ce bean nous sert pour la gestion des droits. </description> <managed-bean-name>pickBean</managed-bean-name> <managed-bean-class>com.applications.gestioncs.administration.PickBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> <managed-property> <property-name>listValues</property-name> <property-class>java.util.ArrayList</property-class> <list-entries> <value-class>java.lang.String</value-class> </list-entries> </managed-property> <managed-property> <property-name>sourceList</property-name> <property-class>java.util.ArrayList</property-class> <list-entries> <value-class>java.lang.String</value-class> </list-entries> </managed-property> </managed-bean> <!-- ==================== CONVERTERS ==================== --> <converter> <!-- <converter-for-class>java.lang.String</converter-for-class>--> <converter-id>convertString</converter-id> <converter-class>com.applications.gestioncs.administration.StringConverter</converter-class> <!-- <description>Permet de convertir un objet String en String (Utile pour les composants Richfaces)</description>--> </converter> <!-- ==================== NAVIGATION RULES ==================== --> <!-- ========== FROM : module conges ========== --> <navigation-rule> <!-- <description>Règles de navigation à l'intérieur du module de congés</description> <from-view-id>/application/conges/*</from-view-id>--> </navigation-rule> </faces-config>
stringconverter.java
import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; /** * * */ public class StringConverter implements Converter { /** * {@inheritDoc} * * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String) */ @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { System.out.println("getAsObject : " + value); return value; } /** * {@inheritDoc} * * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object) */ @Override public String getAsString(FacesContext context, UIComponent component, Object value) { System.out.println("getAsString :" + value); return (String) value; } }
Thank you for your help.
Florian,