如何在TwinColSelect Vaadin中设置默认选择

时间:2013-12-13 09:29:48

标签: select default vaadin

我想在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;
}

3 个答案:

答案 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>);

此链接可能有所帮助: https://dev.vaadin.com/svn/doc/book-examples/trunk/src/com/vaadin/book/examples/datamodel/BeanContainerExample.java

我希望它有所帮助。

答案 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;
    }