[Grids] Colunas automáticas com novas funcionalidades

瀏覽次數:0 次
跳到第一則未讀訊息

Pedro Viegas

未讀,
2021年11月30日 下午2:23:272021/11/30
收件者: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


回覆所有人
回覆作者
轉寄
0 則新訊息