Quando comecei a usar controles Ajax com o ColdFusion 8 achei que funções javascript não poderiam ser utilizadas em páginas incluídas em containers Ájax, eu estava errado, após pesquisar um pouco vi que é possível, basta alterar um pouco a sintaxe.
No ColdFusion 8, sempre que um CFFORM que está dentro de um container “Ajax-based” (CFDIV, CFWINDOW, CFPOD e CFLAYOUT) é submetido apenas o container é atualizado e não a página inteira entretanto às vezes precisamos que toda a página seja atualizada e não apenas o container. Para isto basta submetermos o formulário via javascript ao invés de usar um botão tipo “submit”.
Segue um exemplo:
<script>
function teste()
{
testForm.submit();
}
</script>
<cflayout type=”tab”>
<cflayoutarea title=”Tab 1″>
This is text in layout area 1
</cflayoutarea>
<cflayoutarea title=”Tab 2″>
<cfform action=”2.cfm” name=”testForm”>
<cfinput name=”nome” type=”text”>
<cfinput type=”button” value=”OK” name=”OK” onclick=”javascript: teste()”>
</cfform>
</cflayoutarea>
</cflayout>
Estou trabalhando em um relatório em que o usuário pode escolher a ordem em que campos são ordenados, ou seja, por nome e em seguida por quantidade ou vice-versa. Ao validar o formulário de filtro da tela me deparei com um array com elementos indefinidos, como por exemplo (10,indef.,25,indef,50). Eu precisava transformar este array em uma lista mas esta ficava com elementos nulos (10,,25,,50) o que causava um erro no meu comando SQL.
A solução foi simples, transformei o array em lista, em array novamente e voltei para lista, ao fazer a conversão, o ColdFusion se encarrega de remover os elementos indefinidos. Acompanhe o exemplo: Read the rest of this entry »
Mais uma vez tive a oportunidade de comparecer à MAX e além do excelente conteúdo da conferência, tive o prazer de encontrar os amigos da Universal Mind e de outras empresas, como Rafael e Rogério Martineli da DClick.
As sessões foram boas e trouxeram novidades, as general sessions em clima de festa e os eventos “Meet the Team” onde a interação com os times dos produtos é total.
A ColdFusion Unconference teve um nível altíssimo e todas as apresentações que participei foram ótimas (voltarei a falar de algumas delas).
O “momento MAX impagável” foi ver a cara vermelha do Ben Forta ao receber do Cláudio Dias suas versões “South Park” (fotos aqui e aqui).
A Universal Mind, empresa para qual eu trabalho, liberou ontem um preview do SpatialKey, um produto baseado no Adobe Flex para visualização de grande volume de informação geoprocessada. Além da excelente usabilidade que uma aplicação Flex merece, a meu ver, os grandes diferenciais do StalialKey são:
Capacidade de trabalhar com milhares e milhares de pontos no mapa provendo maneiras produtivas de interpretar estes pontos (uma vez que não faz sentido ver um mapa com milhares de marcadores), seja através de “heatmaps” (as manchas onde as cores vão do quente vermelho ao frio azul para representar as áreas mais significativas do mapa), “heatgrids” (um “heatmap” organizado como grid) ou círculos graduados (onde o tamanho do círculo indica as áras mais significativas);
Possibilidade de alterar o “template” de visualização do mapa, ou seja, com a mesma base de dados você pode usar um template para realizar consultas “drill down”, com refinamento progressivo no mapa ou “map comparison”, com o mesmo mapa lado a lado para comparação em dois momentos diferentes;
Geocoder integrado, o produto possui um geocoder de alta performance integrado para transformar automaticamente endereços em coordenadas;
Saiba mais sobre o produto aqui. E não deixe de conferir os exemplos.
Neste post eu comecei a desenvolver um código para auxiliar o debug de métodos get em componentes CFC, neste outro post eu fiz uma modificação mínima para tratar de variáveis complexas (como arrays e estruturas). Fiz mais algumas alterações no código para tratar métodos que retornem objetos (ou seja, que retornem um outro componente), utilizei recursividade para solucionar o problema. Espero que este código aumente minha a produtividade ao codificar backend ColdFusion (utilizo uma estrutura com componentes CFCs tipo VOs, DAOs e Gateways) para aplicações Flex.