# Richfaces/Seam: RichShuttleListe funktioniert nicht



## palkom (30. Mai 2009)

hallo zusammen,

ich versuche in meiner anwendung gerade eine rich:shuttlelist zu implementieren.

vor der anzeige der shuttle list erfolgt die auswahl eines kunden. daraufhin werden auf der linke seite der shuttle list alle mögliche optionen geladen und auf der rechten seite bereits gesetzte optionen für diesen kunden.

zum testen befülle ich die liste links und rechts mit dummy daten.

wenn ich die shuttlelist vor der auswahl des kunden einbinde (direkt nach dem <h:form> tag ) funktioniert diese einwandfrei. ich kann die einträge verschieben und die getter/setter werden richtig ausgeführt.

binde ich die shuttlelist nach der auswahl des kunden ein (   <autputPanel id="ShuttleList"> ), funktioniert das verschieben genau einmal. beim zweiten verschieben bekomm ich einen <Conversion error setting value>.

woran könnte das liegen?

vielen dank für eure hilfe.




```
<h:form id="SelForm">
                <s:validateAll>
                    
		<h:panelGroup>
                        <table>
                            <tr>
                                <td>
                                    <h:outputText   value="Message" />
                                </td>
                                <td>
                                    <a:region renderRegionOnly="false">
                                        <h:selectOneMenu    id="Kundenauswahl"
                                                            value="#{setoptions.selCustomer}">
                                            <a:support  event="onchange"
                                                        status="waitShuttleList"
                                                        actionListener="#{ setoptions.getPortals( setoptions.selCustomer ) }"
                                                        reRender="ShuttleList" />
                                            <s:selectItems  value="#{setoptions.listcustomer}"
                                                            var="customer" 
                                                            label="#{customer.name}"/>
                                            <s:convertEntity />
                                        </h:selectOneMenu>
                                    </a:region>
                                </td>
                            </tr>
                        </table>
                    </h:panelGroup>
                    
                    <a:outputPanel id="ShuttleList">
                        <a:status forceId="true" id="waitShuttleList" layout="block">
                        
                            <f:facet name="start">
                                <h:panelGroup>
                                    <img src="load.gif"/>
                                    <h:outputText   value="Bitte warten..." />
                                </h:panelGroup>
                            </f:facet>
                            
                            <f:facet name="stop">
                                <h:panelGroup>
                                    <h:panelGroup rendered="#{ (setoptions.selCustomer != null) }">

							<rich:listShuttle 
								sourceValue="#{setoptions.leftOptions}"
            							targetValue="#{setoptions.rightOptions}" 
								var="options" listHeight="300"
            							listWidth="300" sourceCaptionLabel="Available Options"
            							targetCaptionLabel="Currently Active Options"
            							converter="listconverter">
            							<rich:column>
                							<h:outputText value="#{options.name}"></h:outputText>
            							</rich:column>
            							<a:support event="onlistchanged" reRender="showoptions" />
           		 					<a:support event="onorderchanged" reRender="showoptions" />
       							</rich:listShuttle>

                                    </h:panelGroup>
```


----------



## gex (30. Mai 2009)

Hmm, Conversion Error deutet ja normalerweis auf einen Fehler im Converter hin, sprich im 'listconverter'. 
Hast du das schon mal mittel trace Informationen überprüft?


----------



## palkom (30. Mai 2009)

danke für den hinweis. das habe ich noch nicht gemacht.

aber für mich ist nicht verständlich wieso die shuttle liste vor auswahl des kunden funktioniert und kein fehler auftritt, sondern erst nach dem rendern der seite sprich nach der auswahl des kunden....

ich hab zusätzlich in meiner klasse die hashcode und equals methode überschrieben, kann darin auch ein fehler liegen?

grüße


```
public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		return result;
	}

	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Option other = (Option) obj;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
	}
```


----------



## gex (30. Mai 2009)

Genau, aber den Konverter hast du implementiert?
Nein, die hashCode und equals Methoden zu überschreiben kann bei Verwendung der listShuttle-Component sogar nötig sein.

Nach Auswahl des Kunden -> setoptions.selCustomer ?

Hast du einen Stacktrace?

Hast du eine Component mit id="showoptions"? Nur so wegen:

```
<a:support event="onlistchanged" reRender="showoptions" />
```


----------



## palkom (30. Mai 2009)

ja einen converter habe ich implementiert.

leider ich kann ich den stack trace und den converter nicht posten, das projekt ist auf dem hochschulrechner. dort bin ich erst am dienstag wieder.

die komponente id="showoptions bezieht sich auf eine rich:datalist. diese listet alle einträge der rechten seite der shuttle liste auf. die habe ich in dem code ausschnitt nur nicht aufgeführt.

für mich ist eben nich klar wo der fehler liegt, wenn diese liste direkt vor der auswahl funktioniert....

grüße


----------



## gex (30. Mai 2009)

joah gut, man könnte sicher mögliche Fehler eruiren ohne stacktrace und co, aber das wird dann zeitintensiv, dann postest du am besten sobald möglich die weiteren infos...


----------



## palkom (30. Mai 2009)

ok. am dienstag morgen werde ich die genaue fehlermeldung posten. dazu die bean und den converter.

so langsam bringt mich dieses problem nämlich echt zum verzweifeln.

auf jedenfall schon mal danke für die unterstützung.

grüße


----------



## palkom (2. Jun 2009)

....


----------



## palkom (2. Jun 2009)

das problem hat sich vorerst erledigt...

mit dem seam eigenen converter geht die liste.

grüße


----------

