我想在containerAllClienteByAsociado中预选项目,我尝试在containerAllCliente中预先选择相同的项目,但也找不到,抱歉英语不好。
TwinColSelect colListClientes = new TwinColSelect();
private generateColListClientes(Asociado asociadoInstance){
clienteController = new ClienteController();
//Obtenemos el container con los datos
BeanItemContainer<Cliente> containerAllCliente = new BeanItemContainer<Cliente>(Cliente.class);
containerAllCliente.addAll(clienteController.getCollectionCliente());
BeanItemContainer<Cliente> containerAllClienteByAsociado = new BeanItemContainer<Cliente>(Cliente.class);
containerAllClienteByAsociado.addAll(asociadoInstance.getClientes());
colListClientes.setMultiSelect(true);
colListClientes.setImmediate(true);
colListClientes.setContainerDataSource(containerAllCliente);
colListClientes.setLeftColumnCaption("Listado de Clientes");
colListClientes.setRightColumnCaption("Clientes del Asociado");
colListClientes.setMultiSelect(true);
for (clienteTotales in containerAllCliente){
colListClientes.setValue(clienteTotales);
}
return colListClientes;
}
答案 0 :(得分:1)
而不是:
`BeanItemContainer<Cliente> containerAllCliente = new BeanItemContainer<Cliente>(Cliente.class);`
使用此:
`BeanContainer<String,Cliente> containerAllCliente = new BeanContainer<String,Cliente>(Cliente.class);`
此外,在填充您的twin-select时,将其“id”属性设置为Cliente.class的一些标识成员变量/属性
填充后,您可以使用:
twin-select.setValue(<value of identifying member data of the particular Cliente instance>);
我希望它有所帮助。
答案 1 :(得分:0)
不要对每个项使用setValue(...),只需使用一次并将整个集合作为参数传递。
将setValue(...)与单个项目一起使用时,会取消选择以前选择的值。
答案 2 :(得分:0)
这是我的解决方案,在我的代码中运行良好。
private generateColListClientes(Asociado asociadoInstance){
clienteController = new ClienteController();
//DEFINITION OF CONTAINERS
HashSet<Cliente> containerAllCliente = new HashSet<Cliente>();
containerAllCliente.addAll(clienteController.getCollectionCliente());
HashSet<Cliente> containerAllClienteByAsociado = new HashSet<Cliente>()
containerAllClienteByAsociado.addAll(asociadoInstance.getClientes())
//DEFINITION OF TWINCOLUMN
colListClientes.setLeftColumnCaption("Listado de Clientes");
colListClientes.setRightColumnCaption("Clientes del Asociado");
colListClientes.setMultiSelect(true);
colListClientes.setWidth("350px");
colListClientes.setImmediate(true);
HashSet<Cliente> preselected = new HashSet<Cliente>();
//TOUR TOTAL CLIENTS
for (Cliente cliente : containerAllCliente){
colListClientes.addItem(cliente);
//WE COMPARE TOTAL CLIENTS TO ASOCIADO.CLIENTES
for(Cliente clienteAsociado : containerAllClienteByAsociado) {
//COMPARE IDS AND PRESELECT IF IS THE SAME
if(cliente.id==clienteAsociado.id){
preselected.add(cliente);
}
}
}
colListClientes.setValue(preselected);
return colListClientes;
}