O componente Lista de adicionar/remover
, na categoria Composto do Woodstock da Paleta, permite que o usuário selecione itens de uma lista de itens e os adicione ou remova de outra lista de itens.
Este componente está formado por duas caixas de listagem, uma para as opções disponíveis e outra para as opções selecionadas, juntamente com botões para mover as opções de uma lista à outra. Como opção, você pode adicionar botões para ordenar as opções selecionadas.
Na janela Propriedades do componente Adicionar/Remover, você pode selecionar as propriedades do componente.
Abaixo se encontram algumas ações que podem ser realizadas com este componente:
items para especificar as opções que o usuário da aplicação Web pode escolher. Veja abaixo Vincular aos dados.
selected para associar um componente a um objeto de modelo que representa a escolha atual, definindo o valor de uma expressão que corresponda a uma propriedade de um bean gerenciado. Você pode clicar com o botão direito do mouse no componente e escolher Vinculações de propriedade para vincular a propriedade selected.
Na primeira vez que o componente é renderizado, a opção que corresponde ao valor da propriedade do objeto de modelo selected é marcada como selecionada usando os mesmos métodos no objeto de modelo.
label ou associe um componente Rótulo ao componente.
validate do componente para que você possa inserir o código
para validar o valor do componente.
do componente para que você possa inserir o código que é executado quando o valor deste componente sofrer alterações. Por exemplo, quando o usuário altera o valor de outro componente que está controlando o valor deste componente.
common_timeoutSubmitForm(this.form, 'id-do-componente');. Em tempo de execução, este código faz com que o formulário seja enviado automaticamente se o usuário alterar o valor do componente. Depois de o formulário ter sido enviado, ocorre a conversão e a validação no servidor, quaisquer métodos ouvintes de alteração de valor são executados e, em seguida, a página é reexibida.
Um componente configurado como Enviar automaticamente ao alterar pode usar formulários virtuais para limitar os campos de entrada processados quando o formulário é enviado. Se o componente de envio automático for definido para enviar um formulário virtual, somente os participantes de tal formulário virtual serão processados quando o envio automático ocorrer.
items do componente a um objeto ou a um provedor de dados de uma tabela de banco de dados, serviço Web ou objeto Enterprise JavaBeans. Ao selecionar esta opção no menu pop-up, a caixa de diálogo Vincular aos dados se abre.
items a um objeto, selecione a guia Vincular a objeto e, em seguida, selecione uma propriedade do Bean que será usada para preencher a lista. A propriedade do bean deve ser um conjunto, mapa ou matriz de Object cujos membros são todas as subclasses de com.sun.webui.jsf.model.Option. Por padrão, esta propriedade está vinculada a um objeto com.sun.webui.jsf.model.MultipleSelectOptionsList com um nome semelhante a addRemoveList1DefaultOptions para que a lista possa ser preenchida com valores padrão. Talvez você queira usar seus próprios objetos para este fim. Consulte abaixo Configurar opções padrão.items a um provedor de dados que será usado para preencher a lista, selecione a guia Vincular ao provedor de dados e escolha um provedor de dados. Se não houver nenhum, você deve adicionar uma tabela de banco de dados ou serviço Web à página. Para obter mais informações, consulte Caixa de diálogo Vincular aos dados: componente de lista.
selected, que você pode vincular a uma matriz Object, matriz de primitivos ou ArrayList. Você deve adicionar a matriz a um bean gerenciado, tal como o bean de sessão, como uma propriedade. Você pode usar esta propriedade de Bean para avaliar o que o usuário escolhe depois que a página é enviada.
addRemoveList#defaultOptions e alterar os itens exibidos na lista. É mais provável que você queira vincular a propriedade items a um banco de dados ou objeto que define os itens da lista, conforme descrito acima em Vincular aos dados.
getSelectedItems(), que retorna um Iterador. Não use este método, já que está designado somente para renderizações internas e não reflete os itens realmente selecionados.