Boa tarde pessoal,
estou com um problema que é o seguinte:
eu tenho a listshuttle abaixo:
<rich:listShuttle sourceValue="#{editarConvenio.listaSetores}" targetValue="#{editarConvenio.listaDeSetoresSelecionados}" var="item" copyAllControlLabel="inserir todos"
copyControlLabel="inserir" removeControlLabel="remover" downControlLabel="abaixo" upControlLabel="acima" topControlLabel="inicio"
bottomControlLabel="final" removeAllControlLabel="remover todos" converter="setorConverter">
<rich:column>
<f:facet name="header" >
<h:outputText value="Grupo"/>
</f:facet>
<h:outputText value="#{item.siglaSetor}" />
</rich:column>
</rich:listShuttle>
E estou tentando fazer o converter para ela, porém não está funcionando.
o converter é o codigo abaixo:
private int index = -1;
/* (non-Javadoc)
* @see javax.faces.convert.ConvertergetAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
*/
public Object getAsObject(FacesContext ctx, UIComponent component, String value) {
for (Setor setor : getLista(component)) {
return setor;
}
return null;
}
/* (non-Javadoc)
* @see javax.faces.convert.ConvertergetAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
*/
public String getAsString(FacesContext ctx, UIComponent component, Object value) {
index++;
return String.valueOf(index);
}
/**
* Obtem o SelecItem de acordo com a opção selecionada pelo usuário
*/
/* protected Setor getSelectedItemByIndex(UIComponent component, int index) {
List<Setor> items = this.getSelectItems(component);
int size = items.size();
if (index > -1
&& size > index) {
return items.get(index);
}
return null;
} */
protected List<Setor> getLista(UIComponent component){
List<Setor> items = new ArrayList<Setor>();
int childCount = component.getChildCount();
if (childCount == 0)
return items;
List<UIComponent> children = component.getChildren();
for (UIComponent child : children) {
System.out.println(child.getClass());
if (child instanceof HtmlColumn) {
this.addSelectItem((HtmlColumn) child, items);
}
}
return items;
}
protected void addSelectItem(HtmlColumn uiItem, List<Setor> items) {
boolean isRendered = uiItem.isRendered();
if (!isRendered) {
items.add(null);
return;
}
Object value = uiItem.getChildren();
Setor item = new Setor();
if (value instanceof Setor) {
item = (Setor) value;
}
items.add(item);
}
Alguém para me dar uma força ?