Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Deixar Picklist Source sem remover itens

$
0
0

@Agr_Arcanjo escreveu:

Olá, tudo bom? Estou fazendo um picklist e precisava deixar uma lista fixa de um lado (source) e na lista target ir adicionando sem retirar do source. Alguém poderia me dar uma luz?

controller

 @PostConstruct
    public void init() {
    	instance = new Playlist();
    	midiasSource = midiaBean.findAll();
    	midiasTarget = new ArrayList<Midia>();
    	midias = new DualListModel<Midia>(midiasSource, midiasTarget);
    }

converter

@FacesConverter(value = "primeFacesPickListConverter")
public class PrimeFacesPickListConverter implements Converter {

@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
	Object ret = null;
	if (arg1 instanceof PickList) {
		Object dualList = ((PickList) arg1).getValue();
		DualListModel dl = (DualListModel) dualList;
		for (Iterator iterator = dl.getSource().iterator(); iterator.hasNext();) {
			Object o = iterator.next();
			String id = (new StringBuilder()).append(((AbstractBean) o).getId()).toString();
			if (arg2.equals(id)) {
				ret = o;
				break;
			}
		}

		if (ret == null) {
			for (Iterator iterator1 = dl.getTarget().iterator(); iterator1.hasNext();) {
				Object o = iterator1.next();
				String id = (new StringBuilder()).append(((AbstractBean) o).getId()).toString();
				if (arg2.equals(id)) {
					ret = o;
					break;
				}
			}

		}
	}
	return ret;
}

@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
	String str = "";
	if (arg2 instanceof AbstractBean)
		str = ((AbstractBean) arg2).getId().toString();
	return str;
}

xhtml

<p:pickList id="PojoPickList" value="#{playlistController.midias}" var="midia" effect="bounce" itemValue="#{midia}" required="false"
requiredMessage="Pelo menos 1 funcionário deve ser selecionado"
itemLabel="#{midia.nmMidia}" showSourceControls="false" showTargetControls="true" showCheckbox="true" responsive="true"
showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" converter="primeFacesPickListConverter">

<f:facet name="sourceCaption">Midias Disponíveis</f:facet>
<f:facet name="targetCaption">Nova Playlist</f:facet>
<p:ajax event="transfer" listener="#{playlistController.onTransfer}"	>			

Da maneira que está, o picklist remove da source e coloca na target, ou seja, não consigo inserir 2x o mesmo item da source, alguma ideia?

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>