RFWPickerWindow
A RFWPickerWindow é uma janela utilizada quando desejamos buscar e selecionar um ou mais itens do banco de dados. Por exemplo, em um cadastro de endereços o usuário precisa buscar o CEP pelo nome da rua, e depois de filtrar escolher o correto para carregar o endereço. Ou em uma tela de emissão de notas, o usuário precisa escolher o destinatário no cadastro de pessoas do sistema.
Implementação
Para utilizar a classe basta estender a RFWPickerWindow, veja um exemplo de Picker para selecionar um objeto SeuVO:
![]() |
Criando uma RFWPickerWindow |
public class SeuPickerWindow extends RFWPickerWindow<SeuVO> {
// Crie seu construtor com os parâmetros que precisar
public SeuPickerWindow() throws RFWException {
super(SeuVO.class, "Título da Janela", new ThemeResource("icon/seuicon_64.png"), new SeuDBProvider());
// ==>>> Cria os campos de do Filtro utilizando o getUiFac() da classe
this.getUiFac().createMOField(SeuVO_._name, "300px", "500px");
// ==>>> Criamos o GRID de listagem e suas colunas
final Grid<GVO<SeuVO>> grid = this.getUiFac().createGridForMO(SelectionMode.SINGLE, null, new String[] { SeuVO_._name }, null, getDbProvider());
this.getUiFac().addGridForMOColumn(SeuVO_._name);
// Coloca o Grid no layout
super.setGrid(grid);
// Atualiza o SearchPanel com os campos MO criados no UIFac.
super.updateSearchPanel();
}
|
Utilização
Depois de implementada a sua classe, você precisará chamá-la, exibi-la e monitorar quando for fechada. A RFWPickerWindow pode ser fechada pelo botão de close da janela, pelo botão cancelar ou pelo confirmar.
Se for fechada pelo botão confirmar a janela valida se há ao menos 1 item selecionado antes de permitir que seja fechada. Se for fechada de outra forma não há nenhuma validação ou função que impeça seu fechamento.
Porém, se for finalizada pelo método confirmar o método getSelectedItems() será diferente de nulo, contendo uma List<> dos objetos selecionados. Qualquer outro método de fechamento da janela fará com que este método retorne nulo.
![]() |
Utilizando a RFWPickerwindow |
SeuPickerWindow picker = new SeuPickerWindow();
// Monitora quando a janela for fechada
picker.addCloseListener(evt -> {
try {
if (picker.getSelectedItems() != null) {
// Trata o(s) item(ns) selecionado(s)
}
} catch (RFWException e) {
TreatException.treat(e);
}
});
|