<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rodrigo K Nascimento</title>
	<atom:link href="http://blog.rkn.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rkn.com.br</link>
	<description>Só mais um blog de programação</description>
	<lastBuildDate>Tue, 21 Dec 2010 13:53:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Novidades, mudanças e um novo ano</title>
		<link>http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/</link>
		<comments>http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 13:53:23 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[2D]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Caife]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[ExtJS 4]]></category>
		<category><![CDATA[ExtJS Brasil]]></category>
		<category><![CDATA[Futuro]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[IPhone]]></category>
		<category><![CDATA[Sencha Touch]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=317</guid>
		<description><![CDATA[Buenas pessoal, faz tempo que não me dirijo a vós por meio deste blog, foi um ano corrido e me sinto na obrigação de pedir mil desculpas a todos pela falta de novos posts, foram tempos de muitas mudanças e venho aqui lhes contar alguns dos acontecimentos. Caife Tecnologia No meio deste ano criamos a [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;"><em><strong>Buenas pessoal,</strong><br />
</em>faz tempo que não me dirijo a vós por meio deste blog, foi um ano corrido e me sinto na obrigação de pedir mil desculpas a todos pela falta de novos posts, foram tempos de muitas mudanças e venho aqui lhes contar alguns dos acontecimentos.</span></p>
<h2>Caife Tecnologia</h2>
<p><a href="http://caife.com.br"><img class="alignleft size-medium wp-image-322" title="caife_logo3" src="http://blog.rkn.com.br/wp-content/uploads/2010/12/caife_logo3-300x300.png" alt="" width="210" height="210" /></a>No meio deste ano criamos a <strong>Caife</strong>, empresa de desenvolvimento de sistemas (em ExtJS é claro) na nuvem, sistemas mobile (em Sencha Touch obviamente), deselvolvimento gráfico (2D e 3D) e aplicativos/jogos para as plataformas Android/IPhone(iOS).</p>
<p>Foi um longo trabalho, estamos terminado nossos primeiros projetos, adquirindo equipamentos, organizando as idéias e terminando nosso WebSite (<a href="http://caife.com.br" target="_blank">www.caife.com.br</a>). Devido a esta montanha de trabalho acabei me ausentando das postagens deste site mas tive muito tempo dedicado para aprender e aperfeiçoar meus conhecimentos em ExtJS, Sencha Touch e PHP, espero ter tempo para poder compartilha-los com vós por meio deste sitio na medida das minhas possibilidades.</p>
<h2>Novo Escritório</h2>
<p>Me mudei para a casa de um dos sócios da empresa (somos em 3), assim posso me dedicar mais tempo ao trabalho e ter mais tempo de lazer (CS, Left4Dead, PS3, Poker, Sinuquinha e Arco e Flecha) com os amigos no escritório-casa improvisado e temporário, hehehe.</p>
<h2>Planos Para o Futuro</h2>
<p><strong>2011</strong> ta ai, espero que seja um ano bem diferente do que passou, com mais tempo, mais dinheiro, menos dividas e mais preocupações (sim, essas nunca diminuem), assim quero voltar este blog a ativa, criar um blog para o ExtJS Brasil e tentar em fim dar continuidade a um site para nossa comunidade ExtJS Brasil.</p>
<p>Preparem-se, o ExtJS 4 está por vir e junto com ele espero que alguns screencasts pipoquem por aqui ou no &#8220;ExtJS BR Blog&#8221;, a comunidade está crescendo rápido, batemos alguns records nestes ultimo meses, temos quase 3mil membros cadastrados e prevejo que isto irá duplicar no próximo ano.</p>
<p>Logo virei com mais novidades pra lhes contar e entre estas alguns posts sobre ExtJS para reanimá-los.</p>
<p><strong>Um GRANDE ABRAÇO a todos e BOAS FESTAS</strong></p>
<p><strong>Que venha 2011!!!</strong></p>
<ul class="related_post"><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>03/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/ajude-o-forum-nacional-de-extjs-a-evoluir-faca-uma-doacao/" title="Ajude o fórum nacional de ExtJS a evoluir, faça uma doação!">Ajude o fórum nacional de ExtJS a evoluir, faça uma doação!</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/" title="ExtJS 3.1.1 beta Lançado">ExtJS 3.1.1 beta Lançado</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Novidades%2C%20mudan%C3%A7as%20e%20um%20novo%20ano%22%20http%3A%2F%2Ftinyurl.com%2F25kll4u" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ScreenCast &#8211; Instalando o ExtJS</title>
		<link>http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/</link>
		<comments>http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 04:34:35 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Iniciante]]></category>
		<category><![CDATA[ScreenCasts]]></category>
		<category><![CDATA[Instalação]]></category>
		<category><![CDATA[ScreenCast]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=312</guid>
		<description><![CDATA[Olá a todos, hoje temos um screencast ensinando os novos marujos a navegar no ExtJS, o básico da instalação para eliminar qualquer dúvida. Novamente postado no Vimeo, espero que gostem. Aproveitem o filme. Abraços. 02/03/2010 -- ScreenCast &#8211; Introdução ao FIREBUG (0)17/02/2010 -- Criando um CRUD usando um GRID e um FORM em 3 Partes [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos, hoje temos um screencast ensinando os novos marujos a navegar no ExtJS, o básico da instalação para eliminar qualquer dúvida.</p>
<p>Novamente postado no Vimeo, espero que gostem.</p>
<p>Aproveitem o filme. Abraços.</p>
<p><iframe src="http://player.vimeo.com/video/10368248" width="630" height="354" frameborder="0"></iframe></p>
<ul class="related_post"><li>02/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-introducao-ao-firebug/" title="ScreenCast &#8211; Introdução ao FIREBUG">ScreenCast &#8211; Introdução ao FIREBUG</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>18/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/" title="ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)">ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/" title="ExtJS 3.1.1 beta Lançado">ExtJS 3.1.1 beta Lançado</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22ScreenCast%20-%20Instalando%20o%20ExtJS%22%20http%3A%2F%2Ftinyurl.com%2Fyg8azsq" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turbulencias nos últimos dias</title>
		<link>http://blog.rkn.com.br/2010/03/turbulencias-nos-ultimos-dias/</link>
		<comments>http://blog.rkn.com.br/2010/03/turbulencias-nos-ultimos-dias/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 04:55:06 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=309</guid>
		<description><![CDATA[Olá Pessoal, Muitos de vocês provavelmente notaram que este blog ficou off neste final de semana, tive problemas com minha hospedagem, era pra ser trafego ilimitado mas estourou o limite e o site saiu do ar. Muitos podem ter pensado que o site tinha sido hackeado, bom eu também achei porque havia um texto meio [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Muitos de vocês provavelmente notaram que este blog ficou off neste final de semana, tive problemas com minha hospedagem, era pra ser trafego ilimitado mas estourou o limite e o site saiu do ar. Muitos podem ter pensado que o site tinha sido hackeado, bom eu também achei porque havia um texto meio estranho sobre uma tal ilha, mas felizmente não foi este o caso, descobri o problema neste domingo e até o momento não consegui acessar o ftp do blog, graças a deus eu tinha um backup dos dados e dos arquivos e pude mudar de servidor hoje, segunda-feira.</p>
<p>Bom, agora irei começar a postar os ScreenCasts no Vimeo para não ter mais problemas de trafego, espero que todos entendam.</p>
<p>Grande Abraço a Todos.</p>
<ul class="related_post"><li>Sem Posts Relacionados</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Turbulencias%20nos%20%C3%BAltimos%20dias%22%20http%3A%2F%2Ftinyurl.com%2Fyakp5t9" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/03/turbulencias-nos-ultimos-dias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajude o fórum nacional de ExtJS a evoluir, faça uma doação!</title>
		<link>http://blog.rkn.com.br/2010/03/ajude-o-forum-nacional-de-extjs-a-evoluir-faca-uma-doacao/</link>
		<comments>http://blog.rkn.com.br/2010/03/ajude-o-forum-nacional-de-extjs-a-evoluir-faca-uma-doacao/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 02:10:53 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[ExtJS Brasil]]></category>
		<category><![CDATA[extjs.com.br]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=300</guid>
		<description><![CDATA[Buenas pessoal, inciamos uma campanha de doação no fórum extjs.com.br para que possamos evoluir mais rapidamente. Gostaria que quem puder ajudar o faça, tenho certeza que assim poderemos crescer e difundir mais essa tecnologia e também teremos uma melhor estrutura para ajudar a todos. Mais informações no seguinte tópico http://www.extjs.com.br/forum/index.php?topic=3091.0 Agradeço a ajuda de todos. [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas pessoal,</p>
<p>inciamos uma campanha de doação no fórum <a href="http://forum.extjs.com.br" target="_blank">extjs.com.br</a> para que possamos evoluir mais rapidamente. Gostaria que quem puder ajudar o faça, tenho certeza que assim poderemos crescer e difundir mais essa tecnologia e também teremos uma melhor estrutura para ajudar a todos.</p>
<p>Mais informações no seguinte tópico <a href="http://www.extjs.com.br/forum/index.php?topic=3091.0" target="_blank">http://www.extjs.com.br/forum/index.php?topic=3091.0</a></p>
<p>Agradeço a ajuda de todos.</p>
<p>Forte abraço.</p>
<ul class="related_post"><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Ajude%20o%20f%C3%B3rum%20nacional%20de%20ExtJS%20a%20evoluir%2C%20fa%C3%A7a%20uma%20doa%C3%A7%C3%A3o%21%22%20http%3A%2F%2Ftinyurl.com%2Fylgtu9j" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/03/ajude-o-forum-nacional-de-extjs-a-evoluir-faca-uma-doacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ScreenCast &#8211; Introdução ao FIREBUG</title>
		<link>http://blog.rkn.com.br/2010/03/screencast-introducao-ao-firebug/</link>
		<comments>http://blog.rkn.com.br/2010/03/screencast-introducao-ao-firebug/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 18:18:13 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Iniciante]]></category>
		<category><![CDATA[ScreenCasts]]></category>
		<category><![CDATA[ScreenCast]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=188</guid>
		<description><![CDATA[Olá a todos, temos aqui mais um screencast, dessa vez o tema abordado é FIREBUG, é basicamente um tutorial para iniciantes em firebug. EDITADO Novamente postei o screencast em HTML5, um OGG pro Firefox e um MP4 pros demais, o formato original é o MP4, to tendo sérios problemas com a conversão pro OGG, se [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos, temos aqui mais um screencast, dessa vez o tema abordado é FIREBUG, é basicamente um tutorial para iniciantes em firebug.<br />
<strong>EDITADO</strong><br />
<del datetime="2010-03-10T04:22:07+00:00">Novamente postei o screencast em HTML5, um OGG pro Firefox e um MP4 pros demais, o formato original é o MP4, to tendo sérios problemas com a conversão pro OGG, se alguém tiver alguma dica fico feliz, senão to pensando em largar o OGG de lado.</del></p>
<p><del datetime="2010-03-10T04:22:07+00:00">Bom, aconselho baixarem o vídeo pra assistir, o melhor é o MP4, ele tem uma resolução melhor.</del></p>
<p>Devido a problemas de limite de Transferencia do meu Host passei os screencasts para o vimeo.</p>
<p>Aproveitem o filme. Abraços.</p>
<p><iframe src="http://player.vimeo.com/video/10008225" width="630" height="354" frameborder="0"></iframe></p>
<ul class="related_post"><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>18/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/" title="ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)">ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22ScreenCast%20-%20Introdu%C3%A7%C3%A3o%20ao%20FIREBUG%22%20http%3A%2F%2Ftinyurl.com%2Fygj2mu3" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/03/screencast-introducao-ao-firebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.rkn.com.br/videos/Firebug.mp4" length="137713278" type="video/mp4" />
		</item>
		<item>
		<title>extjs.com.br Migração de Servidor (27/02/2010)</title>
		<link>http://blog.rkn.com.br/2010/02/extjs-com-br-migracao-de-servidor-27022010/</link>
		<comments>http://blog.rkn.com.br/2010/02/extjs-com-br-migracao-de-servidor-27022010/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 17:40:19 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=287</guid>
		<description><![CDATA[Bunas gurizada, venho aqui avisar que dia 27/02/2010, nesta sexta-feira, a nossa comunidade extjs.com.br ficará fora do ar na parte da noite devido a migração de servidor. Agradeço a atenção de todos, para maiores informações acesse o tópico http://extjs.com.br/forum/index.php?topic=3066.0 Sem Posts RelacionadosTwittar Isto!]]></description>
			<content:encoded><![CDATA[<p>Bunas gurizada, venho aqui avisar que dia 27/02/2010, nesta sexta-feira, a nossa comunidade <a href="http://extjs.com.br" target="_blank">extjs.com.br</a> ficará fora do ar na parte da noite devido a migração de servidor.<br />
Agradeço a atenção de todos, para maiores informações acesse o tópico <a href="http://extjs.com.br/forum/index.php?topic=3066.0" target="_blank">http://extjs.com.br/forum/index.php?topic=3066.0</a></p>
<ul class="related_post"><li>Sem Posts Relacionados</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22extjs.com.br%20Migra%C3%A7%C3%A3o%20de%20Servidor%20%2827%2F02%2F2010%29%22%20http%3A%2F%2Ftinyurl.com%2Fyh7b2ep" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/02/extjs-com-br-migracao-de-servidor-27022010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)</title>
		<link>http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/</link>
		<comments>http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 05:16:50 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Iniciante]]></category>
		<category><![CDATA[ScreenCasts]]></category>
		<category><![CDATA[ExtJS 3.X]]></category>
		<category><![CDATA[Fit]]></category>
		<category><![CDATA[HBox]]></category>
		<category><![CDATA[Layouts]]></category>
		<category><![CDATA[ScreenCast]]></category>
		<category><![CDATA[VBox]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=240</guid>
		<description><![CDATA[Bom, como eu queria, hoje comecei a criar meus ScreenCasts, achei muito bacana e pretendo criar vários outros, até é mais fácil mostrar e falar do que escrever e tirar prints EDITADO Bom, vou posta-los aqui em HTML5, se seu browser não for compatível tome vergonha na cara e arrume um que seja. Postarei em [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, como eu queria, hoje comecei a criar meus ScreenCasts, achei muito bacana e pretendo criar vários outros, até é mais fácil mostrar e falar do que escrever e tirar prints <img src='http://blog.rkn.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>EDITADO</strong><br />
<del datetime="2010-03-10T04:15:36+00:00">Bom, vou posta-los aqui em HTML5, se seu browser não for compatível tome vergonha na cara e arrume um que seja. Postarei em mp4 e ogg (to tendo problemas com ogg, mas a prática leva a perfeição) já que os browsers não padronizaram um codec para isso <img src='http://blog.rkn.com.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  se você não conseguir ver no Firefox abra no Chrome ou no Safari (não testei) que rodam o mp4 (formato original do vídeo).</del></p>
<p>Tive problemas de Limite de Trafego no meu host recentemente, por isso decidi postar os screencasts no vimeo, não sei se isso é melhor ou pior mas foi o jeito.<br />
Grande Abraço</p>
<p>Poltronas ajeitadas, pipocas e refrigerantes apostos? Então ta esperando o que pra dar o <strong>Play?</strong></p>
<p><iframe src="http://player.vimeo.com/video/10006108" width="630" height="473" frameborder="0"></iframe></p>
<ul class="related_post"><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>02/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-introducao-ao-firebug/" title="ScreenCast &#8211; Introdução ao FIREBUG">ScreenCast &#8211; Introdução ao FIREBUG</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22ScreenCast%20-%20Estudo%20sobre%20Layouts%28Fit%2C%20HBox%20e%20VBox%29%22%20http%3A%2F%2Ftinyurl.com%2Fygj2n53" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.rkn.com.br/videos/Layouts_Fit_HBox_e_VBox.mp4" length="41183017" type="video/mp4" />
		</item>
		<item>
		<title>Criando um CRUD usando um GRID e um FORM em 3 Partes</title>
		<link>http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/</link>
		<comments>http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 21:00:34 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Iniciante]]></category>
		<category><![CDATA[CRUD]]></category>
		<category><![CDATA[Exemplo]]></category>
		<category><![CDATA[ExtJS 3.X]]></category>
		<category><![CDATA[FormPanel]]></category>
		<category><![CDATA[GridPanel]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=166</guid>
		<description><![CDATA[Buenas gurizada, estive preparando este post, mais especificamente preparando o código deste post nos últimos dias. Criei um exemplo bem didático de um CRUD bem simples e dividido em 3 partes de evolução sendo: Listar os dados de uma tabela num banco MySQL em um grid comum; Adicionar paginação neste grid da parte 1; Adicionar [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas gurizada, estive preparando este post, mais especificamente preparando o código deste post nos últimos dias. Criei um exemplo bem didático de um CRUD bem simples e dividido em 3 partes de evolução sendo:</p>
<ol>
<li>Listar os dados de uma tabela num banco MySQL em um grid comum;</li>
<li>Adicionar paginação neste grid da parte 1;</li>
<li>Adicionar as funcionalidades de &#8220;Adição, Alteração e Deleção&#8221; a parte 2, sendo feita a adição e edição através de um FormPanel.</li>
</ol>
<p>Disponibilizarei aqui apenas um ZIP com as 3 etapas, cada etapa está em uma pasta distinta com seus arquivos .js, .css e .php, junto a estas pastas está um arquivo .sql contendo o banco de dados. Não colocarei online por não poder criar mais um banco de dados aqui neste servidor, mas acredito que quem realmente deseja aprender pode baixar e testar por si próprio.</p>
<p>Procurei comentar bem o código e cada etapa nova comente apenas o que mudou no código, tentei ser bem explicito. Um desses exemplos pode servir de base para a criação das telas para quem está iniciando.</p>
<p>Para executar este exemplo baixe a versão 3.1.1 do ExtJS ou uma mais nova e coloque as 3 pastas dentro da pasta <strong>examples</strong> da biblioteca. O banco que usei foi o MySQL porque a maioria de vocês o usa e usei a ferramenta MySQL Administrator para gerar o backup do banco.</p>
<p>Gostaria de salientar também que usei de um de meus overrides neste exemplo, o <a title="Form Override: Criando colunas facilmente [ExtJS 3.0.X]" rel="nofollow" href="http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/">override que cria colunas facilmente em forms</a>, ele não está incluso no arquivo ZIP e não usá-lo não gera problema algum, só os campos que ficarão um abaixo do outro.</p>
<p>Abaixo um print das 3 telas em ordem de evolução:</p>
<p><a href="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID1.png"><img class="alignnone size-full wp-image-228" title="CRUD-GRID1" src="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID1.png" alt="" width="630" height="250" /></a></p>
<p><a href="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID2.png"><img class="alignnone size-full wp-image-227" title="CRUD-GRID2" src="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID2.png" alt="" width="630" height="250" /></a></p>
<p><a href="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID3.png"><img class="alignnone size-full wp-image-226" title="CRUD-GRID3" src="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID3.png" alt="" width="630" height="250" /></a></p>
<p>Aqui um print da terceira parte com o formulário aberto em Alteração:</p>
<p><a href="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID3-FORM.png"><img class="alignnone size-full wp-image-231" title="CRUD-GRID3-FORM" src="http://blog.rkn.com.br/wp-content/uploads/2010/02/CRUD-GRID3-FORM.png" alt="" width="630" height="250" /></a></p>
<p>E por fim o link para download do arquivo ZIP:</p>
<h1><a href="http://www.rkn.com.br/extjs/ext-3.1.1/examples/CRUD-GRID.zip" target="_blank">DOWNLOAD</a></h1>
<ul class="related_post"><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>25/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/" title="Form Override: Criando colunas facilmente [ExtJS 3.0.X]">Form Override: Criando colunas facilmente [ExtJS 3.0.X]</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>02/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-introducao-ao-firebug/" title="ScreenCast &#8211; Introdução ao FIREBUG">ScreenCast &#8211; Introdução ao FIREBUG</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Criando%20um%20CRUD%20usando%20um%20GRID%20e%20um%20FORM%20em%203%20Partes%22%20http%3A%2F%2Ftinyurl.com%2Fyzlk7ke" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparação de frameworks JavaScript</title>
		<link>http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/</link>
		<comments>http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 01:24:12 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[IBM]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=221</guid>
		<description><![CDATA[Bem interessante esta comparação entre frameworks JavaScript feito por ninguém mais ninguém menos que a IBM, e adivinhem, o ExtJS é considerado o mais completo de todos. Ops, já tinha esquecido do link. Compare JavaScript frameworks 21/12/2010 -- Novidades, mudanças e um novo ano (0)23/03/2010 -- ScreenCast &#8211; Instalando o ExtJS (0)17/02/2010 -- Criando um [...]]]></description>
			<content:encoded><![CDATA[<p>Bem interessante esta comparação entre frameworks JavaScript feito por ninguém mais ninguém menos que a IBM, e adivinhem, o ExtJS é considerado o mais completo de todos.</p>
<p>Ops, já tinha esquecido do link.</p>
<h1><a href="http://www.ibm.com/developerworks/web/library/wa-jsframeworks/index.html" target="_blank">Compare JavaScript frameworks</a></h1>
<ul class="related_post"><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/" title="ExtJS 3.1.1 beta Lançado">ExtJS 3.1.1 beta Lançado</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Compara%C3%A7%C3%A3o%20de%20frameworks%20JavaScript%22%20http%3A%2F%2Ftinyurl.com%2Fyfzurkm" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gadget do fórum Brasileiro de ExtJS para Win Vista/7</title>
		<link>http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/</link>
		<comments>http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 03:57:04 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[ExtJS 3.X]]></category>
		<category><![CDATA[Win 7]]></category>
		<category><![CDATA[Win Vista]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=203</guid>
		<description><![CDATA[EDITADO Versão 1.0.0.1 disponível no link abaixo. Agora o gadget se mantém no tamanho configurado pelos botões de redimensionamento contidos na barra do topo. E ai galera, estamos ai denovo e dessa vez com uma novidade, bom, pelo menos pra mim foi uma novidade. Um dia dessas &#8220;redescobri&#8221; o blog do Jack Slocum, o criador [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rkn.com.br/wp-content/uploads/2010/02/ExtForumBrasilGadgetDoked.png"><img class="alignleft size-full wp-image-205" style="margin-left: 20px; margin-right: 20px;" title="ExtForumBrasilGadgetDoked" src="http://blog.rkn.com.br/wp-content/uploads/2010/02/ExtForumBrasilGadgetDoked.png" alt="" width="241" height="824" /></a><span style="color: #ff6600;"><strong>EDITADO<br />
</strong></span></p>
<p><strong><span style="color: #ff6600;">Versão 1.0.0.1 disponível no link abaixo. Agora o gadget se mantém no tamanho configurado pelos botões de redimensionamento contidos na barra do topo.</span></strong></p>
<p>E ai galera, estamos ai denovo e dessa vez com uma novidade, bom, pelo menos pra mim foi uma novidade. Um dia dessas &#8220;redescobri&#8221; o <a href="http://jackslocum.com/blog/" target="_blank">blog do Jack Slocum</a>, o criador do ExtJS, e la visualizei um post de 15 de Fevereiro de 2008, eu sei, é antigo pacas, que falava sobre um <strong>Gadget</strong> feito em ExtJS pelo próprio Slocum, achei aquilo D+ e acabei me inspirando. Resultado, fiz um, melhor, modifiquei o dele pra Ext3.1.1 (era Ext2.0) e coloquei um tema mais <em>light</em>.</p>
<p>Mas ainda nem comentei do tal <strong>Gadget</strong>, o gadget do Slocum pega os últimos posts do fórum grindo e mostra usando um Grid do ExtJS e usando o Ajax do mesmo, o que fiz foi mudar pra pegar do nosso amado fórum nacional, deu um belo trabalho e vou citar aqui alguns pontos:</p>
<ul>
<li style="text-align: left;">Eu não sabia p* nenhuma dessa plataforma de gadgets. =/</li>
<li style="text-align: left;">A <em>API</em> de gadgets do windows é uma m*, tem pouquíssimas funcionalidades.</li>
<li style="text-align: left;">O arquivo .gadget nada mais é que um .zip renomeado com os arquivos dentro, bom pra estudar um gadget, um saco pra ficar testando, ficar zipando tudo é um saco e olha que eu fiz um .bat pra automatizar mas o WinZip é <em>trial</em> e fica enchendo o saco, debugar erros então&#8230; adivinha, até tem como, mas é como os erros do IE, não ajudam muito. Em resumo, pra ir alterando e testando o cara tem que ter paciência de sobra.</li>
<li style="text-align: left;">Como disse a API é limitada, temos apenas 2 opções de tamanho, tive que criar uns botões bem feios pra poder mudar isso.</li>
<li style="text-align: left;">O gadget deve funcionar em Win Vista e 7, digo deve porque só tenho o Win 7, mas segundo a M$ o que roda num roda no outro.</li>
<li style="text-align: left;">Meu Win 7 insiste em travar, principalmente quando estou com coisas não salvas. &#8220;Tenso&#8221;</li>
<li style="text-align: left;">O SMF, nosso fórum brasileiro, não nos da suporte a posts por JSON, apenas temos o RSS em xml, tive que procurar, aprender e adicionar uma funcionalidade ao fórum pra retornar o que seria em xml em JSON também. É, eu mexi no código, acho que ninguém vai ficar chateado com isso, afinal, se eu tenho acesso ao ftp é pra fazer algo que preste né não?</li>
</ul>
<p>Bom, claro que os crédito vão para o Jack Slocum, mas eu quero um pouco também, pode não ser algo que ajude os Desenv. ExtJS a ficarem ricos mas é bacana criar algo novo, saber algo novo e principalmente poder dizer &#8220;fui eu que fiz, sabia?&#8221; hehehe.</p>
<p>O mais importante de tudo é que todos que passarem por aqui vão poder além de utiliza-lo estuda-lo. Qualquer opinião/sugestão comentem ai, prefira as construtivas ok?</p>
<p>Ah, ia esquecendo, sei que alguns de vocês vão pensar &#8220;Mas que porra é essa? E os posts que ele tinha prometido pra depois das férias que tem utilidade pra mim?&#8221;, é que não pude aguentar, tive que fazer esse gadget, relaxem, os outros posts virão com certeza.</p>
<p>Vocês querem o link pra download né? Ta bom, eu zipei pra diminuir ainda mais o tamanho, deszip que terás o .gadget, que como disse também é um zip, ta ai:</p>
<h1><a href="http://www.rkn.com.br/extjs/ExtForumBrasil.zip" target="_blank">DONWLOAD</a></h1>
<ul class="related_post"><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>18/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/" title="ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)">ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Gadget%20do%20f%C3%B3rum%20Brasileiro%20de%20ExtJS%20para%20Win%20Vista%2F7%22%20http%3A%2F%2Ftinyurl.com%2Fyfz9wzs" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Temas bem coloridos pra ExtJS</title>
		<link>http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/</link>
		<comments>http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 03:06:55 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Temas]]></category>
		<category><![CDATA[ExtJS 3.X]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=195</guid>
		<description><![CDATA[Buenas gurizada, achei a pouco um link que pode ser útil a muitos, alguns temas pro extjs, mais especificamente 21 temas, aproveitem. http://extjs.fudini.net/ 17/02/2010 -- Criando um CRUD usando um GRID e um FORM em 3 Partes (0)12/02/2010 -- Gadget do fórum Brasileiro de ExtJS para Win Vista/7 (0)14/01/2010 -- Ext.ux.form.RCheckbox &#8211; Valor de envio [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas gurizada, achei a pouco um link que pode ser útil a muitos, alguns temas pro extjs, mais especificamente 21 temas, aproveitem.</p>
<p><a href="http://extjs.fudini.net/"><img class="size-medium wp-image-197 alignnone" title="temasExtJS" src="http://blog.rkn.com.br/wp-content/uploads/2010/02/temasExtJS-300x291.png" alt="" width="300" height="291" /></a></p>
<p><a href="http://extjs.fudini.net/" target="_blank">http://extjs.fudini.net/</a></p>
<ul class="related_post"><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>18/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/" title="ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)">ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Temas%20bem%20coloridos%20pra%20ExtJS%22%20http%3A%2F%2Ftinyurl.com%2Fyznkgpz" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vírgulas, um problema constante em JavaScript</title>
		<link>http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/</link>
		<comments>http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 19:20:05 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Iniciante]]></category>
		<category><![CDATA[Erros]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Vírgulas]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=167</guid>
		<description><![CDATA[E ai galera, estou de volta das férias um pouco mais animado e e falido que antes . Como havia prometido no post Saindo de Férias, sem pânico, eu já volto estou começando uma série de posts dedicados aos iniciantes em ExtJS e também aos iniciantes em JavaScript e quem sabe alguns posts sobre PHP, [...]]]></description>
			<content:encoded><![CDATA[<p>E ai galera, estou de volta das férias um pouco mais animado e e falido que antes <img src='http://blog.rkn.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>Como havia prometido no post <a title="Saindo de Férias, sem pânico, eu já volto." rel="nofollow" href="http://blog.rkn.com.br/2010/01/saindo-de-ferias-sem-panico-eu-ja-volto/">Saindo de Férias, sem pânico, eu já volto</a> estou começando uma série de posts dedicados aos iniciantes em ExtJS e também aos iniciantes em JavaScript e quem sabe alguns posts sobre PHP, SQL, Linux, etc&#8230; Queria pedir a todos que acompanham este blog que deem suas opiniões nos comentários, sugestões a respeito do blog e principalmente sugestões de conteúdos que deveriam ser abordados.</p>
<h1>Visão geral do problema</h1>
<p>Vírgulas são um problema real e constante no ExtJS, digo ExtJS pelo fato de usarmos muitos objetos, sendo objetos físicos ou objetos anônimos como passagem de configurações mas vale para qualquer biblioteca JavaScript ou a programação pura em JavaScript.</p>
<h2>Linguagem interpretada</h2>
<p>Como todos sabem, ou pelo menos deveriam saber, o nosso amado JS é uma linguagem que é interpretada na hora da execução e o pior de tudo, ela é interpretada por vários motores diferentes e cada browser pode trata-la de forma diferente.</p>
<h2><strong>Formato do Objeto em JS</strong></h2>
<p>Um objeto em JavaScript segue a simples lógica de pares de valores separados por virgular entre colchetes, cada par de valor é formado por um nome de propriedade e um valor separados por dois pontos (:), ou seja:</p>
<pre class="brush: jscript;">{prop1:val1, prop2:val2, prop3:val3}</pre>
<p>Aprendermos com o passar do tempo que temos de formatar nosso código para um melhor intendimento e esse processo chamamos de <em>itentação</em>, vamos a um exemplo:</p>
<pre class="brush: jscript;">{
	prop1:val1,
	prop2:val2,
	prop3:val3
}</pre>
<p>Ótimo, agora temos um objeto um pouco mais organizado, o problema agora é que fica fácil adicionar uma nova propriedade ou até mesmo retirar ou comentar uma destas e essa facilidade nos remete ao erro, exemplo:</p>
<ul>
<li>Adicionando &#8211; Note que a penúltima propriedade fica sem a virgula no final por um leve esquecimento do programador</li>
</ul>
<pre class="brush: jscript;">{
	prop1:val1,
	prop2:val2,
	prop3:val3   // &lt;== Erro
	prop4:val4   // &lt;== Vai dar pau aqui, pq? pq pro navegador deveria ter
	             // acabado no item anterior ou seja o cara errado é esse último item.
}</pre>
<ul>
<li>Removendo &#8211; Note que a última propriedade contém uma virgula no final também por um leve esquecimento do programador</li>
</ul>
<pre class="brush: jscript;">{
	prop1:val1,
	prop2:val2,  // &lt;== Pro navegador isso indica que deveria ter mais
	             // propriedades depois destao que não é verdade, alguns
	             // navegadores aceitam isso numa boa, mas o IE não é um
	             // desses caras legais.
}</pre>
<ul>
<li>Comentando &#8211; Note que acabamos por ter o mesmo erro do item anterior</li>
</ul>
<pre class="brush: jscript;">{
	prop1:val1,
	prop2:val2,
	//prop3:val3
}</pre>
<h1>Solução</h1>
<p>Bom, tenho certeza que você que leu até aqui acredita que possa existir uma solução para esse problema, bom, sinto lhe dizer que não, não tem.</p>
<p>Algumas pessoas passaram a usar a virgula antes das propriedades de modo a não esquece-las, tudo bem, ajuda, mas não resolve, continuamos tendo os mesmo problemas, antes tínhamos problemas com a última propriedade agora temos problemas com a primeira:</p>
<ul>
<li>Adicionando &#8211; Note que a última propriedade fica sem a virgula antes, mas com certeza é muito mais difícil esquecer neste caso do que no caso anterior</li>
</ul>
<pre class="brush: jscript;">{
	prop1:val1
	,prop2:val2
	,prop3:val3
	prop4:val4   // &lt;== Aqui o programador tem que ter um sério problema de
	             // esquecimento.
}</pre>
<ul>
<li>Removendo &#8211; Aqui se deletarmos o primeiro item e esquecermos de tirar a virgula do segundo temos um sério problema</li>
</ul>
<pre class="brush: jscript;">{
	,prop2:val2  // &lt;== É como se tivéssemos um item vazio antes destes 2 e isso gera erro
	,prop3:val3  // em qualquer navegador, pior que o erro do estudo anterior.
}</pre>
<ul>
<li>Comentando &#8211; Note que acabamos por ter o mesmo erro do item anterior</li>
</ul>
<pre class="brush: jscript;">{
	//prop1:val1
	,prop2:val2
	,prop3:val3
}</pre>
<h1>Conclusão</h1>
<p>Usar a virgula na frente das propriedades de um objeto é sim uma boa prática mas ela só adianta quando temos um código bem identado e garanto que não livra ninguém dos erros com vírgulas, essa metodologia nos ajuda na hora de adicionar propriedades e comentar propriedades, mas temos que tomar muito cuidado com a primeira propriedade.</p>
<p>Em resumo, eu uso a virgula depois das propriedades, é questão de gosto, o importante é saber como procurar os erros e estar ciente de que o erro pode ser uma simples vírgula, escolha a metodologia que melhor lhe agrade, use o firebug, persista na procura do erro e tudo dará certo.</p>
<p>Um programador tem que ser 33% bom em programação e 67% bom em achar erros. É errando que se aprende.</p>
<ul class="related_post"><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>02/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-introducao-ao-firebug/" title="ScreenCast &#8211; Introdução ao FIREBUG">ScreenCast &#8211; Introdução ao FIREBUG</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/" title="ExtJS 3.1.1 beta Lançado">ExtJS 3.1.1 beta Lançado</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22V%C3%ADrgulas%2C%20um%20problema%20constante%20em%20JavaScript%22%20http%3A%2F%2Ftinyurl.com%2Fyj9v5kk" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saindo de Férias, sem pânico, eu já volto.</title>
		<link>http://blog.rkn.com.br/2010/01/saindo-de-ferias-sem-panico-eu-ja-volto/</link>
		<comments>http://blog.rkn.com.br/2010/01/saindo-de-ferias-sem-panico-eu-ja-volto/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 19:13:07 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=169</guid>
		<description><![CDATA[Buenas gurizada, to saindo de férias, e sim, estou indo para Brasília como podem perceber na imagem do post, quem quiser um político pede ai nos comentários que eu trago de presente, quem sabe vem com uma meia bem gordinha né. Mas não se desesperem que logo logo to de volta, mais especificamente dia 5/2, [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas gurizada,</p>
<p>to saindo de férias, e sim, estou indo para Brasília como podem perceber na imagem do post, quem quiser um político pede ai nos comentários que eu trago de presente, quem sabe vem com uma meia bem gordinha né. Mas não se desesperem que logo logo to de volta, mais especificamente dia 5/2, manterei contato, afinal a internet lá deve ser melhor do que a daqui do interior do RS.</p>
<p>Para os anciosos e curiosos preparei uma lista dos posts que estão aqui nos meus rascunhos e que devem ganhar o mundo, espero eu, após as minhas merecidas férias. São eles:</p>
<ul>
<li><strong>ItemId, uma novidade muito útil</strong></li>
</ul>
<p style="padding-left: 60px;">Essa é uma novidade muito legal do Ext 3.x, ela nos permite usar ids iguais para items com pais diferentes. Vamos deixar as explicações para o post certo? Ok.</p>
<ul>
<li><strong>Vírgulas, um problema constante em JavaScript</strong></li>
</ul>
<p style="padding-left: 60px;">Bom, essa á uma grande vilã do programador JavaScript, no início ela nos pega de jeito, mas com o tempo nos acustumamos, claro, existem conselhos que podemos dar aos iniciantes para que possam ter uma vida conjugal mais amigável com a bendita virgula.</p>
<ul>
<li><strong>Criando um CRUD usando apenas um GRID</strong></li>
</ul>
<p style="padding-left: 60px;">Mais um pra série &#8220;Iniciando no ExtJS&#8221;. Pretendo criar aqui um bom exemplo em Ext e PHP, bem comentado para aqueles que ainda estão estudando a biblioteca.</p>
<ul>
<li><strong>Que diabos é JSON? Conheça melhor esta notação</strong></li>
</ul>
<p style="padding-left: 60px;">Outro post da série &#8220;Iniciando no ExtJS&#8221;, se bem que ta mais pra &#8220;Iniciando no javaScript&#8221; mas blz. Exemplos, dicas, essas coisas.</p>
<ul>
<li><strong>Interação entre uma Window e um Iframe contido na mesma</strong></li>
</ul>
<p style="padding-left: 60px;">Esse assunto surgiu como uma duvida de um dos integrandes do fórum, resolvemos por msn mesmo e achei interessante compartilhar, como manipular uma window que contém um iframe de dentro da página que é carregada dentro do iframe. Aguardem&#8230;</p>
<ul>
<li><strong>brMoney &#8211; Formatando números em Reais</strong></li>
</ul>
<p style="padding-left: 60px;">Uma função de formatação de números em Reais, permitindo formatar valores em grids facilmente.</p>
<ul>
<li><strong>Cursos/Consultorias via Skype</strong></li>
</ul>
<p style="padding-left: 60px;">Bom, pretendo que logo possa disponibilizar este post informando os valores e datas disponiveis para que os mais necessitados possam tirar suas duvidas ou ter aulas via Skype e compartilhamento de tela. A melhor forma de se aprender é ter um instrutor, como cursos de Ext aqui no Brasil estão meio escassos, acredito que seja uma boa iniciativa.</p>
<ul>
<li><strong>formExtraOverride: Adicionando algumas funcionalidades ao FormPanel</strong></li>
</ul>
<p style="padding-left: 60px;">Mais um override pra lista, esse aqui adiciona algumas facilidades ao form e seus fields, para navegação e outras coisas mais.</p>
<ul>
<li><strong>Compare &#8211; VType de comparação de campos</strong></li>
</ul>
<p style="padding-left: 60px;">Como prometido no fórum, um vtype de comparação entre 2 campos, email, senha, etc, com um diferencial, a forma de ligar um campo ao outro, sendo assim, uma das formas depende do override citado acima.</p>
<ul>
<li><strong>Store: InsertRecord e getChanges</strong></li>
</ul>
<p style="padding-left: 60px;">Outro override pra lista, esse adiciona 2 métodos ao store, InsertRecord que facilita a inserção de registros no grid e getChanges que facilita a recuperação dos registros alterados.</p>
<ul>
<li><strong>Como usar overrides no ExtJS</strong></li>
</ul>
<p style="padding-left: 60px;">Mais pra série &#8220;Iniciando no ExtJS&#8221;, mostrando qual a melhor forma de usar os overrides encontrados por ai.</p>
<p>Bom, é isso, a lista é longa, vamos torcer para que o tempo seja nosso aliado. E claro, mais novidades estão por vir para a comunidade ExtJSBR, mas isso já é segredo.</p>
<p>Grande abraços a todos. Até logo.</p>
<ul class="related_post"><li>Sem Posts Relacionados</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Saindo%20de%20F%C3%A9rias%2C%20sem%20p%C3%A2nico%2C%20eu%20j%C3%A1%20volto.%22%20http%3A%2F%2Ftinyurl.com%2Fyj6z8gq" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/01/saindo-de-ferias-sem-panico-eu-ja-volto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5, Video, Canvas e ExtJS</title>
		<link>http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/</link>
		<comments>http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 20:14:54 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[Exemplo]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=154</guid>
		<description><![CDATA[Um exemplo impressionante de integração do ExtJS com o futuro da web, o HTML5. No blog do site official do ExtJS tem um posto sobre este tema. Os caras lá criaram código que permite ao usuário visualizar um preview de um video que está rodando dentro de uma janela passando o mouse em cima do [...]]]></description>
			<content:encoded><![CDATA[<p>Um exemplo impressionante de integração do ExtJS com o futuro da web, o HTML5.</p>
<p><a href="http://blog.rkn.com.br/wp-content/uploads/2010/01/HTML5-video-screen-shot-desktop5.png"><img class="alignnone size-full wp-image-155" title="HTML5-video-screen-shot-desktop5" src="http://blog.rkn.com.br/wp-content/uploads/2010/01/HTML5-video-screen-shot-desktop5.png" alt="HTML5-video-screen-shot-desktop5" width="628" height="533" /></a></p>
<p>No blog do site official do ExtJS tem um posto sobre este tema.</p>
<p>Os caras lá criaram código que permite ao usuário visualizar um preview de um video que está rodando dentro de uma janela passando o mouse em cima do botão desta janela. Bem estilo Vista e Windows 7. Achei bem bacana, não pela ideia que já está mais do que conhecida, mas por ser um exemplo fantastico da utilização da tag &lt;video&gt; e do objeto canvas do JavaScript.</p>
<p>Link do post no fórum oficial: <a href="http://www.extjs.com/blog/2010/01/14/html5-video-canvas-extjs/" target="_blank">http://www.extjs.com/blog/2010/01/14/html5-video-canvas-extjs/</a></p>
<p>Link do exemplo rodando: <a href="http://xant.us/ext-ux/lib/ext-3.0.0/examples/desktop/desktop.html" target="_blank">http://xant.us/ext-ux/lib/ext-3.0.0/examples/desktop/desktop.html</a></p>
<p>Vou me deter por aqui, quem quiser analisar o código sugiro dar uma olhada no post official.</p>
<p>Abraços</p>
<ul class="related_post"><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/" title="ExtJS 3.1.1 beta Lançado">ExtJS 3.1.1 beta Lançado</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22HTML5%2C%20Video%2C%20Canvas%20e%20ExtJS%22%20http%3A%2F%2Ftinyurl.com%2Fyfzl86p" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ExtJS 3.1.1 beta Lançado</title>
		<link>http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/</link>
		<comments>http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 19:59:29 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Beta]]></category>
		<category><![CDATA[ExtJS3.1.1-beta]]></category>
		<category><![CDATA[Lançamento]]></category>
		<category><![CDATA[Versão]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=150</guid>
		<description><![CDATA[Um preview para os curiosos e uma forma de contribuir para os amantes do Ext. A versão ExtJS 3.1.1-beta está disponivel para testes em: http://www.extjs.com/deploy/ext-3.1.1-beta/ Você pode baixar esta  versão em: http://www.extjs.com/deploy/ext-3.1.1-beta_5899-129.zip Esta versão é BETA e não foi completamente testada nem está pronta para uso em ambiente de produção. Se quiser contribuir reporte qualquer [...]]]></description>
			<content:encoded><![CDATA[<p>Um preview para os curiosos e uma forma de contribuir para os amantes do Ext.</p>
<p>A versão ExtJS 3.1.1-beta está disponivel para testes em: <a href="http://www.extjs.com/deploy/ext-3.1.1-beta/" target="_blank">http://www.extjs.com/deploy/ext-3.1.1-beta/</a></p>
<p>Você pode baixar esta  versão em: <a href="http://www.extjs.com/deploy/ext-3.1.1-beta_5899-129.zip" target="_blank">http://www.extjs.com/deploy/ext-3.1.1-beta_5899-129.zip</a></p>
<p>Esta versão é BETA e não foi completamente testada nem está pronta para uso em ambiente de produção. Se quiser contribuir reporte qualquer problema que achar ao fórum gringo do Ext na área de Bugs com a tag [3.1.1-beta] então eles podem resolver estes problemas o mais rápido possível para a versão final. Assim que a versão oficial estiver pronta será disponibilizada na página principal do site gringo do ExtJS e eu criarei um post aqui a respeito.</p>
<p>O comunidade ExtJS agradece sua contribuição</p>
<ul class="related_post"><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li><li>19/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/html5-video-canvas-e-extjs/" title="HTML5, Video, Canvas e ExtJS">HTML5, Video, Canvas e ExtJS</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22ExtJS%203.1.1%20beta%20Lan%C3%A7ado%22%20http%3A%2F%2Ftinyurl.com%2Fyhcbf5y" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/01/extjs-3-1-1-beta-lancado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</title>
		<link>http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/</link>
		<comments>http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 17:28:57 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Checkbox]]></category>
		<category><![CDATA[ExtJS 3.X]]></category>
		<category><![CDATA[RCheckbox]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=139</guid>
		<description><![CDATA[Como sabemos por padrão o checkbox envia valor se foi marcado, se não marcado foi ele não envia nada. Mas&#8230; Uma vez peguei um UX do site do Saki e um tempo depois modifiquei ele pra ficar melhor e menor. Claro, mudei o nome, afinal não é mais o mesmo UX, mas os créditos ao [...]]]></description>
			<content:encoded><![CDATA[<p>Como sabemos por padrão o checkbox envia valor se foi marcado, se não marcado foi ele não envia nada.<br />
Mas&#8230; Uma vez peguei um UX do site do <a href="http://extjs.eu/" target="_blank">Saki </a>e um tempo depois modifiquei ele pra ficar melhor e menor. Claro, mudei o nome, afinal não é mais o mesmo UX, mas os créditos ao <a href="http://extjs.eu/" target="_blank">Saki </a>continuam.</p>
<h2>Componente:</h2>
<pre class="brush: jscript;">
/**
  * Ext.ux.form.RCheckbox - checkbox com valor de submit configurável
  *
  * @author  Rodrigo Krummenauer do Nascimento
  * @version 0.0.1
  * @date    14/01/2010
  *
  * @obs Testado na versão 3.0.0 da biblioteca ExtJS. UX inspirado no UX
  * XCheckbox de autoria de Ing. Jozef Sakalos.
  *
  * @license Open Source LGPL 3.0 license.
  * License details: http://www.gnu.org/licenses/lgpl.html
  */

/**
  * @class Ext.ux.RCheckbox
  * @extends Ext.form.Checkbox
  */
Ext.ns('Ext.ux.form');
Ext.ux.form.RCheckbox = Ext.extend(Ext.form.Checkbox, {
	uncheckedValue:false,
	checkedValue  :true,

	onRender:function() {
		Ext.ux.form.RCheckbox.superclass.onRender.apply(this, arguments);

		//Cria um campo hidden para conter o valor a ser enviado
		this.hiddenField = this.wrap.insertFirst({tag:'input', type:'hidden'});
		//Atribui o nome do checkbox ao campo hidden
		this.hiddenField.dom.name = this.el.dom.name;
		//Retira o campo nome do checkbox para enviar apenas o campo hidden
		this.el.dom.name = '';

		this.updateHidden();
	},
	setValue:function(v) {
		Ext.ux.form.RCheckbox.superclass.setValue.apply(this, arguments);
		this.updateHidden();
	},
	updateHidden:function(v) {
		if(this.hiddenField) {
			this.hiddenField.dom.value = this.checked ? this.checkedValue : this.uncheckedValue;
		}
	}
});
Ext.reg('rcheckbox', Ext.ux.form.RCheckbox);
</pre>
<p>Como vocês podem perceber o valor de envio é configurável, pode ser alterado diretamente no UX o que afeta todos os RCheckbox criados ou podem ser definidos em cada componente criado.</p>
<h2>Exemplo:</h2>
<pre class="brush: jscript;">
Ext.onReady(function(){
	Ext.form.FormPanel.prototype.bodyStyle = 'padding:10px';
	Ext.ux.form.RCheckbox.prototype.hideLabel = true;

	var win = new Ext.Window({
		height: 210,
		width: 600,
		layout: 'fit',
		title: 'Ext.ux.form.RCheckbox',
		items:[{
			xtype: 'form',
			labelWidth: 60,
			layout: 'hbox',
			items: [{
				xtype: 'fieldset',
				title: 'Linguegens',
				flex: 1,
				items: [{
					xtype: 'rcheckbox',
					checked: true,
					boxLabel: 'PHP',
					name: 'php'
				},{
					xtype: 'rcheckbox',
					boxLabel: 'ASP',
					name: 'asp'
				},{
					xtype: 'rcheckbox',
					boxLabel: 'JSP',
					name: 'jsp'
				}]
			},{
				xtype: 'fieldset',
				title: 'Banco de Dados',
				flex: 1,
				items: [{
					xtype: 'rcheckbox',
					checked: true,
					boxLabel: 'PostgreSQL',
					name: 'postgresql'
				},{
					xtype: 'rcheckbox',
					boxLabel: 'FireBird',
					name: 'firebird'
				},{
					xtype: 'rcheckbox',
					boxLabel: 'Oracle',
					name: 'oracle'
				}]
			},{
				xtype: 'fieldset',
				title: 'Browsers',
				flex: 1,
				items: [{
					xtype: 'rcheckbox',
					checked: true,
					uncheckedValue: 'off',
					checkedValue: 'on',
					boxLabel: 'Firefox',
					name: 'firefox'
				},{
					xtype: 'rcheckbox',
					checked: true,
					uncheckedValue: 'off',
					checkedValue: 'on',
					boxLabel: 'Chrome',
					name: 'chrome'
				},{
					xtype: 'rcheckbox',
					uncheckedValue: 'off',
					checkedValue: 'on',
					boxLabel: 'IEca',
					name: 'ieca'
				}]
			}]
		}],
		buttons:[{
			text:'Salvar',
			handler: function(){
				alert(Ext.encode(win.items.items[0].getForm().getValues()))
				win.items.items[0].getForm().submit({url:'123.php'})
			}
		},{
			text:'Cancelar'
		}]
	})
	win.show();
})
</pre>
<h2><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/Ext.ux.form.RCheckbox/index.html" target="_blank">Exmeplo Online</a></h2>
<pre></pre>
<h2><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/Ext.ux.form.RCheckbox/Ext.ux.form.RCheckbox.rar">ZIP Com os Arquivos</a></h2>
<ul class="related_post"><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>27/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/" title="Ext.ux.StoreGroup &#8211; Carregando Dependências">Ext.ux.StoreGroup &#8211; Carregando Dependências</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>18/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/screencast-estudo-sobre-layoutsfit-hbox-e-vbox/" title="ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)">ScreenCast &#8211; Estudo sobre Layouts(Fit, HBox e VBox)</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>08/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/virgulas-um-problema-constante-em-javascript/" title="Vírgulas, um problema constante em JavaScript">Vírgulas, um problema constante em JavaScript</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Ext.ux.form.RCheckbox%20-%20Valor%20de%20envio%20configur%C3%A1vel%22%20http%3A%2F%2Ftinyurl.com%2Fyktwlmp" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Override GridPanel/ColumnModel: Colunas Checkbox</title>
		<link>http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/</link>
		<comments>http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 17:19:30 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Overrides]]></category>
		<category><![CDATA[Checkbox]]></category>
		<category><![CDATA[ColumnModel]]></category>
		<category><![CDATA[Colunas]]></category>
		<category><![CDATA[ExtJS 3.X]]></category>
		<category><![CDATA[GridPanel]]></category>
		<category><![CDATA[Override]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=129</guid>
		<description><![CDATA[Testado apenas no ExtJS 3.X. Bom, mais uma contribuição pra comunidade. Este override permite criar colunas com checkbox facilmente em um grid, basta a coluna estar ligada a um campo booleano e ter a propriedade checkbox:true, para tornar esta coluna editável basta atribuir a propriedade editor:true para a mesma. Sem mais delongas vamos ao código: [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">Testado apenas no ExtJS 3.X.</span></p>
<p>Bom, mais uma contribuição pra comunidade.</p>
<p>Este override permite criar colunas com checkbox facilmente em um grid, basta a coluna estar ligada a um campo booleano e ter a propriedade <strong>checkbox:true</strong>, para tornar esta coluna editável basta atribuir a propriedade <strong>editor:true</strong> para a mesma.</p>
<p>Sem mais delongas vamos ao código:</p>
<h2>Override:</h2>
<pre class="brush: jscript;">
Ext.override(Ext.grid.ColumnModel, {
	setConfig: Ext.grid.ColumnModel.prototype.setConfig.createSequence(function(config, initial){
		for(var i = 0, len = config.length; i &lt; len; i++){
			var c = config[i];
			if(c.checkbox){
				c.id = c.dataIndex;
				c.align = c.align || 'center';
				if(c.editor){
					c.renderer = this.rendererCheckEditable;
				}else{
					c.renderer = this.rendererCheck;
				}
			}
		}
	}),
	rendererCheck: function(v, p, record){
		p.css += ' x-grid3-check-col-td';
		return '&lt;div class=&quot;x-grid3-check-col' + (v ? '-on' : '') + ' x-grid3-col-' + this.id + '&quot; idCol=&quot;'+this.id+'&quot; editable=&quot;false&quot;&gt;&amp;#160;&lt;/div&gt;';
	},
	rendererCheckEditable: function(v, p, record){
		p.css += ' x-grid3-check-col-td';
		return '&lt;div class=&quot;x-grid3-check-col' + (v ? '-on' : '') + ' x-grid3-col-' + this.id + '&quot; idCol=&quot;'+this.id+'&quot; editable=&quot;true&quot;&gt;&amp;#160;&lt;/div&gt;';
	},
	onMouseDown: function(e, t){
		if (t.className &amp;&amp; t.className.indexOf('x-grid3-check-col') != -1) {
			e.stopEvent();
			if(t.getAttribute('editable')=='true'){
				var index = this.grid.getView().findRowIndex(t);
				var record = this.grid.store.getAt(index);
				var idCol = t.getAttribute('idcol');
				record.set(idCol, !record.data[idCol]);
				var o = {
					grid: this.grid,
					record: record,
					field: idCol,
					value: record.data[idCol],
					originalValue: !record.data[idCol],
					row: index,
					column: this.grid.getView().findHeaderIndex(t)
				}
				this.grid.fireEvent('afteredit', o);
			}
		}
	}
})

Ext.override(Ext.grid.GridPanel, {
	onRender: Ext.grid.GridPanel.prototype.onRender.createSequence(function(ct, position){
		this.colModel.grid = this;
		if(this.isEditor){
			var view = this.getView();
			view.mainBody.on('mousedown', this.colModel.onMouseDown, this.colModel);
		}
		var view = this.getView();
		var hmenu = view.hmenu;
		if (!view.menuCheck){
			view.sep  = hmenu.addSeparator();
			view.menuCheck = hmenu.add({
				text: 'Marcar Todos',
				itemId: 'selectAll',
				iconCls: 'x-grid3-check-col-on',
				scope: this,
				handler: function(){
					this.getStore().data.each(function(item){
						item.set(view.cm.config[view.hdCtxIndex].dataIndex, true);
					})
				}
			});
			view.menuUnCheck = hmenu.add({
				text: 'Desmarcar Todos',
				itemId: 'unselectAll',
				iconCls: 'x-grid3-check-col',
				scope: this,
				handler: function(){
					this.getStore().data.each(function(item){
						item.set(view.cm.config[view.hdCtxIndex].dataIndex, false);
					})
				}
			});
		}
		hmenu.on('beforeshow', function(){
			var visible = view.cm.config[view.hdCtxIndex].checkbox &amp;&amp; view.cm.config[view.hdCtxIndex].editor;
			view.menuCheck.setVisible(visible);
			view.menuUnCheck.setVisible(visible);
			view.sep.setVisible(visible);
		}, this);
	})
})
</pre>
<h2>Exemplo:</h2>
<pre class="brush: jscript;">
Ext.onReady(function(){

	var win = new Ext.Window({
		height: 240,
		width: 620,
		layout: 'fit',
		title: 'Override GridPanel/ColumnModel, Colunas Checkbox',
		items:[{
			xtype: 'editorgrid',
			labelWidth: 60,
			store: new Ext.data.ArrayStore({
				fields: [
					'nome',
					{name:'ativo'   , type:'bool'},
					{name:'politico', type:'bool'},
					{name:'corrupto', type:'bool'}
				],
				data: [
					['João'     , true , true, true],
					['Zé'       , false, true, true],
					['Chico'    , true , true, true],
					['Aureliano', true , true, true],
					['Zulu'     , true , true, false]
				]
			}),
			columns:[
				{dataIndex:'nome'    , header:'Nome'},
				{dataIndex:'ativo'   , header:'Ativo'   , checkbox:true, editor:true},
				{dataIndex:'politico', header:'Político', checkbox:true, editor:false},
				{dataIndex:'corrupto', header:'Corrupto', checkbox:true, editor:true}
			],
			listeners:{
				afteredit:function(o){
					//Evento disparado ao fim da edição de qualquer campo no grid.
				}
			}
		}],
		buttons:[{
			text:'Salvar'
		},{
			text:'Cancelar'
		}]
	})
	win.show();
})
</pre>
<h2><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/GridOverrideCheckboxColumns/index.html" target="_blank">Exemplo Online</a></h2>
<h2><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/GridOverrideCheckboxColumns/GridOverrideCheckboxColumns.zip" target="_blank">ZIP Com os Arquivos</a></h2>
<ul class="related_post"><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>25/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/" title="Form Override: Criando colunas facilmente [ExtJS 3.0.X]">Form Override: Criando colunas facilmente [ExtJS 3.0.X]</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li><li>07/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/override-store-funcao-de-validacao-de-dados-nos-campos/" title="Override Store: Função de validação de dados nos campos">Override Store: Função de validação de dados nos campos</a> (0)</li><li>06/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/campos-calculados-criando-campos-de-dados-em-tempo-de-execucao/" title="Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]">Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]</a> (0)</li><li>27/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/" title="Ext.ux.StoreGroup &#8211; Carregando Dependências">Ext.ux.StoreGroup &#8211; Carregando Dependências</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Override%20GridPanel%2FColumnModel%3A%20Colunas%20Checkbox%22%20http%3A%2F%2Ftinyurl.com%2Fyfv2hoc" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feliz 2010</title>
		<link>http://blog.rkn.com.br/2009/12/feliz-2010/</link>
		<comments>http://blog.rkn.com.br/2009/12/feliz-2010/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 18:04:49 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=119</guid>
		<description><![CDATA[Feliz 2010 a todos os leitores deste modesto blog, que possamos evoluir ainda mais neste novo ano, espero que todos estejam gostando dos posts e que continuem apreciando as novidades e claro, dando sugestões e opiniões. Boas Festas a todos. Sem Posts RelacionadosTwittar Isto!]]></description>
			<content:encoded><![CDATA[<p>Feliz 2010 a todos os leitores deste modesto blog, que possamos evoluir ainda mais neste novo ano, espero que todos estejam gostando dos posts e que continuem apreciando as novidades e claro, dando sugestões e opiniões.</p>
<p>Boas Festas a todos.</p>
<ul class="related_post"><li>Sem Posts Relacionados</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Feliz%202010%22%20http%3A%2F%2Ftinyurl.com%2Fyjzaatj" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2009/12/feliz-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Override Store: Função de validação de dados nos campos</title>
		<link>http://blog.rkn.com.br/2009/12/override-store-funcao-de-validacao-de-dados-nos-campos/</link>
		<comments>http://blog.rkn.com.br/2009/12/override-store-funcao-de-validacao-de-dados-nos-campos/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 22:51:52 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Overrides]]></category>
		<category><![CDATA[Fields]]></category>
		<category><![CDATA[Override]]></category>
		<category><![CDATA[Store]]></category>
		<category><![CDATA[Validação]]></category>
		<category><![CDATA[Validator]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=112</guid>
		<description><![CDATA[Este override permite criar funções de validação para os Fields dos Stores, principalmente para validar Grids editáveis onde o usuário tem a liberdade de inserir dados. História: Bom, pra variar tive essa necessidade ao desenvolver uma tela onde havia um Grid editável, era uma tela de contas a pagar e de acordo com meu cliente [...]]]></description>
			<content:encoded><![CDATA[<p>Este override permite criar funções de validação para os <strong>Fields </strong>dos <strong>Stores</strong>, principalmente para validar <strong>Grids</strong> editáveis onde o usuário tem a liberdade de inserir dados.</p>
<h3>História:</h3>
<p>Bom, pra variar tive essa necessidade ao desenvolver uma tela onde havia um <strong>Grid </strong>editável, era uma tela de contas a pagar e de acordo com meu cliente o usuário deveria ser obrigado a informar 2 campos, &#8220;data de pagamento&#8221; e &#8220;pago&#8221;, onde um era um campo de data e outro uma coluna CheckBox, se a &#8220;data de pagamento&#8221; fosse informada o usuário deveria marcar a coluna &#8220;pago&#8221; e se a coluna &#8220;pago&#8221; estivesse marcada o usuário deveria informar a &#8220;data de pagamento&#8221;.</p>
<p>Assim resolvi criar uma forma de validar os dados diretamente no <strong>Store </strong>e que funcionasse de forma parecida a validação de campos no formulário de forma que o programador pudesse informar uma função de validação para cada campo ou passar o nome de uma função de validação interna.</p>
<h3>Detalhes:</h3>
<p>Juntamente aos demais parâmetros que passamos para cada campo no <strong>Store </strong>podemos passar o seguinte parâmetro:</p>
<ul>
<li><strong>validator{Function/String}</strong>: Função de validação podendo ser uma função criada pelo programador ou uma string indicando o nome de uma função interna, as funções internas são:
<ul>
<li><strong>notblank</strong>: O campo é considerado inválido caso seja igual a (<strong><em>&#8221;, null ou undefined</em></strong>).</li>
</ul>
</li>
</ul>
<p>Novo método no Store:</p>
<ul>
<li><strong>validator</strong>:<strong> </strong>este novo método executa a validação de cada registro do <strong>Store </strong>passando por todos os campos e retorna <strong>true</strong> caso todos estejam válidos, se algum campo estiver inválido a verificação é interrompida neste primeiro erro e é retornado um objeto contendo o registro (<strong>Record</strong>) e o campo (<strong>Field</strong>) do erro.
<ul>
<li><strong>Parâmetros</strong>:
<ul>
<li><strong>Nenhum</strong>.</li>
</ul>
</li>
<li><strong>Retorno</strong>:
<ul>
<li><strong>Object</strong>
<ul>
<li><strong>record</strong>: registro do erro;</li>
<li><strong>field</strong>: campo do erro.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Override:</h3>
<pre class="brush: jscript;">
Ext.override(Ext.data.Store, {
	validateFn: {
		notblank: function(v){
			return v !== null &amp;&amp; v !== '' &amp;&amp; v !== undefined;
		}
	},
	validate: function(){
		var r = true;
		var result = null;
		Ext.each(this.fields.items, function(i){
			if(typeof i.validator == 'string'){
				i.validator = this.validateFn[i.validator];
			}
			if(typeof i.validator == 'function'){
				Ext.each(this.data.items, function(d){
					r = i.validator(d.get(i.name), d);
					result = {record: d, field: i};
					return r;
				},this)
				return r;
			}
		},this)
		return r || result;
	}
})
</pre>
<h3>Exemplo:</h3>
<pre class="brush: jscript;">
Ext.onReady(function(){
	var win = new Ext.Window({
		height: 240,
		width: 620,
		layout: 'fit',
		title: 'Override Store - Função de validação de dados nos campos',
		items:[{
			xtype: 'editorgrid',
			id: 'gridExemplo',
			store: new Ext.data.JsonStore({
				fields:[
					{
						name: 'nome'
					},{
						name: 'sobrenome',
						displayName: 'Sobrenome',
						validator: 'notblank'
					}
				],
				data: [
					{nome: 'Rodrigo', sobrenome:'Nascimento'},
					{nome: 'Vera'   , sobrenome:'Elizabete'},
					{nome: 'Jéssica', sobrenome:'Fischer'},
					{nome: 'Tiago'  , sobrenome:''}
				]
			}),
			columns:[
				{
					header: 'Nome',
					width: 450,
					sortable: true,
					dataIndex: 'nome'
				},{
					header: 'Sobrenome',
					width: 130,
					sortable: true,
					dataIndex: 'sobrenome',
					editor: new Ext.form.TextField()
				}
			]
		}],
		buttons:[{
			text: 'Salvar',
			handler: function(){
				var r = Ext.getCmp('gridExemplo').getStore().validate();
				if(r === true){
					Ext.Msg.alert('Exemplo','Enviando dados...');
				}else{
					Ext.Msg.alert('Exemplo','Dados incorretos na coluna '+r.field.displayName);
				}
			}
		},{
			text: 'Cancelar',
			handler: function(){
				win.close();
			}
		}]
	})
	win.show();
})
</pre>
<h3><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/storeOverrideValidator/index.html" target="_blank">Exemplo Onlie</a></h3>
<ul class="related_post"><li>06/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/campos-calculados-criando-campos-de-dados-em-tempo-de-execucao/" title="Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]">Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]</a> (0)</li><li>27/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/" title="Ext.ux.StoreGroup &#8211; Carregando Dependências">Ext.ux.StoreGroup &#8211; Carregando Dependências</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>25/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/" title="Form Override: Criando colunas facilmente [ExtJS 3.0.X]">Form Override: Criando colunas facilmente [ExtJS 3.0.X]</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Override%20Store%3A%20Fun%C3%A7%C3%A3o%20de%20valida%C3%A7%C3%A3o%20de%20dados%20nos%20campos%22%20http%3A%2F%2Ftinyurl.com%2Fya9r4fx" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2009/12/override-store-funcao-de-validacao-de-dados-nos-campos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]</title>
		<link>http://blog.rkn.com.br/2009/12/campos-calculados-criando-campos-de-dados-em-tempo-de-execucao/</link>
		<comments>http://blog.rkn.com.br/2009/12/campos-calculados-criando-campos-de-dados-em-tempo-de-execucao/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 02:13:24 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Overrides]]></category>
		<category><![CDATA[Calc Fields]]></category>
		<category><![CDATA[Campos Calculados]]></category>
		<category><![CDATA[Lookup]]></category>
		<category><![CDATA[Override]]></category>
		<category><![CDATA[Record]]></category>
		<category><![CDATA[Store]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=95</guid>
		<description><![CDATA[Os campos calculados permitem a criação de um novo campo contendo dados calculados em tempo de execução como a soma de dois outros campos, a multiplicação do valor unitário de um produto e a quantidade vendida gerando um campo de total e até um campo Lookup(Campo ligado a outro Store como por exemplo trazer o [...]]]></description>
			<content:encoded><![CDATA[<p>Os campos calculados permitem a criação de um novo campo contendo dados calculados em tempo de execução como a soma de dois outros campos, a multiplicação do valor unitário de um produto e a quantidade vendida gerando um campo de total e até um campo <strong>Lookup</strong>(Campo ligado a outro <strong>Store </strong>como por exemplo trazer o nome de uma cidade para um <strong>Store </strong>que contenha apenas o código da cidade).</p>
<h3>História:</h3>
<p>Como sempre ao desenvolver meus sistemas em determinado momento tive a necessidade de implementar uma coluna em grid editável que fosse o resultado de um cálculo entre outras 3 colunas, este campo deveria ser recalculado caso um dos 3 campos fosse modificado e deveria ser possível ordenar por este campo, eu já estava acostumado com esta abordagem por trabalhar com Delphi anteriormente, sendo assim fui a busca de uma solução no mestre Google e encontrei <a href="http://www.extjs.com/forum/showthread.php?t=28826" target="_blank">este post</a> no fórum americano que criava o tal campo calculado.</p>
<p>Até ai tudo certo, mas quando resolvi criar este post o assunto era outro, era apenas <strong>Lookup </strong>no grid, um override no <strong>GridView </strong>que permitia mostrar um campo de outro <strong>Store </strong>em uma coluna que contivesse o código para a ligação, ou seja, poderíamos mostrar o nome da cidade no lugar do código, quando me deparei com uma solução melhor para este problema, esta solução seria juntar os campos calculados com o <strong>Lookup </strong>permitindo além de criar os tais campos calculados criar também campos que busquem dados de outro <strong>Store </strong>de acordo com uma ligação, assim criamos um novo campo, como por exemplo um campo &#8220;cidade&#8221; que recebe o nome da cidade ligando o campo &#8220;cid_id&#8221; do <strong>Store</strong> principal a um <strong>Store </strong>que contenha o código e nome das cidades.</p>
<p>Então resolvi reescrever todo o código deste override e permitir novos parâmetros nos campos do <strong>Store</strong> para a criação de campos calculados e campos <strong>Lookup</strong>.</p>
<h3>Detalhes:</h3>
<p>Vantagens do Lookup como campo calculado:</p>
<ul>
<li>Permite ordenação, o <strong>Lookup </strong>no grid usando o render ordena a coluna pelo seu valor real, o código, o campo calculado é um campo real que contém um valor x, neste caso a descrição de um código.</li>
<li>Mais leve, a operação de busca da descrição em outro <strong>Store </strong>acontece apenas na criação de cada registro e na modificação do código atualizando apenas o registro modificado, usando render a busca da descrição ocorreria a cada refresh da view, em ordenações de colunas, inserção de registro, deleção de registro etc&#8230;</li>
</ul>
<p>Abaixo separo as propriedades que podem ser usadas em cada um dos 2 casos, campo calculado ou lookup, por não serem usadas no mesmo campo ao mesmo tempo. A propriedade <strong>dependencies </strong>pode ser usada para ambos.</p>
<p>Propriedades novas nos campos do <strong>Store</strong> para campos calculados:</p>
<ul>
<li><strong>dependencies{Array/String}</strong>: Um campo ou um array de campos que quando alterados forçam o recalculo do campo atual, exemplo: No caso de da multiplicação de quantidade e valor de um produto para gerar um campo total se um desses campos for alterado o total deve ser recalculado;</li>
<li><strong>calc{Function/String}</strong>: Função que recebe o campo e o record como parâmetros e retorna o calculo do campo, podemos passar uma função de calculo personalizado ou usar algumas funções predefinidas dentro do override passando seu nome como string, nas funções predefinidas os campos executados no calculo são os campos listados em <strong>dependencies</strong>:
<ul>
<li><strong>Function(record, field)</strong>: O retorno deve ser o valor a ser adicionado ao campo;</li>
<li><strong>String</strong>: funções predefinidas:
<ul>
<li><strong>sum</strong>: soma todos os campos definidos em <strong>dependencies</strong>;</li>
<li><strong>mult</strong>: multiplica todos os campos definidos em <strong>dependencies</strong>;</li>
<li><strong>sub</strong>: subtrai os campos definidos em <strong>dependencies</strong> em ordem, 1º &#8211; 2º &#8211; 3º &#8211; 4º &#8230;;</li>
<li><strong>div</strong>: divide os campos definidos em <strong>dependencies</strong> em ordem, (((1º / 2º) / 3º) &#8211; 4º) &#8230;;</li>
<li><strong>avg</strong>: retorna o valor médio de todos os campos definidos em <strong>dependencies</strong>;</li>
<li><strong>min</strong>: retorna o menor valor de todos os campos definidos em <strong>dependencies</strong>;</li>
<li><strong>max</strong>: retorna o maior valorde  todos os campos definidos em <strong>dependencies</strong>;</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Propriedades novas nos campos do <strong>Store</strong> para <strong>Lookup</strong>:</p>
<ul>
<li><strong>lookupStore{Object}</strong>: Store a ser ligado, Store remoto;</li>
<li><strong>lookupField{String}</strong>: Campos de ligação, &#8216;campoLocal;campoRemoto&#8217;, caso seja informado apenas um campo, &#8216;campoLocalRemoto&#8217;, este será considerado como o mesmo nome em ambos os Stores. Aqui definimos que campos ligamos em cada Store, exemplo, campo &#8220;cid_id&#8221; no Store local e &#8220;id&#8221; no Store de cidades ficaria &#8216;cid_id;id&#8217;, se ambos fossem &#8220;cid_id&#8221; poderíamos usar &#8220;cid_id;cid_id&#8221; ou simplesmente &#8220;cid_id&#8221;;</li>
<li><strong>displayField{String}</strong>: Campo do Store remoto a ser trazido para este campo calculado, exemplo, &#8220;cid_descricao&#8221;, caso este campo não seja informado será usada a propriedade <strong>name</strong>, ou seja, se pudermos definir o campo do Store local com o <strong>name</strong> igual ao campo a ser trazido do Store remoto podemos omitir este campo;</li>
<li><strong>displayTemplate{String}</strong>: Aqui definimos um template de como queremos trazer os dados do Store remoto, podemos definir quais campos e o formato onde temos <strong>lookupField </strong>como o campo local, ou seja, o código e <strong>displayField</strong> como o campo definido na propriedade acima, além destes podemos adicionar qualquer campo do Store remoto, exemplo: &#8216;&lt;b&gt;{lookupField} -&lt;/b&gt; {displayField}&#8217; retornaria algo do tipo &#8216;<strong>1 &#8211; </strong>Porto Alegre&#8217;. Padrão: &#8216;{displayField}&#8217;;</li>
<li><strong>dependencies{Array/String}</strong>: Lista de dependencias que ao serem alteradas forçam este campo a buscar novamente o <strong>displayField</strong> no Store remoto, normalmente usamos o campo de ligação (<strong>lookupField</strong>) que ao ser alterado devemos buscar sua descrição novamente.</li>
</ul>
<p>OBS: No caso de <strong>Lookup</strong> se modificarmos o campo o valor será atribuído ao <strong>LookupField</strong>, ou seja, no caso de um campo &#8220;cid_descricao&#8221; que seja lookup ao campo &#8220;cid_id&#8221; se atribuirmos um valor a &#8220;cid_descricao&#8221; este será atribuido ao campo &#8220;cid_id&#8221;, ou seja, se colocarmos um combobox de em um EditorGrid este alterará o campo certo, o campo de código.</p>
<h3>Override:</h3>
<pre class="brush: jscript;">
Ext.override(Ext.data.Record, {
	dependents:{},
	join: Ext.data.Record.prototype.join.createSequence(function(){
		this.ajustFields();
	}),
	ajustFields: function(){
		this.fields.each(function(i){
			Ext.each(i.dependencies, function(d){
				this.dependents[d] = this.dependents[d] || [];
				if(this.dependents[d].indexOf(i)===-1){
					this.dependents[d].push(i);
				}
			},this)
			this.calc(i);
		},this)
	},
	calc: function(field, dirty){
		if(Ext.isString(field.calc)){
			field.calc = this.calcF[field.calc];
		}
		if(Ext.isFunction(field.calc)){
			var value = null;
			if(Ext.isFunction(field.calc)){
				value = field.calc.createDelegate(field.scope||this)(this, field);
			}
			if (dirty){
				this.set(field.name, value);
			}else{
				this.data[field.name] = value;
			}
		}
		if(field.lookupStore){
			if(Ext.isString(field.lookupField)){
				var tmp = field.lookupField.split(';');
				field.lookupField = {local:tmp[0], remote:tmp[1] || tmp[0]};
				delete tmp;
			}
			field.displayField = field.displayField || field.name
			field.displayTemplate = field.displayTemplate || '{displayField}';

			var lookupStore = field.lookupStore;
			var lookupField = field.lookupField;
			var displayField = field.displayField;
			var value = this.data[lookupField.local];
			var displayTemplate = field.displayTemplate;
			var t = new Ext.Template(displayTemplate);

			var i = lookupStore.find(lookupField.remote, value, 0, false, true);
			if(i&gt;=0){
				var remoteRecord = lookupStore.getAt(i);
				var displayField = remoteRecord.get(displayField);
				value = t.apply(Ext.apply({displayField: displayField, lookupField: value},remoteRecord.data));
			}

			if (dirty){
				this.set(field.name, value, true);
			}else{
				this.data[field.name] = value;
			}
		}
	},
	set: function(name, value, internalLookup){
		if(this.fields.get(name).lookupStore&amp;&amp;!internalLookup){
			name = this.fields.get(name).lookupField.remote;
		}
		var isObj = (typeof value === 'object');
		if(!isObj &amp;&amp; String(this.data[name]) === String(value)){
			return;
		} else if (isObj &amp;&amp; Ext.encode(this.data[name]) === Ext.encode(value)) {
			return;
		}
		this.dirty = true;
		if(!this.modified){
			this.modified = {};
		}
		if(typeof this.modified[name] == 'undefined'){
			this.modified[name] = this.data[name];
		}
		this.data[name] = value;
		if(!this.editing){
			this.afterEdit();
		}
		Ext.each(this.dependents[name], function(i){
			this.calc(i, true);
		},this)
	},
	calcF: {
		sum: function(r,f){
			var v = null;
			Ext.each(f.dependencies, function(i){
				v = (v == null ? Ext.num(r.get(i),0) : v + Ext.num(r.get(i),0));
			},this)
			return v;
		},
		mult: function(r,f){
			var v = null;
			Ext.each(f.dependencies, function(i){
				v = (v == null ? Ext.num(r.get(i),0) : v * Ext.num(r.get(i),0));
			},this)
			return v;
		},
		sub: function(r,f){
			var v = null;
			Ext.each(f.dependencies, function(i){
				v = (v == null ? Ext.num(r.get(i),0) : v - Ext.num(r.get(i),0));
			},this)
			return v;
		},
		div: function(r,f){
			var v = null;
			Ext.each(f.dependencies, function(i){
				v = (v == null ? Ext.num(r.get(i),0) : v / Ext.num(r.get(i),0));
			},this)
			return v;
		},
		avg: function(r,f){
			var v = null;
			Ext.each(f.dependencies, function(i){
				v = (v == null ? Ext.num(r.get(i),0) : v + Ext.num(r.get(i),0));
			},this)
			return v / f.dependencies.length;
		},
		min: function(r,f){
			var v = null;
			Ext.each(f.dependencies, function(i){
				v = (v == null ? Ext.num(r.get(i),0) : (Ext.num(r.get(i),0) &lt; v ? Ext.num(r.get(i),0) : v));
			},this)
			return v;
		},
		max: function(r,f){
			var v = null;
			Ext.each(f.dependencies, function(i){
				v = (v == null ? Ext.num(r.get(i),0) : (Ext.num(r.get(i),0) &gt; v ? Ext.num(r.get(i),0) : v));
			},this)
			return v;
		}
	}
})
</pre>
<h3>Exemplo:</h3>
<pre class="brush: jscript;">
Ext.onReady(function(){
	var dsProdutos = new Ext.data.JsonStore({
		fields:[
			{name:'prod_id'},
			{name:'prod_descricao'},
			{name:'prod_valor_unitario'},
			{name:'teste'}
		],
		data: [
			{prod_id:1, prod_descricao:'Chopp', prod_valor_unitario:3.5, teste:'asdasd'},
			{prod_id:2, prod_descricao:'Refri', prod_valor_unitario:2},
			{prod_id:3, prod_descricao:'Mini Pizza', prod_valor_unitario:4.5},
			{prod_id:4, prod_descricao:'Fritas', prod_valor_unitario:4},
		]
	})
	var win = new Ext.Window({
		height: 240,
		width: 620,
		layout: 'fit',
		title: 'Override Record - Lookup entre Stores e Campos Calculados',
		items:[{
			xtype: 'editorgrid',
			store: new Ext.data.JsonStore({
				fields:[
					{
						name: 'prod_id'
					},{
						name: 'prod_descricao',
						dependencies:['prod_id'],
						lookupStore: dsProdutos,
						lookupField: 'prod_id;prod_id',
						displayField: 'prod_descricao',
						displayTemplate: '&lt;b&gt;{lookupField} -&lt;/b&gt; {displayField}'
					},{
						name: 'qtde_enviada'
					},{
						name: 'qtde_retornada'
					},{
						name: 'prod_valor_unitario',
						dependencies:['prod_id'],
						lookupStore: dsProdutos,
						lookupField: 'prod_id'
					},{
						name: 'total_enviado',
						dependencies: ['qtde_enviada','prod_valor_unitario'],
						calc: 'mult'
					},{
						name: 'total_geral',
						dependencies: ['qtde_enviada','qtde_retornada','prod_valor_unitario'],
						calc: function(r){
							return (r.get('qtde_enviada') - r.get('qtde_retornada')) * r.get('prod_valor_unitario');
						}
					}
				],
				data: [
					{prod_id: 1, qtde_enviada:10, qtde_retornada:1},
					{prod_id: 2, qtde_enviada:50, qtde_retornada:10},
					{prod_id: 3, qtde_enviada:30, qtde_retornada:3},
					{prod_id: 4, qtde_enviada:20, qtde_retornada:0}
				]
			}),
			columns:[
				{
					header: 'Produto',
					width: 120,
					sortable: true,
					dataIndex: 'prod_descricao'
				},{
					header: 'Qtde. Enviada',
					width: 100,
					sortable: true,
					dataIndex: 'qtde_enviada',
					editor: new Ext.form.NumberField()
				},{
					header: 'Valor Unitário',
					width: 90,
					sortable: true,
					dataIndex: 'prod_valor_unitario'
				},{
					header: 'Total Enviado',
					width: 90,
					sortable: true,
					dataIndex: 'total_enviado'
				},{
					header: 'Qtde. Retornada',
					width: 100,
					sortable: true,
					dataIndex: 'qtde_retornada',
					editor: new Ext.form.NumberField()
				},{
					header: 'Total Geral',
					width: 80,
					sortable: true,
					dataIndex: 'total_geral'
				}
			]
		}]
	})
	win.show();
})
</pre>
<h3><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/recordOverrideLookupCalcFields/index.html" target="_blank">Exemplo Online</a></h3>
<ul class="related_post"><li>07/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/override-store-funcao-de-validacao-de-dados-nos-campos/" title="Override Store: Função de validação de dados nos campos">Override Store: Função de validação de dados nos campos</a> (0)</li><li>27/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/" title="Ext.ux.StoreGroup &#8211; Carregando Dependências">Ext.ux.StoreGroup &#8211; Carregando Dependências</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>25/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/" title="Form Override: Criando colunas facilmente [ExtJS 3.0.X]">Form Override: Criando colunas facilmente [ExtJS 3.0.X]</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Campos%20Calculados%3A%20Criando%20campos%20de%20dados%20em%20tempo%20de%20execu%C3%A7%C3%A3o%20%5BExtJS%203.0.X%5D%22%20http%3A%2F%2Ftinyurl.com%2Fyd7qkm9" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2009/12/campos-calculados-criando-campos-de-dados-em-tempo-de-execucao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ext.ux.StoreGroup &#8211; Carregando Dependências</title>
		<link>http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/</link>
		<comments>http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 23:05:22 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Overrides]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Componente]]></category>
		<category><![CDATA[Override]]></category>
		<category><![CDATA[Store]]></category>

		<guid isPermaLink="false">http://blog.rkn.com.br/?p=58</guid>
		<description><![CDATA[Durante o desenvolvimento dos meus sistemas me deparei com um grande problema ao apresentar ao usuário final telas em forma de formulários que continham um ou mais Stores relacionados, em forma de ComboBox, Grid, etc. Prefiro carregar todos os dados a serem apresentados na tela em sua criação, não gosto muito do estilo &#8220;clicar no [...]]]></description>
			<content:encoded><![CDATA[<p>Durante o desenvolvimento dos meus sistemas me deparei com um grande problema ao apresentar ao usuário final telas em forma de formulários que continham um ou mais <strong>Stores </strong>relacionados, em forma de <strong>ComboBox</strong>, <strong>Grid</strong>, etc. Prefiro carregar todos os dados a serem apresentados na tela em sua criação, não gosto muito do estilo &#8220;clicar no <strong>ComboBox </strong>e esperar carregar&#8221;, por motivos que incluem a apresentação dos dados, exemplo:</p>
<p><span style="color: #4c4c4c;">O usuário abre um <strong>Grid </strong>de funcionários, clica no botão de editar o qual abre uma tela contendo um formulário onde os dados do <strong>Grid </strong>serão carregados para os campos. Se os <strong>ComboBox </strong>não estiverem carregados no momento do <strong>loadRecord </strong>aparecera apenas os códigos nestes campos, por isso precisamos garantir que todos os <strong>Stores</strong> dos <strong>ComboBox</strong> estejam carregados antes de popularmos o formulário. Ao ter 10 <strong>ComboBox </strong>como controlar quando todos terminaram suas requisições para que possamos enfim efetuar um <strong>loadRecord</strong>? Com o <span style="text-decoration: underline;"><strong>Ext.ux.StoreGroup</strong></span>.</span></p>
<h2><span style="color: #333333;">Que diabos é o <span style="text-decoration: underline;">Ext.ux.StoreGroup</span>?</span></h2>
<p><span style="color: #333333;"><span style="text-decoration: underline;"><strong>Ext.ux.StoreGroup</strong></span> é um componente não visual herdado do </span><strong>Ext.util.MixedCollection</strong> que serve como uma lista de <strong>Stores</strong>, adicionamos nossos <strong>Stores</strong> secundários a ele, chamamos o método <strong>loadAll </strong>que irá disparar o método <strong>load</strong> de todos os <strong>Stores</strong> adicionados a ele e por fim irá disparar o evento <strong>afterLoad</strong> quando todos os <strong>Stores </strong>terminarem de carregar seus dados onde podemos chamar o método <strong>LoadRecord</strong> para carregar os dados ao nosso formulário.</p>
<p><span style="text-decoration: underline;"><strong>Ext.ux.StoreGroup:</strong></span></p>
<pre class="brush: jscript;">
Ext.namespace('Ext.ux');

Ext.ux.StoreGroup = function(){
	this.addEvents('afterLoad');
	Ext.ux.StoreGroup.superclass.constructor.call(this);
};

Ext.ux.StoreGroup = Ext.extend(Ext.util.MixedCollection, {
	inLoading: 0,
	maskEl: null,
	maskText: 'Carregando...',
	maskCls: 'x-mask-loading',
	loadAllFired: false,
	register: function(){
		for(var i = 0, s; s = arguments[i]; i++){
			s.on('beforeload', this.onBeforeLoad, this);
			s.on('load', this.onLoad, this, false);
			s.on('loadexception', this.onLoad, this, true);
			this.add(s);
		}
	},
	unregister: function(){
		for(var i = 0, s; s = arguments[i]; i++){
			s.un('beforeload', this.onBeforeLoad, this);
			s.un('load', this.onLoad, this, false);
			s.un('loadexception', this.onLoad, this, true);
			this.remove(this.lookup(s));
		}
	},
	lookup: function(id){
		return typeof id == &quot;object&quot; ? id : this.get(id);
	},
	getKey: function(o){
		return o.storeId || o.id;
	},
	onBeforeLoad: function(){
		this.inLoading += 1;
	},
	onLoad: function(){
		this.inLoading -= 1;
		if((this.inLoading == 0)&amp;&amp;(this.loadAllFired)){
			this.fireEvent('afterLoad');
			if(this.mask){
				this.mask.hide();
			}
			this.loadAllFired = false;
		}
	},
	loadAll: function(obj){
		Ext.apply(this,obj);
		if(this.maskEl){
			if(!this.mask){
				this.mask = new Ext.LoadMask(this.maskEl);
			}
			Ext.apply(this.mask, {msg:this.maskText, msgCls:this.maskCls})
			this.mask.show()
		}
		this.loadAllFired = true;
		this.inLoading = 0;
		if(this.getCount() == 0){
			this.fireEvent('afterLoad');
			this.loadAllFired = false;
		}
		this.each(function(i){
			i.load();
		},this)
	}
});
</pre>
<p><span style="text-decoration: underline;"><strong>Pequeno Override no Store pra facilitar a vida:</strong></span></p>
<pre class="brush: jscript;">
Ext.override(Ext.data.Store, {
	constructor: Ext.data.Store.prototype.constructor.createSequence(function(c){
		if(this.storeGroup){
			this.storeGroup.register(this);
		}
	})
})
</pre>
<p><span style="text-decoration: underline;"><strong>Exemplo de formulário usando os caras acima:</strong></span></p>
<p>Destacado abaixo as duas formas de se adicionar um <strong>Store</strong> ao <strong>StoreGroup</strong>, lembrando que a primeira maneira requer o override acime, a segunda maneira é nativa ao componente.</p>
<pre class="brush: jscript; highlight: [11,44];">
Ext.onReady(function(){
	Ext.form.Field.prototype.msgTarget = 'side';
	Ext.form.FormPanel.prototype.bodyStyle = 'padding:5px';
	Ext.form.FormPanel.prototype.labelAlign = 'right';
	Ext.QuickTips.init();

	var sg = new Ext.ux.StoreGroup();

	var dsProfissao = new Ext.data.JsonStore({
		url:'dados.php',
		storeGroup: sg, //Usando override no Store.
		baseParams:{
			action:'profissao'
		},
		fields:[
			{name:'id', type:'int'},
			{name:'profissao'}
		]
	})

	var dsCidade = new Ext.data.JsonStore({
		url:'dados.php',
		baseParams:{
			action:'cidade'
		},
		fields:[
			{name:'id', type:'int'},
			{name:'cidade'}
		]
	})

	var dsSexo = new Ext.data.JsonStore({
		url:'dados.php',
		baseParams:{
			action:'sexo'
		},
		fields:[
			{name:'id', type:'int'},
			{name:'sexo'}
		]
	})

	//Método tradicional
	sg.register(dsCidade,dsSexo);

	var win = new Ext.Window({
		height: 210,
		width: 620,
		layout: 'fit',
		title: 'Ext.ux.StoreGroup',
		items:[{
			xtype: 'form',
			labelWidth: 70,
			defaults:{
				width:500
			},
			items: [{
				xtype: 'textfield',
				fieldLabel: 'Nome',
				name: 'nome',
				allowBlank: false
			},{
				xtype: 'textfield',
				fieldLabel: 'Sobrenome',
				name: 'sobrenome',
				allowBlank: false
			},{
				xtype: 'combo',
				fieldLabel: 'Profissão',
				store: dsProfissao,
				valueField: 'id',
				displayField: 'profissao',
				name: 'profissao',
				mode: 'local',
				triggerAction: 'all'
			},{
				xtype: 'combo',
				fieldLabel: 'Cidade',
				store: dsCidade,
				valueField: 'id',
				displayField: 'cidade',
				name: 'cidade',
				mode: 'local',
				triggerAction: 'all'
			},{
				xtype: 'combo',
				fieldLabel: 'Sexo',
				store: dsSexo,
				valueField: 'id',
				displayField: 'sexo',
				name: 'sexo',
				mode: 'local',
				triggerAction: 'all'
			}]
		}],
		buttons:[{
			text:'Salvar'
		},{
			text:'Cancelar'
		}]
	})
	win.on('show', function(c){
		sg.loadAll({maskEl:c.body, maskText:'Carregando Dependências...'});
	})
	sg.on('afterLoad', function(){
		win.items.items[0].getForm().loadRecord({
			data:{
				profissao:1,
				cidade:2,
				sexo:1,
				nome:'Rodrigo',
				sobrenome:'Nascimento'
			}
		});
	})
	win.show();
})
</pre>
<h2><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/Ext.ux.StoreGroup/">Exemplo</a></h2>
<ul class="related_post"><li>07/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/override-store-funcao-de-validacao-de-dados-nos-campos/" title="Override Store: Função de validação de dados nos campos">Override Store: Função de validação de dados nos campos</a> (0)</li><li>06/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/campos-calculados-criando-campos-de-dados-em-tempo-de-execucao/" title="Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]">Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]</a> (0)</li><li>14/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/ext-ux-form-rcheckbox-valor-de-envio-configuravel/" title="Ext.ux.form.RCheckbox &#8211; Valor de envio configurável">Ext.ux.form.RCheckbox &#8211; Valor de envio configurável</a> (0)</li><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>25/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/" title="Form Override: Criando colunas facilmente [ExtJS 3.0.X]">Form Override: Criando colunas facilmente [ExtJS 3.0.X]</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Ext.ux.StoreGroup%20-%20Carregando%20Depend%C3%AAncias%22%20http%3A%2F%2Ftinyurl.com%2Fy8graux" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Form Override: Criando colunas facilmente [ExtJS 3.0.X]</title>
		<link>http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/</link>
		<comments>http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 17:53:30 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Overrides]]></category>
		<category><![CDATA[Colunas]]></category>
		<category><![CDATA[FormPanel]]></category>
		<category><![CDATA[Override]]></category>

		<guid isPermaLink="false">http://rkn.com.br/blog/?p=25</guid>
		<description><![CDATA[Sabemos como é trabalhoso criar formulários com colunas no ExtJS. O ExtJS exige que criemos layouts de formulário dentro de layouts de colunas o que torna o código complexo, grande e visivelmente bagunçado. Podemos resolver este problema com um simples override do componente Ext.form.FormPanel.
Mãos a obra.]]></description>
			<content:encoded><![CDATA[<p>Sabemos como é trabalhoso criar formulários com colunas no ExtJS. O ExtJS exige que criemos layouts de formulário dentro de layouts de colunas o que torna o código complexo, grande e visivelmente bagunçado. Podemos resolver este problema com um simples override do componente Ext.form.FormPanel. Mãos a obra.</p>
<h2><strong>Override:<br />
</strong></h2>
<p>Bom a ideia aqui não é explicar detalhadamente o override abaixo, apenas irei explicar o funcionamento e quais os novos parâmetros que podemos usar.</p>
<pre class="brush: jscript;">
Ext.override(Ext.form.FormPanel, {
	vIconSpace: 20,
	colSpace: 5,
	labelWidth: 100,
	ajustFields:function(ff){
		Ext.each(ff.items, function(f, i){
			if((f)&amp;&amp;(f.items)){
				this.ajustFields(f); //MODIFICADO
			}

			var c1 = ff.items[i]; //Campo atual
			var c2 = ff.items[i-1]; //Campo anterior

			if(c1.col&amp;&amp;c2){
				function confField(c){
					c.labelWidth = Ext.num(c.labelWidth, this.labelWidth); //Largura do Label
					c.vIconSpace = Ext.num(c.vIconSpace, this.vIconSpace); //Espaço após o campo
					c.colSpace   = Ext.num(c.colSpace,   this.colSpace); //Espaço antes do campo
					c.width      = Ext.num(c.width,      100); //Largura padrão MODIFICADO
					c.msgTarget  = c.msgTarget || this.msgTarget || Ext.form.Field.prototype.msgTarget;
					c.labelAlign = c.labelAlign || this.labelAlign;
				}

				function calcWidth(w){
					var x = w.width;
					x += (w.msgTarget == 'side' ? w.vIconSpace : 0);
					x += 5;
					x += (w.labelAlign == 'top' ? 0 : w.labelWidth);
					return x;
				}

				function createItem(field){
					return {
						width: calcWidth.createDelegate(this)(field),
						border: false,
						layout: 'form',
						labelWidth: field.labelWidth,
						items: field
					}
				}

				function addColum(c, field){
					c.items.push(createItem(field))
				}

				if(c2.layout!=='hbox'){
					confField.createDelegate(this)(c2);
					c2 = {
						xtype:'container',//MODIFICADO
						layout:'hbox',
						border:false,
						items:[createItem(c2)]
					}
				}
				confField.createDelegate(this)(c1);
				c2.items[c2.items.length-1].width += c1.colSpace;
				addColum(c2,c1);
				c1 = c2;
				c2 = 0;

				ff.items[i] = c1;
				ff.items[i-1] = c2;
			}
			delete c1;
			delete c2;
		},this)
		if(Ext.isArray(ff.items)){
			for(i in ff.items){
				ff.items.remove(0);
			}
		}
	},
	createForm:Ext.form.FormPanel.prototype.createForm.createInterceptor(function() {
		this.ajustFields(this);
	})
})
</pre>
<p>Como vocês podem ver no código acima, foi adicionada a chamada para o método <strong>ajustaFields</strong> antes da execução do método <strong>createForm</strong> através de um <strong>createInterceptor</strong>.</p>
<p>O método <strong>ajustaFields</strong> é responsável por efetuar um loop recursivo na lista de items, ou seja, os campos passados ao <strong>FormPanel</strong>, e ajustá-los caso contenham a propriedade <strong>col:true</strong>.</p>
<p>Foram adicionados 3 propriedades ao <strong>FormPanel</strong> que servem como padrão para os seus items. Essas propriedades podem ser passadas em cada campo que faça parte da linha de colunas sobrescrevendo o padrão. São elas:</p>
<ul>
<li><strong>vIconSpace</strong>: Espaço reservado a direita do campo para o ícone de validação, este espaço só ocorre se tivermos o <strong>msgTarget</strong> do campo como <strong>&#8216;side&#8217;</strong>. Padrão: 20;</li>
<li><strong>colSpace</strong>: Espaço a esquerda do campo, este espaço só ocorre no campo que contém <strong>col:true</strong> e serve para dar um pequeno espaço entre o label do campo e o campo anterior. Padrão: 5;</li>
<li><strong>labelWidth</strong>: Largura do label do campo. Padrão: 100.</li>
</ul>
<h2>Exemplo:</h2>
<pre class="brush: jscript;">
Ext.onReady(function(){
	Ext.form.Field.prototype.msgTarget = 'side';
	Ext.form.FormPanel.prototype.bodyStyle = 'padding:5px';
	Ext.form.FormPanel.prototype.labelAlign = 'right';
	Ext.QuickTips.init();

	var win = new Ext.Window({
		height: 210,
		width: 600,
		layout: 'fit',
		title: 'Override FormPanel, Colunas',
		items:[{
			xtype: 'form',
			labelWidth: 60,
			items: [{
				xtype: 'textfield',
				fieldLabel: 'Nome',
				allowBlank: false,
				width: 195
			},{
				xtype: 'textfield',
				fieldLabel: 'Sobrenome',
				allowBlank: false,
				labelWidth: 70,
				width: 195,
				col:true
			},{
				xtype: 'textfield',
				fieldLabel: 'Endereço',
				width: 490
			},{
				xtype: 'datefield',
				fieldLabel: 'Dt. Nasc.',
				width:100,
			},{
				xtype: 'datefield',
				fieldLabel: 'Dt. Cad.',
				allowBlank: false,
				labelWidth: 50,
				width:100,
				col:true
			},{
				xtype: 'combo',
				fieldLabel: 'Profissão',
				labelWidth: 50,
				width: 130,
				col:true
			},{
				xtype: 'textarea',
				fieldLabel: 'Obs.',
				width: 490,
				height: 50,
			}]
		}],
		buttons:[{
			text:'Salvar'
		},{
			text:'Cancelar'
		}]
	})
	win.show();
})
</pre>
<p>Note que para que o campo <strong>Sobrenome</strong> vire uma coluna ao lado do campo <strong>Nome</strong> basta colocar <strong>col:true</strong> no campo <strong>Sobrenome</strong>. Sendo assim, o campo que possuir <strong>col:true</strong> passa a ser coluna do campo anterior a ele.</p>
<p>Note também que nos campos que viram coluna é passada a largura do campo (<strong>width</strong>) e largura do label (<strong>labelWidth</strong>) para que estes se ajustem melhor ao layout.</p>
<h2><a href="http://www.rkn.com.br/extjs/ext-3.0.0/examples/formColumnsOverride/index.html">Exemplo</a></h2>
<ul class="related_post"><li>08/01/2010 -- <a href="http://blog.rkn.com.br/2010/01/override-gridpanelcolumnmodel-colunas-checkbox/" title="Override GridPanel/ColumnModel: Colunas Checkbox">Override GridPanel/ColumnModel: Colunas Checkbox</a> (0)</li><li>17/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/criando-um-crud-usando-um-grid-e-um-form-em-3-partes/" title="Criando um CRUD usando um GRID e um FORM em 3 Partes">Criando um CRUD usando um GRID e um FORM em 3 Partes</a> (0)</li><li>07/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/override-store-funcao-de-validacao-de-dados-nos-campos/" title="Override Store: Função de validação de dados nos campos">Override Store: Função de validação de dados nos campos</a> (0)</li><li>06/12/2009 -- <a href="http://blog.rkn.com.br/2009/12/campos-calculados-criando-campos-de-dados-em-tempo-de-execucao/" title="Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]">Campos Calculados: Criando campos de dados em tempo de execução [ExtJS 3.0.X]</a> (0)</li><li>27/11/2009 -- <a href="http://blog.rkn.com.br/2009/11/ext-ux-storegroup-carregando-dependencias/" title="Ext.ux.StoreGroup &#8211; Carregando Dependências">Ext.ux.StoreGroup &#8211; Carregando Dependências</a> (0)</li><li>21/12/2010 -- <a href="http://blog.rkn.com.br/2010/12/novidades-mudancas-e-um-novo-ano/" title="Novidades, mudanças e um novo ano">Novidades, mudanças e um novo ano</a> (0)</li><li>23/03/2010 -- <a href="http://blog.rkn.com.br/2010/03/screencast-instalando-o-extjs/" title="ScreenCast &#8211; Instalando o ExtJS">ScreenCast &#8211; Instalando o ExtJS</a> (0)</li><li>16/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/comparacao-de-frameworks-javascript/" title="Comparação de frameworks JavaScript">Comparação de frameworks JavaScript</a> (0)</li><li>12/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/gadget-do-forum-brasileiro-de-extjs-para-win-vista7/" title="Gadget do fórum Brasileiro de ExtJS para Win Vista/7">Gadget do fórum Brasileiro de ExtJS para Win Vista/7</a> (0)</li><li>10/02/2010 -- <a href="http://blog.rkn.com.br/2010/02/temas-bem-coloridos-pra-extjs/" title="Temas bem coloridos pra ExtJS">Temas bem coloridos pra ExtJS</a> (0)</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Form%20Override%3A%20Criando%20colunas%20facilmente%20%5BExtJS%203.0.X%5D%22%20http%3A%2F%2Ftinyurl.com%2Fycvjtvy" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2009/11/form-override-criando-colunas-facilmente-extjs-3-0-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Olá, mundo!</title>
		<link>http://blog.rkn.com.br/2009/09/ola-mundo/</link>
		<comments>http://blog.rkn.com.br/2009/09/ola-mundo/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 15:11:15 +0000</pubDate>
		<dc:creator>Rodrigo K Nascimento</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://rkn.com.br/blog/?p=1</guid>
		<description><![CDATA[Bem vindo ao blog RKN, quentinho ainda, recém retirado do forno!!!]]></description>
			<content:encoded><![CDATA[<p>Bem vindo ao blog RKN, quentinho ainda, recém retirado do forno!!!</p>
<p>Acompanhe aqui novidades, tutoriais, dicas sobre programação, principalmente sobre <a href="http://www.extjs.com" target="_blank">ExtJS</a> e javascript, cursos e afins.</p>
<p>Abraços a todos.</p>
<ul class="related_post"><li>Sem Posts Relacionados</li></ul><span class="post-twitter" ><a href="http://twitter.com/home?status=Lendo%20%20%22Ol%C3%A1%2C%20mundo%21%22%20http%3A%2F%2Ftinyurl.com%2Fycohftq" title="Twittar Isto!" >Twittar Isto!</a></span>]]></content:encoded>
			<wfw:commentRss>http://blog.rkn.com.br/2009/09/ola-mundo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

