how to get shuttleList target Selection
jan_e Aug 21, 2008 4:01 AMHi,
i have proplems with receiving the target values from a list shuttle. I want to how the values can be processed to the server?
Here is my Source...
ShuttleConverter:
public class ListShuttleConverter implements javax.faces.convert.Converter{
public Object getAsObject(FacesContext context, UIComponent component,
String value) {
int index = value.indexOf(':');
return new ListShuttleObject(value.substring(0, index), value.substring(index + 1));
}
public String getAsString(FacesContext context, UIComponent component,
Object value) {
ListShuttleObject optionItem = (ListShuttleObject) value;
return optionItem.getLabel() + ":" + optionItem.getValue();
}
}my bean:
public class ListShuttleObject implements Serializable{
private static final long serialVersionUID = -588991230841587261L;
private String label;
private String value;
public ListShuttleObject() {
}
public ListShuttleObject(String label, String value) {
super();
this.label = label;
this.value = value;
}
public ListShuttleObject(SelectItem item){
this.label = item.getLabel();
this.value = item.getValue().toString();
}
public boolean equals(Object obj){
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final ListShuttleObject other = (ListShuttleObject) obj;
if (value == null) {
if (other.value != null)
return false;
} else if (!value.equals(other.value))
return false;
if (label == null) {
if (other.label != null)
return false;
} else if (!label.equals(other.label))
return false;
return true;
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((value == null) ? 0 : value.hashCode());
result = prime * result + ((label == null) ? 0 : label.hashCode());
return result;
}
public SelectItem getAsSelectItem(){
return new SelectItem(value, label);
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
a part of the view:
private List<ListShuttleObject> meetingAll = new ArrayList<ListShuttleObject>(); private List<ListShuttleObject> meeting = new ArrayList<ListShuttleObject>(); private List<ListShuttleObject> meetingSource = new ArrayList<ListShuttleObject>(); private List<ListShuttleObject> meetingTarget = new ArrayList<ListShuttleObject>();
the beanScope:
<t:aliasBeansScope>
<t:aliasBean alias="#{dialog}" value="meetingTypeSearch" />
<t:aliasBean alias="#{reRender}" value="meeting_type"/>
<t:aliasBean alias="#{sourceLabel}" value="#{trans.project_projectSearch_meeting_type}"/>
<t:aliasBean alias="#{targetLabel}" value="#{trans.MeetingChosen}"/>
<t:aliasBean alias="#{sourceValue}" value="#{projectSearchView.meetingAll}"/>
<t:aliasBean alias="#{targetValue}" value="#{projectSearchView.meeting}"/>
<t:aliasBean alias="#{sourceSelection}" value="#{projectSearchView.meetingSource}"/>
<t:aliasBean alias="#{targetSelection}" value="#{projectSearchView.meetingTarget}"/>
<t:aliasBean alias="#{converter}" value="#{projectSearchView.listConverter}"/>
<f:subview id="meetingTypeSearchSubView">
<jsp:include page="../popup/ajaxListShuttle.jsp" />
</f:subview>
</t:aliasBeansScope>
and last but not least the jsp:
<bis:modalDialog id="listShuttleModalDialog" dialogName="#{dialog}" height="300" width="500">
<rich:listShuttle
sourceSelection="#{sourceSelection}"
targetSelection="#{targetSelection}"
sourceValue="#{sourceValue}"
targetValue="#{targetValue}"
converter="#{converter}"
var="items"
sourceCaptionLabel="#{sourceLabel}"
targetCaptionLabel="#{targetLabel}"
id="listShuttel"
orderControlsVisible="false"
fastOrderControlsVisible="false">
<rich:column>
<h:outputText value="#{items.label}"></h:outputText>
</rich:column>
</rich:listShuttle>
<h:panelGroup>
<a4j:commandButton
value="#{trans.personBtnSelect}"
styleClass="btnSubmit"
oncomplete="#{dialog}.hide();" reRender="#{reRender}" />
<a4j:commandButton
value="#{trans.popupSearchSaveBtnCancel}"
styleClass="btnSubmit"
oncomplete="#{dialog}.hide();"
reRender="#{reRender}"/>
</h:panelGroup>
</bis:modalDialog>i would be pleased about some help