Grid: mudanças entre as edições

De BIS Wiki
Ir para navegação Ir para pesquisar
Criou página com 'Grid é um componente do Vaadin que permite a exibição de tabelas de listagem ou mesmo edição de dados em massa (como um excel simplificado). Esta página trás exemplos...'
 
Linha 26: Linha 26:
</syntaxhighlight>}}
</syntaxhighlight>}}


=== Colunas com Objeto ===
=== Colunas com Ícones/Imagens ===


Uma coluna customizada pode retornar um objeto contendo um conteúdo renderizável qualquer. Deve-se tomar cuidado no entando com os objetos colocados desta forma pois ele absorve os eventos de click/duploclick, etc. impedindo que o grid receba os eventos do usuário.
Uma coluna customizada pode retornar um objeto contendo um conteúdo renderizável qualquer. Deve-se tomar cuidado no entando com os objetos colocados desta forma pois ele absorve os eventos de click/duploclick, etc. impedindo que o grid receba os eventos do usuário.


{{java|Exemplo Coluna com Objeto|<syntaxhighlight lang="java">
{{java|Exemplo Coluna com Objeto|<syntaxhighlight lang="java">
final Column<GVO<CertificateVO>, Object> colValidation = grid.addColumn(gvo -> {
final Column<GVO<CertificateVO>, ThemeResource> colValidation = grid.addColumn(gvo -> {
   Embedded emb = null;
   ThemeResource tres = null;
   if (BUDateTime.isInsidePeriod(FW.getDateTime(), gvo.getVO().getValidityStart(), gvo.getVO().getValidityEnd())) {
   if (BUDateTime.isInsidePeriod(FW.getDateTime(), gvo.getVO().getValidityStart(), gvo.getVO().getValidityEnd())) {
     emb = new Embedded("Certificado Válido", new ThemeResource("icon/success_24.png"));
     tres = new ThemeResource("icon/success_24.png");
   } else {
   } else {
     emb = new Embedded("Certificado Expirado", new ThemeResource("icon/cancel_24.png"));
     tres = new ThemeResource("icon/cancel_24.png");
   }
   }
   return emb;
   return tres;
});
}, new ImageRenderer<>());
</syntaxhighlight>}}
</syntaxhighlight>}}



Edição das 20h28min de 21 de julho de 2021

Grid é um componente do Vaadin que permite a exibição de tabelas de listagem ou mesmo edição de dados em massa (como um excel simplificado).

Esta página trás exemplos de como criar e manipular o grid. Tenha em mente que o código do Vaadin é aceito no BIS de forma bruta, mas não será abordado neste página. Nesta página de documentação devem conter os exemplos que fazem parte do BIS, ou mesmo as funcionalidades adicionais oferecidas pelo FW para facilitar o desenvolvimento.

Grid

Colunas

Colunas com Texto Customizado

Uma coluna customizada pode exibir exatamente o que o desenvolvedor quiser. No entanto é preciso tomar cuidado com essas decisões, pois perdemos várias automações existentes, como por exemplo a questão de "sort" pela coluna.

Exemplo Coluna Customizada
final Column<CFlowCategoryMapVO, String> categoryColumn = paramGrid.addColumn(vo -> {
  if (vo.getCategoryVO() != null) {
    switch (vo.getCategoryVO().getOperation()) {
      case EXPENSE:
        return "(-) " + vo.getCategoryVO().getName();
      case INCOMING:
        return "(+) " + vo.getCategoryVO().getName();
    }
    return vo.getCategoryVO().getName();
  }
  return "";
});

Colunas com Ícones/Imagens

Uma coluna customizada pode retornar um objeto contendo um conteúdo renderizável qualquer. Deve-se tomar cuidado no entando com os objetos colocados desta forma pois ele absorve os eventos de click/duploclick, etc. impedindo que o grid receba os eventos do usuário.

Exemplo Coluna com Objeto
final Column<GVO<CertificateVO>, ThemeResource> colValidation = grid.addColumn(gvo -> {
  ThemeResource tres = null;
  if (BUDateTime.isInsidePeriod(FW.getDateTime(), gvo.getVO().getValidityStart(), gvo.getVO().getValidityEnd())) {
    tres = new ThemeResource("icon/success_24.png");
  } else {
    tres = new ThemeResource("icon/cancel_24.png");
  }
  return tres;
 }, new ImageRenderer<>());

Grid Editável

Um Grid editável é um Grid normal, com algumas configurações adicionais.

setUpGridEditor()

O primeiro passo para deixar o grid editável é chamar este método. Ele fará as configurações necessárias no Grid para que fique no padrão do BIS.