Meu jsp
<t:selectOneMenu
value="#{mapaStatusPedidoFaces.mapaStatusPedidoModel.statusAtual.id}"
onchange="submit();" id="statusPedido" forceId="true"
styleClass="form_combo_m" required="true"
valueChangeListener="#{mapaStatusPedidoFaces.carregarStatusPedidos}">
<f:selectItem itemLabel="#{properties['lb_selecione']}" itemValue="" />
<f:selectItems value="#{mapaStatusPedidoFaces.statusPedidoCombo}" />
</t:selectOneMenu>
<br>
<br>
<s:selectManyPicklist id="origem"
value="#{mapaStatusPedidoFaces.statusPedidoDestino}" size="10"
style="width: 20px;">
<f:selectItems value="#{mapaStatusPedidoFaces.statusPedidoAtual}" />
</s:selectManyPicklist>
<br>
Faces:
private MapaStatusPedidoModel mapaStatusPedidoModel;
private MapaStatusPedidoFacade mapaStatusPedidoFacade;
private StatusPedidoFacade statusPedidoFacade;
private List<SelectItem> statusPedidoCombo;
private List<String> statusPedidoDestino;
private List<SelectItem> statusPedidoAtual;
private void carregaStatus() {
this.initEJB();
this.statusPedidoCombo = admIcomWebUtil.initCombo((List) this.getStatusPedidoFacade().pesquisar(new StatusPedidoModel()),
"id", "descricao");
this.statusPedidoAtual = admIcomWebUtil.initCombo((List) this.getStatusPedidoFacade().pesquisar(new StatusPedidoModel()),
"id", "descricao");
}
protected void initEJB() {
this.mapaStatusPedidoFacade = FacadeFactory.getInstance().getMapaStatusPedidoFacade();
this.statusPedidoFacade = FacadeFactory.getInstance().getStatusPedidoFacade();
}
public void carregarStatusPedidos(final ValueChangeEvent event) {
this.statusPedidoDestino.clear();
if (!IcomUtil.isNullOrEmpty(event.getNewValue())) {
this.carregaStatus();
Collection<StatusPedidoModel> statusColl = this.mapaStatusPedidoFacade.pesquisarStatusSeguinte(new StatusPedidoModel(
(Long) event.getNewValue()));
for (StatusPedidoModel status : statusColl) {
this.statusPedidoDestino.add(""+status.getId());
}
}
}
private void initStatusSeguintes(List<String> statusPedidos){
this.mapaStatusPedidoModel.setStatusSeguinte(new ArrayList<StatusPedidoModel>());
for(String status: statusPedidos){
this.mapaStatusPedidoModel.getStatusSeguinte().add(new StatusPedidoModel(new Long(status)));
}
}