<?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>ensandecer de um computólogo &#187; javascript</title>
	<atom:link href="http://danielmartins.eti.br/blog/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://danielmartins.eti.br/blog</link>
	<description>return 1;</description>
	<lastBuildDate>Thu, 15 Dec 2011 05:05:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Lançamento do grupo Web2.0 Manaus com Harald Kirschner</title>
		<link>http://danielmartins.eti.br/blog/2008/09/15/lancamento-do-grupo-web20-manaus-com-harald-kirschner/</link>
		<comments>http://danielmartins.eti.br/blog/2008/09/15/lancamento-do-grupo-web20-manaus-com-harald-kirschner/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 15:21:38 +0000</pubDate>
		<dc:creator>Daniel Elias</dc:creator>
				<category><![CDATA[amazonas]]></category>
		<category><![CDATA[Computação]]></category>
		<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Comunidades]]></category>
		<category><![CDATA[Dicas & How To]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[manaus]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[javascript mootools web2.0 manaus amazonas]]></category>

		<guid isPermaLink="false">http://danielmartins.eti.br/blog/?p=208</guid>
		<description><![CDATA[Na sexta (12/09/08) foi o lançamento do grupo Web2.0 Manaus com o apoio do INdT e contou com um desenvolvedor do core do mootools falando sobre web2.0 e mostrando casos de uso do mootools.
O Evento ocorreu no auditório da UniLasalle de manaus e contou com auditório cheio, eu inclusive que cheguei  [...]]]></description>
			<content:encoded><![CDATA[<p>Na sexta (12/09/08) foi o lançamento do grupo <a title="Web2.0 Manaus" href="http://groups.google.com.br/group/web20_manaus" target="_blank">Web2.0 Manaus</a> com o apoio do <a title="INdT" href="http://www.indt.org.br/institutional/index.php" target="_blank">INdT</a> e contou com um desenvolvedor do core do <a href="http://mootools.net/" target="_blank">mootools</a> falando sobre web2.0 e mostrando casos de uso do mootools.</p>
<p>O Evento ocorreu no auditório da <a href="http://www.lasalle.edu.br/unilasalle-am/" target="_blank">UniLasalle de manaus</a> e contou com auditório cheio, eu inclusive que cheguei 15 minutos atrasado tive que sentar no chão <img src='http://danielmartins.eti.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Bom, o evento foi composto por 2 palestras:</p>
<ul>
<li><span>Palestra 1:</span>
<ul>
<li><span> WEB 2.0  Oportunidades, e novas tendências.</span><span> <strong>Álvaro Mota Gonçalves</strong>, INdT</span><span> </span></li>
<li><span>Open-WEB</span><span>.  Harald Kirschner, WEB 2.0 developer and co-developer Mootools project</span></li>
</ul>
</li>
</ul>
<ul>
<li><span> </span><span>Palestra 2</span><span> </span>
<ul>
<li><span>WEB 2.0 v Overview de Tecnologias WEB   2.0. </span><span><a title="Harald Kirschner Journal and Project Repository" href="http://digitarald.de/" target="_blank"><strong>Harald  Kirschner</strong></a>, front-end web  developer specialist, core developer of  MooTools project </span></li>
</ul>
</li>
</ul>
<p>O Álvaro Mota Gonçalves começou falando da estratégia da Nokia que mudou, e agora tem um foco mais aberto para o provimento de serviços web e levar a mesma experiência encontrada no uso de serviços web no pc com browser só que através do celular de forma móvel(<strong>mobile</strong>), o que é uma tendência hoje em dia de <strong>fato</strong>. Uma tecnologia que corresponde a este incentivo da Nokia para com a melhor experiencia de serviços web no celular é o <a title="WebRunTime" href="http://www.forum.nokia.com/main/resources/technologies/browsing/widgets.html" target="_blank"><strong>WebRunTime</strong>(<strong>WRT</strong>)</a>. No quesito <strong>provimento de serviços</strong> a gente pode ver a investida da Nokia com o lançamento do <a title="Ovi Services por Nokia" href="http://www.ovi.com/services/" target="_self">Ovi.</a></p>
<p>Foi dito também que o mercado de trabalho estão a procura por profissionais de desenvolvimento web2.0, não lembro qual foi o site que o Álvaro mostrou onde ele fez uma pesquisa e retornou mais de 2000 empregos em aberto para se trabalhar com web2.0, ou seja, <strong>oportunidade</strong>.</p>
<p>A palestra mais esperada(pelo menos por mim), era a do Harald a qual pode ser encontrada <a href="http://digitarald.de/box/harald-web-20.zip" target="_blank">aqui</a> , achei que  ele iria se aprofundar mais na explicação de web2.0 falando sobre microformats, WRT e outros conceitos e tecnologias que ainda não parei para estudar, mais o foco da palestra dele era falar de web2.0 para pessoas que não sabiam ou sabiam pouco o que é web2.0.</p>
<p>O Harald falou um pouco desse &#8220;compra-compra&#8221; que vemos hoje em dia de grandes empresas comprando as menores que oferecem algum serviço interessante, e ele até comentou &#8220;<strong>Quer ficar milhionário ? É só fazer um serviço inovador e publicar na web..</strong>&#8221; e logo depois complementou &#8220;<strong>só não é tão fácil fazer um..</strong>&#8221; <img src='http://danielmartins.eti.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Um fato que me chamou atenção foi a compra do <a title="GrandCentral" href="http://www.grandcentral.com/home" target="_blank"><strong>GrandCentral</strong></a> pelo google, o qual eu nem fazia idéia que existia, trata-se de um serviço de gerenciamento de ligações, tem muitas funcionalidades interessantes, vale a pena dá uma olhada, é uma pena que o serviço ainda não está disponí­vel para o Brasil, mas vocé pode solicitar uma notificação quando o serviço estiver disponí­vel.</p>
<p>Além disso ele mostrou uma tabela de serviços comparativos, de 1.0 para 2.0</p>
<p>Como por exemplo:</p>
<table style="height: 116px;" border="0" width="313">
<tbody>
<tr>
<td style="text-align: center;"><strong>1.0</strong></td>
<td style="text-align: center;"><strong>2.0</strong></td>
</tr>
<tr>
<td style="text-align: center;">DoubleClick</td>
<td>
<p style="text-align: center;">Google AdSense</p>
</td>
</tr>
<tr>
<td style="text-align: center;">Ofoto</td>
<td>
<p style="text-align: center;">Flickr</p>
</td>
</tr>
<tr>
<td style="text-align: center;">Mp3.com</td>
<td>
<p style="text-align: center;">last.fm</p>
</td>
</tr>
<tr>
<td style="text-align: center;">Britannica On line</td>
<td>
<p style="text-align: center;">Wikipedia</p>
</td>
</tr>
<tr>
<td style="text-align: center;">Personal Websites</td>
<td>
<p style="text-align: center;">Blogging</p>
</td>
</tr>
</tbody>
</table>
<p>E outros como pode ser visto na <a href="http://digitarald.de/box/harald-web-20.zip" target="_blank">apresentação dele</a>.</p>
<p>Falou que os princípios da Web2.0 são:</p>
<p><strong> Open Source &#8211; Liberação das informações</strong><br />
<strong> Communication &#8211; Usuários</strong><br />
<strong> Design &#8211; Nova arquitetura de interfaces com o usuário</strong></p>
<p>Pra mim ficou meio misturado a afirmação de que o relacionamento do OpenSource com a web2.0 seja a liberação de informações no sentido de <strong>Content Syndication</strong>, <strong>Web Feed</strong>(RDF, Atom e etc), <strong>WebServices</strong> e <strong>APIs</strong> na minha opnião isso tem haver com OpenData e não com OpenSource, de fato há muita semelhança no modelo colaborativo de projetos OpenSource de código aberto para com serviços OpenData de compartilhamento de informações e não dúvido que a web2.0 com a semântica de <strong>OpenData</strong> tenha se baseado no modelo colaborativo do OpenSource. Eu acredito que um termo melhor seria <strong>OpenData</strong>.</p>
<p>Mostrou 1 exemplo de como ganhar dinheiro com a web2.0, usando o <a title="Amazon Web Services" href="http://www.amazon.com/AWS-home-page-Money/b?ie=UTF8&amp;node=3435361" target="_blank"><strong>Amazon Web Service</strong></a>, o qual a cada livro vendido que você indicou em seu site/blog você ganha dinheiro.(O qual estarei botando em breve no meu blog <img src='http://danielmartins.eti.br/blog/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> ).</p>
<p>Dando continuidade no quesito <strong>oportunidades,</strong> segundo Harald o que você precisa saber para arrumar um bom emprego no mercado de web2.0:</p>
<ul>
<li><strong>Content Syndication</strong></li>
<li><strong>Web feeds</strong></li>
<li><strong>RDF</strong></li>
<li><strong>Atom</strong></li>
<li><strong>Web services and APIs</strong></li>
<li><strong>Communication with XML or JSON</strong></li>
<li><strong>REST</strong></li>
<li><strong>SOAP(WSDL)</strong></li>
</ul>
<p>Algumas passagens me chamaram atenção como a do <strong>Tim O&#8217;Reilly</strong> sobre web2.0, resumindo significa que a inteligência coletiva é a base da web2.0, concordo em gênero e grau, você não ?</p>
<p>Houve também slides sobre <a title="Folksonomia" href="http://pt.wikipedia.org/wiki/Folksonomia" target="_blank">Folksonomia</a>[1], Comunicação, melhoramento de Design de interfaces com os novos conceitos RIA(Rich Internet Application) e RUE(Rich User Experience). Essa questão de trazer a experiência de uso de softwares desktop para web entre outras coisas.</p>
<p>Não deixou de falar dos padrões e a acessibilidade o que geralmente é ignorada em detrimento a funcionalidades &#8220;<strong>eye-candy</strong>&#8221; o que julgo muito importante e que nunca deve ser esquecida, ou seja, sua palestra também incluiu Web standards, W3C, leitores de tela, SEO e o funcionamento de softwares web, como estrutura(xhtml), apresentação(css) e etc.</p>
<p>Casos de uso do uso de JavaScript .</p>
<ul>
<li><strong>Melhorias na interação com os forms;</strong></li>
<li><strong>Melhorias na colaboração entre os usuários;</strong></li>
<li><strong>Filtros e manipulação de dados</strong></li>
<li><strong>Autocomplete </strong>(Como o google suggests)</li>
</ul>
<p>Entrando mais na parte técnica, falou sobre o desenvolvimento, que com essa onda de informações e novos conceitos, por onde se basear , citou padrões utilizados e criados pelo yahoo, o <a href="http://developer.yahoo.com/ypatterns/" target="_blank">YPatterns</a> e das alternativas como o <a href="http://ajaxpatterns.org/" target="_blank">Ajax Pattern</a>.</p>
<p>Não deixou de falar também para as pessoas com perfil empreendedor, falou sobre modelo de negócios:</p>
<ul>
<li><strong>Vender <a href="http://pt.wikipedia.org/wiki/API" target="_blank">API</a></strong></li>
<li><strong>Vender serviços</strong></li>
<li><strong>Vender informações</strong></li>
</ul>
<p>Estratégias de expansão para quem já possui serviços:</p>
<ul>
<li><strong>Criar API</strong></li>
<li><strong>Distribuir como OpenSource (Citou também meios de o fazer, através do <a href="http://code.google.com/" target="_blank">google code</a>)</strong></li>
</ul>
<p>Vendeu um pouco de jabá falando sobre o  MooTools e falou um pouco sobre o porque de frameworks.</p>
<p>Nessa hora tomei a liberdade de lhe fazer uma pergunta tendo em vista que o que ele mostrou de exemplo nada foram diferente dos exemplos encontrados utilizando <a href="http://www.jquery.com" target="_blank">JQuery</a> , <a href="http://developer.yahoo.com/yui" target="_blank">YUI</a> e <a href="http://extjs.com/" target="_blank">Ext-js</a> os quais são os que eu uso nos meus projetos.</p>
<p><strong>P:</strong> Perguntei quais eram as principais diferenças entre MooTools e Jquery/YUI  ?<br />
<strong>R: </strong>Ele disse que Mootools é melhor para projetos grandes. Disse também JQuery tem mais classes prontas e que o YUI tem uma estrutura menor do que a MooTools. Na opnião dele YUI é para projetos que precisem de namespaces.</p>
<p>O Evento foi de importância para região, quase não se ver eventos desse tipo por aqui em Manaus. Com certeza desenvolvedores web(como eu) sentem falta.</p>
<p>À coordenação, meus parabéns.</p>
<p>[1] Recomendo a leitura deste post sobre Folksonomia pelo <a href="http://revolucao.etc.br/archives/folksonomia-e-a-maneira-com-que-nos-colocamos-ordem-nas-coisas/" target="_blank">Revolução Etc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danielmartins.eti.br/blog/2008/09/15/lancamento-do-grupo-web20-manaus-com-harald-kirschner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YUI + widget DataTable + Ordenação Customizada</title>
		<link>http://danielmartins.eti.br/blog/2007/07/03/yui-widget-datatable-ordenacao-customizada/</link>
		<comments>http://danielmartins.eti.br/blog/2007/07/03/yui-widget-datatable-ordenacao-customizada/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 21:27:57 +0000</pubDate>
		<dc:creator>Daniel Elias</dc:creator>
				<category><![CDATA[Computação]]></category>
		<category><![CDATA[Dicas & How To]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://daniel.jb0.org/2007/07/03/yui-widget-datatable-ordenacao-customizada/</guid>
		<description><![CDATA[Eu tenho utilizado exaustivamente a biblioteca de componentes YUI (Yahoo User Interface) para re-redesenhar a interface dos sistemas web que desenvolvo no meu atual local de trabalho.
Acredito que há muitas opniões sobre esta nova abordagem de web2.0, desenvolvedores nacionais renomados ja se  [...]]]></description>
			<content:encoded><![CDATA[<p>Eu tenho utilizado exaustivamente a biblioteca de componentes <a HREF="http://developer.yahoo.com/yui" TARGET="_blank" TITLE="YUI !">YUI (Yahoo User Interface) </a>para re-redesenhar a interface dos sistemas web que desenvolvo no meu atual local de trabalho.</p>
<p>Acredito que há muitas opniões sobre esta nova abordagem de web2.0, desenvolvedores nacionais renomados ja se expressaram sobre esta questão, a web2.0 é boa para diversas situações, mas não tudo. Um exemplo é o Yahoo Mail Beta, é legal e bonito mas é lento demais, sem falar que no firefox qualquer ação o processamento vai para 100% e isso é caos!. É tudo uma questão de bom senso, usar web2.0 para dá um turbinada na aplicação com validações e chamadas assíncronas, melhorar a usabilidade ou ainda aplicar um comportamento para um determinado componente na tela é uma boa opção. Mas usar web2.0 para emular sistemas que rodam no desktop é complicado, por que são muitos eventos, muitos widgets, muitas regras de css(posicionamento, imagens e etc) e acaba que a aplicação fica extremamente lenta e de difícil manutenção, com certeza não é o que queremos.</p>
<p><span id="more-154"></span></p>
<p>Para quem não conhece, a YUI é uma biblioteca de componentes reutilizaveis feitos em javascript, dhtml e css para facilitar a construção de <a HREF="http://en.wikipedia.org/wiki/Rich_Internet_application" TARGET="_blank">RIA (Rich Internet Applications) </a> , a YUI é produzida primariamente pelos yahoo hackers e também pela comunidade.  É utilizada extensivamente no portal do Yahoo.com[.br] para os softwares web do Yahoo!, com isso podemos entender que é um projeto amplamente suportado. A YUI! é software livre, cuja a licença é uma variação da licença BSD e pode ser encontrada <a TARGET="_blank" HREF="http://developer.yahoo.com/yui/license.txt">aqui.</a></p>
<p>Como eu ainda não postei nada sobre a YUI, neste artigo estarei descrevendo sua utilização básica com um exemplo utilizando o <a TARGET="_blank" HREF="http://www.google.com.br/search?hl=pt-BR&amp;q=define%3Awidget&amp;btnG=Pesquisa+Google&amp;meta=">widget</a> DataTable, para o exemplo ficar ainda mais interessante irei também descrever como customizar a ordenação crescente e decrescente. As informações de exemplo que vamos utilizar são informações referentes a veículos, vamos customizar a ordenação por Placa, a YUI já possui funções de ordenação padrões e que trabalham com alguns tipos definidos.</p>
<p>No inicío de cada bloco de código estarei usando a sigla [COD_[1-9]{2}] para identificar o bloco de código quando o estiver referenciando em outros trechos do artigo, para facilitar a localização.</p>
<p>Pré-requisitos:</p>
<ol>
<li> Conhecimentos básicos em JavaScript.</li>
<li> Você precisa <a HREF="http://developer.yahoo.com/yui/download/" TARGET="_blank">baixar a YUI</a> e carregar os componentes na sua página html ou carregá-las apartir do próprio site do yahoo, para saber mais sobre este serviço entre no <a HREF="http://developer.yahoo.com/yui/articles/hosting/" TARGET="_blank">site.</a>. No desenrolar deste artigo usarei o serviço de hosting da YUI provido pelo Yahoo.</li>
</ol>
<p>Primeiramente é preciso incluir os scripts e os estilos no header do html:</p>
<ul>
<li>Estilos: <strong> [COD_01]</strong><br />
<coolcode lang="html"></p>
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.2.2/build/reset/reset-min.css">
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.2.2/build/fonts/fonts-min.css">
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.2.2/build/datatable/assets/datatable.css">
</coolcode>
</li>
<li>Mais estilo(Sobrecarrega algumas regras css, para fins de personalização): <strong>[COD_02]</strong><br />
<coolcode lang="html"></p>
<style type="text/css">
#exemplo {margin:1em;}
#exemplo table {border-collapse:collapse;}
#exemplo th, #exemplo td {border:1px solid #000;padding:.25em;}
#exemplo th {background-color:#696969;color:#fff;} 
#exemplo .yui-dt-odd {background-color:#eee;}
#exemplo em {font-style:italic;}
#exemplo strong {font-weight:bold;}
#exemplo .big {font-size:136%;}
#exemplo .small {font-size:77%}
</style>
<p></coolcode>
</li>
<li>YUI Scripts: <strong>[COD_03]</strong><br />
<coolcode lang="html"><br />
<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/yahoo/yahoo-min.js"></script><br />
<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/dom/dom-min.js"></script><br />
<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/event/event-min.js"></script><br />
<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/dragdrop/dragdrop-min.js"></script><br />
<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/datasource/datasource-beta-min.js"></script><br />
<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/datatable/datatable-beta-min.js"></script><br />
</coolcode>
</li>
<li>JavaScript para criação do DataTable:<strong>[COD_04]</strong><br />
<coolcode lang="javascript"><br />
	function init()<br />
	{<br />
		/**<br />
		 * Configura namespace para não haver conflitos referentes a nomes<br />
		 * e para facilitar a organização de objetos e etc.<br />
		 */</p>
<p>		 YAHOO.namespace(&#8220;exemplo&#8221;);</p>
<p>		 /**<br />
		  * Dados que serão usados no DataTable<br />
		  */<br />
		  YAHOO.exemplo.dados = {<br />
		  	veiculos: [<br />
		  		{placa:"JTX-0506", vistoria:new Date(2004, 2, 21), km:110000},<br />
		  		{placa:"JYZ-0469", vistoria:new Date(2001, 8, 10), km:65000},<br />
		  		{placa:"JTA-4591", vistoria:new Date(2000, 9, 5), km:45036},<br />
		  		{placa:"XYZ-4587", vistoria:new Date(2000, 5, 8), km:456978}<br />
		  	]<br />
		  };</p>
<p>		/**<br />
 		* Informações do cabeçalho para o widget.ColumnSet possa retornar<br />
 		* um objeto adapter(adaptador) para a renderização do DataTable.<br />
 		*/<br />
    	var Cabecalhos = [<br />
	    	{key:"placa", title:"Placa", sortable:true},<br />
    		{key:"vistoria", type:"date", sortable:true, resizeable:true},<br />
    		{key:"km", type:"number", sortable:true, resizeable:true}<br />
		];</p>
<p>		/**<br />
	 	* Objeto &#8220;configurador&#8221; do cabecalho<br />
	 	*/<br />
		var ConfiguraColunas = new YAHOO.widget.ColumnSet(Cabecalhos);</p>
<p>		/**<br />
	 	* Objeto DataSource é responsável por pegar, tratar e adaptar<br />
	 	* as informações para que o objeto DataTable possa renderizá-las<br />
	 	*/<br />
		var CapturaInformacoes = new YAHOO.util.DataSource(YAHOO.exemplo.dados.veiculos);<br />
			CapturaInformacoes.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;<br />
			CapturaInformacoes.responseSchema = {<br />
				fields: ["placa","vistoria","km"]<br />
		};</p>
<p>		/**<br />
	 	* Enfim cria o table<br />
                * O primeiro parametros é onde(div) será renderizado o seu DataTable<br />
	 	*/<br />
		var DataTable = new YAHOO.widget.DataTable(&#8220;exemplo&#8221;,<br />
		ConfiguraColunas, CapturaInformacoes, {caption:&#8221;Exemplo básico de DataTable&#8221;});<br />
	}</p>
<p>	/**<br />
	 * Quando a arvore DOM estiver carregada executa a função!<br />
	 * o YAHOO.util.Event é um utilitário do YUI para trabalhar com eventos<br />
	 */<br />
	YAHOO.util.Event.onDOMReady(init);<br />
</coolcode>
</li>
<li>Você pode fechar o header do html e então no corpo(body) colocar aonde o DataTable será renderizado, no caso: (Sem isso o DataTable não irá ser renderizado)<br />
<coolcode lang="html"></p>
<div id="exemplo"></div>
<p></coolcode>
</li>
</ul>
<p>Resultado:</p>
<p><iframe align="center" src="http://danielmartins.eti.br/blog/exemplos/datatable.html"></iframe></p>
<p>Como podemos constatar no resultado acima as duas ordenações que realmente funcionam são as colunas por data e por quilometragem, pois o YUI reconhece os tipos informados nas linhas 28 e 29 do JavaScript , os tipos reconhecidos pela YUI são <strong>&#8220;string&#8221;, &#8220;number&#8221;, &#8220;date&#8221;, &#8220;currency&#8221;, &#8220;email&#8221; e &#8220;link&#8221;</strong>. Você pode clickar no cabeçalho da coluna <strong>&#8220;Placa&#8221;</strong> e você verá que a lógica de ordenação aplicada é a do tipo string, ou seja, pelas letras iniciais, mas precisamos que essa coluna seja ordenada pelo numero final da placa, pois sabemos que o pagamento do ipva de um veículo vence no mês do último número da placa, por exemplo final de placa 1 vence em Janeiro, 2 em Fevereiro e assim sucessivamente e as placas com final 0 vence em outubro.</p>
<p>Precisamos customizar a ordenação, vamos criar primeiramente as funções para ordenação crescente e decrescente, a YUI possui duas funções utilitárias para ajudar-nos nesta tarefa, são a <strong>YAHOO.util.Sort.compareAsc</strong> e a <strong>YAHOO.util.Sort.compareDesc<br />
</strong>, a primeira para comparação crescente e a segunda para comparação decrescente, vejamos sua utilização já aplicando ao problema que nós temos de ordenar os dados pelo final da placa, a seguir: <strong>[COD_05]</strong></p>
<p><coolcode lang="javascript"><br />
/**<br />
 * Ordenação Crescente<br />
 *<br />
 */<br />
var ordByPlacaAsc = function(a,b){<br />
        // Pega o final da primeira placa<br />
	var finalPlaca1 = a.placa.charAt(a.placa.length &#8211; 1);<br />
         // Pega o final da segunda placa<br />
	var finalPlaca2 = b.placa.charAt(b.placa.length &#8211; 1);</p>
<p>	var compFnc = YAHOO.util.Sort.compareAsc<br />
	// transforma em inteiro multiplicando por 1 e joga para<br />
	// a função utilitária de comparação<br />
	var resultado = compFnc(finalPlaca1*1,finalPlaca2*1);<br />
	return resultado;<br />
}</p>
<p>/**<br />
 * Ordenação Decrescente<br />
 *<br />
 */<br />
var ordByPlacaDesc = function(a,b){<br />
       // Pega o final da primeira placa<br />
       var finalPlaca1 = a.placa.charAt(a.placa.length &#8211; 1);<br />
	// Pega o final da segunda placa<br />
	var finalPlaca2 = b.placa.charAt(b.placa.length &#8211; 1);</p>
<p>	var compFnc = YAHOO.util.Sort.compareDesc</p>
<p>	// transforma em inteiro multiplicando por 1 e joga para<br />
	// a função utilitária de comparação<br />
	var resultado = compFnc(finalPlaca1*1,finalPlaca2*1);<br />
	return resultado;<br />
}<br />
</coolcode></p>
<p>Como podemos ver, basicamente temos o mesmo procedimento só que com funções utilitárias diferentes, você pode fazer a comparação nas linhas <strong>11 e 28</strong>, as funções utilitárias fazem a comparação e para a <strong>YAHOO.util.sort.compareAsc</strong> retornam <strong>-1</strong> se o primeiro argumento for < (menor que) o segundo argumento, 0 se o primeiro argumento é igual( == ) ao segundo argumento e 1 se o primeiro argumento é >(maior que) o segundo argumento e o inverso para a <strong>YAHOO.util.sort.compareDesc</strong>, ou seja, <strong>-1</strong> se o primeiro argumento for > (maior que) o segundo argumento, 0 se o primeiro argumento é igual( == ) ao segundo argumento e 1 se o primeiro argumento é < (menor que) o segundo argumento e assim a YUI vai ordenando os dados no <strong>DataTable</strong>, mas você está sentindo falta de algo ?! sim!, aonde parametrizamos para que o YUI utilize estas funções customizadas de ordenação ?!</p>
<p><strong>R:</strong> No bloco de código <strong>[COD_04]</strong> na linha <strong>27</strong> é possível passar um argumento chamado <strong>sortOptions</strong> contendo as informações referentes a customização da ordenação, veja um exemplo de como fica a <strong>linha 27</strong> inserindo as funções de ordenação:</p>
<p><coolcode lang="javascript"><br />
{key:&#8221;placa&#8221;, title:&#8221;Placa&#8221;, sortable:true, sortOptions:{ascFunction:ordByPlacaAsc,descFunction:ordByPlacaDesc}},<br />
</coolcode></p>
<p>Como resultado podemos ver a ordenação sendo feita pelo último número da Placa do veículo:</p>
<p>Resultado:</p>
<p><iframe align="center" src="http://danielmartins.eti.br/blog/exemplos/datatable1.html"></iframe></p>
<p>Já me estendi demais, espero que eu tenha conseguido exemplificar o uso básico do widget DataTable da YUI e de como customizar a ordenação, qualquer sugestão, correção ou crítica construtiva é bem vinda. Ajude-me a melhorar a qualidade dos artigos que escrevo.</p>
<p>Links essenciais que me serviram de consulta e para quem deseja exemplos mais ricos:<br />
<a href="http://developer.yahoo.com/yui">http://developer.yahoo.com/yui</a><br />
<a href="http://developer.yahoo.com/yui/examples/datatable/">http://developer.yahoo.com/yui/examples/datatable/</a><br />
<a href="http://developer.yahoo.com/yui/datatable/">http://developer.yahoo.com/yui/datatable/</a><br />
<a href="http://developer.yahoo.com/yui/docs/module_datatable.html">http://developer.yahoo.com/yui/docs/module_datatable.html</a><br />
<a href="http://www.quirksmode.org/js/strings.html">http://www.quirksmode.org/js/strings.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danielmartins.eti.br/blog/2007/07/03/yui-widget-datatable-ordenacao-customizada/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

