[Grids] Colunas automáticas com novas funcionalidades

0 views
Skip to first unread message

Pedro Viegas

unread,
Nov 30, 2021, 2:23:27 PM11/30/21
to DIF2 Mailing list
Boa tarde,

As funcionalidades de detecção de colunas de forma automática para grids foi bastante expandida em termos de customização dos defaults definidos.
Em primeiro lugar existiam limitações para SQLDataSets cuja compatibilidade foi implementada.

Para lá disto temos as seguintes novas funcionalidades:
  • dif:columnsAuto
    • Passa a adicionar apenas as colunas já não adicionadas antes à grid, ou seja podemos ter columnas fixas e depois colocar um colunas auto para as restantes
    • Passa a poder ser usada dentro de um columnGroup ficando todas as colunas dentro desse grupo
    • Passa a receber um expressão regular para indicar quais os campos que são desejados gerar automáticamente por nome
    • Passa a receber uma lista de colunas a excluir da geração automática
    • Passa a poder receber um mapa campo/titulo com os titulos para as colunas geradas
  • dif:columnAuto:
    • Passa a existir esta tab a mesma funcionalidade do dif:columnsAuto mas para uma colunas específica apenas
    • Todos os atributos da dif:column estão disponíveis e podem ser passados. Os omissos serão obtidos dos defaults do processo automático
  • dif:columnCustomizer:
    • Dentro de um dif:columnsAuto passa a ser possível usar uma ou várias destas tags
    • Cada uma indica um padrão de nome de atributo para os quais um conjunto de customizações serão aplicadas
    • Todos os parâmetro de uma coluna estão disponíveis para aplicar
    • Se um atributo for mapeado por várias destas tags serão por ordem aplicados os atributos customizados sobrepondo os anteriores se caso disso. Os atributos omissos mantém o valor anterior.
    • Poderá ainda ser indicado o ID de uma implementação de IoC do interface IColumnCustomizer (ver definição abaixo) que fará de forma programática toda a customização necessária
Segue um exemplo de código:
<dif:columnGroup title="Sucesso">
<dif:columnsAuto attributePattern="S_.*" excludeColumns="<%=CSERules.MODELO_DESCRICAO+",nameCurso"%>"
columnTitles="${stage.customColumnNames}">
<dif:columnCustomizer attributePattern=".*"/>

<dif:columnCustomizer attributePattern=".*" verticalText="true" dataType="<%=ColumnDataType.INTEGER%>"/>
<dif:columnCustomizer attributePattern=".*_P" dataType="<%=ColumnDataType.PERCENTAGE%>"/>
</dif:columnsAuto>
</dif:columnGroup>
Interface de customização:
/**
* The interface Column customizer.
*/
public interface IColumnCustomizer
{
/**
* Customize column grid column.
*
* @param context the context (may not exist)
* @param gridColumn the grid column to customize
*
* @return the grid column woth the desired changes applied
*/
GridColumn customizeColumn(IDIFContext context, GridColumn gridColumn);
}


Com os melhores cumprimentos,



Pedro Viegas
Director Departamento de Desenvolvimento
(Development Manager)
Digitalis Informática Lda
R&D: http://development.digitalis.pt


Reply all
Reply to author
Forward
0 new messages