Mudanças entre as edições de "RFWPickerWindow"

De Wiki do Leitão
Ir para: navegação, pesquisa
(Criou página com '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''', v...')
 
Linha 18: Linha 18:


     // ==>>> Criamos o GRID de listagem e suas colunas
     // ==>>> 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);
     final Grid<GVO<SeuVO>> grid = this.getUiFac().createGridForMO(SelectionMode.SINGLE, null, new String[] { SeuVO_._name }, null, getDbProvider());
     this.getUiFac().addGridForMOColumn(SeuVO_._name);
     this.getUiFac().addGridForMOColumn(SeuVO_._name);


Linha 29: Linha 29:


</syntaxhighlight>}}
</syntaxhighlight>}}


= Utilização =
= Utilização =

Edição das 12h38min de 31 de julho de 2023

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:

Java 256.png 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.


Java 256.png 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);
    }
  });