logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Jul 13

Gravação e slides da minha palestra no Flexmania 2010

Escrito por João Augusto em .NET, 1, 4, 6, Access, api, app, AR, AUG, blog, class, Download, event, Evento, flash, Flex, Flexmania, FullScreen, Gravação, ide, IE, if, Mac, mg, O, on, Palestra, PHP, player, pt, rails, redeRIA, RIA, Ria’s Geral, screen, Sem categoria, Sun, swf, TAT, Tutorial, wave, XP @ 07 13th, 2010 | via http://blog.joaoaugusto.com.br | Sem comentários
João Augusto
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Para quem perdeu minha palestra no Flexmania 2010, falando de Grails + Flex, pode assistir sua gravação em http://experts.na3.acrobat.com/p67616118/. Além disso, se encontra abaixo os slides que utilizei no evento.

Flex + Grails @ Flexmania2010

View more presentations from zaratine.

Ainda estou devendo um tutorial sobre o assunto e prometo que, assim que possível, farei um post sobre isso.

Jul 12

FlexMania 2010 – Sucesso absoluto

Escrito por Stefan Horochovec em .NET, 1, 1009, 2009, 4, 6, Access, Adobe, Adobe Flex, Air, app, Apresentação, AR, audio, BI, Blazeds, blog, camp, class, Cloud Computing, consultoria, Curso, Cursos, dados, demo, desempenho, Desenvolvedor, desenvolvedores, Download, engine, err, event, Evento, Eventos, Excel, Ferramenta, flash, Flex, Flexmania, for, FullScreen, Google, gratuito, Gravação, ide, IE, int, Java, Mac, O, on, on-line, opensource, OReilly, Outros, Palestra, Palestras, Pessoal, PHP, player, Plugin, processo, produtividade, produto, Projetos, pt, RIA, Ria’s Geral, screen, SDK, serviço, site, Software, Sun, swf, tag, TAT, Tecnologia, Twitter, UI, Ved, wave, XP @ 07 12th, 2010 | via http://www.horochovec.com.br/blog | Sem comentários
Stefan Horochovec
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá pessoal, como vão todos?

Pois bem, fiquei um tempo fora do blog devido a uma série de compromissos na empresa aonde trabalho e de compromissos de ordem pessoal também, um deles foi o FlexMania 2010.

Durante os dias 8, 9 e 10 de julho tivemos o prazer de acompanhar o FlexMania 2010, organizado pelo Igor Costa, de forma gratuita através da excelente ferramenta da Adobe, o Adobe Connect.

O FlexMania é um evento gratuito, idealizado e organizado por Igor Costa – Adobe Community Professional. Tive o enorme prazer em palestrar no FlexMania 2009 (clique aqui para assistir a gravação da minha palestra sobre “Flex, Java e BlazeDS – Integração com alta produtividade e desempenho“) e confesso que fiquei muito feliz e muito empolgado com o convite para o evento em 2010.

Foram dois meses de muita ansiedade. Para quem não sabe como funciona o processo do convite ao evento, os palestrantes recebem os convites, entretanto não sabem quais serão seus companheiros de “palco”, dessa forma, cria-se um grande mistério entre todos. Após um certo tempo, somos apresentados uns aos outros e logo em seguida o site do evento é publicado.

Esse ano recebi (e todos os outros palestrantes) da PowerFlasher uma licença do seu editor, o FDT. E não só nós, diversas licenças foram sorteadas durante o evento além de todos os outros produtos, em uma soma de mais de R$ 30.000,00 em prêmios. É muita coisa quando falamos de um evento on-line que você não paga absolutamente nada para participar.

A grande sensação do evento foi as reações do twitter a cada palestra, principalmente pela galera do #soudev. Imagino que muitos novos colegas da madrugada irão surgir com posts #soudev depois do FlexMania.

Esse ano eu abordei um assunto que a cada dia ganha mais espaço no mundo da TI e agora os grandes data centers do país começaram a disponibilizar esse serviço, o Cloud Computing.

Minha abordagem teve inicio sobre os tipos de cloud-computing, vantagens e suas desvantagens (nem tudo é um mar de rosas). Em seguida, entrei no assunto do Google App Engine, o serviço do Google gratuito (até um certo ponto) para cloud computing, contanto com recursos de Java e armazenamento de dados.

Mostrei suas vantagens, formas de utilização, plugins e ferramentas disponíveis e finalmente entrei no assunto Adobe Flex, demonstrando o que deve ser alterado nas configurações padrões do Adobe Flex com Java para que possamos utilizar o BlazeDS dentro da estrutura do Google.

Conforme prometido ao final da palestra, estou disponibilizando para download os projetos (Java e Flex) e os slides utilizados na apresentação.

Slides:

FlexMania 2010

View more presentations from Stefan Horochovec.

Projeto Java: clique aqui para download

Projeto AIR: clique aqui para download

Agradecimentos:

  • Igor Costa – Adobe Community Professional pelo convite e por todo suporte antes e durante o evento;
  • IDS – Software e Consultoria LTDA por permitir minha participação;
  • Patrocinadores:
  • Adobe System
  • RIACycle (pela camiseta e pelo boné)
  • PowerFlasher (em especial pela licença do FDT cedida cordialmente a todos os palestrantes do evento)
  • Mundo Livre Tecnologia
  • Oreilly
  • ElementRiver

Espero ter contruído e despertado o interesse dos desenvolvedores a conhecer um pouco mais sobre a estrutura do Google App Engine integrando Flex e Java nessa estrutura incrível que o Google dispõe para nós.

Um forte abraço ao Igor Costa, a todos os palestrantes e patrocinadores e a todos que participaram do evento.

Agora é esperar pelo FlexMania 2011. Mas antes ainda temos pela frente a BRConferente, organizada pelo Pedro Claudio – Adobe Community Professional, e também o Flash Camp Brasil, organizado pelo Demian Borba – Adobe Community Professional.

Como é bom ver a quantia de eventos que estão surgindo no Brasil.

Jun 19

Curso Básico de Programação, aula 3 #soudev

Escrito por Ved em 1, AR, BI, Curso, Desenvolvimento, Flex, Gravação, ide, IE, Mercado, O, on, programação, Ria’s Geral, TAT, Treinamento, Ved @ 06 19th, 2010 | via http://www.vedovelli.com.br | Sem comentários
Ved
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Bem, continuando com o curso que estou ministrando presencialmente para amigos leigos em programação, seguem os slides e a gravação da aula. Aula3 View more presentations from Fabio Vedovelli. Curso Básico de Programação – Aula 3 from Fabio Vedovelli on Vimeo.

Jun 7

Curso Básico de Programação, aula 2 #soudev

Escrito por Ved em 1, AR, BI, Curso, Desenvolvimento, Flex, Gravação, ide, IE, Mercado, O, on, programação, Ria’s Geral, TAT, Treinamento, Ved @ 06 7th, 2010 | via http://www.vedovelli.com.br | Sem comentários
Ved
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Bem, continuando com o curso que estou ministrando presencialmente para amigos leigos em programação, seguem os slides e a gravação da aula e uma fotinho do grupo.
Aula2
View more presentations from Fabio Vedovelli.

Curso Básico de Programação – Aula 2 from Fabio Vedovelli on Vimeo.

Mar 18

MIX10 – Resumo

Escrito por Kelps Sousa em .NET, 1, 4, 6, Air, api, Apresentação, AR, Arquitetura, back, BI, Blend, blog, class, conferência, demo, Desenvolvimento, Dica, Dicas, event, Evento, Eventos, Excel, fonte, for, galeria, game, gc, Google, Gravação, html, ide, IE, if, int, internet, live, map, mapa, mg, Microsoft, MIX, News, O, on, Outros, Palestra, podcast, progress, rest, RIA, Ria’s Geral, silverlight, Silverlight 4, Tutoriais, Twitter, UI, uint, UX, Vídeo, Vídeos, window, windows, XAML @ 03 18th, 2010 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Essa semana aqui em Las Vegas foi uma loucura. Depois da aventura que foi chegar aqui, teve a correria do dia a dia da conferência. Só agora (que estou no aeroporto esperando meu vôo para voltar para casa) que consegui tempo para organizar minhas ideias e atualizar o blog.

Segunda Feira

Para começar, não consegui uma conexão de internet durante o keynote do primeiro dia e ainda peguei um lugar desfavorável para tirar fotos. O keynote foi excelente e teve como foco o Windows Phone 7. Muita coisa interessante foi demonstrada e o aparelho parece ser fantástico. Queria muito poder ter um  agora mesmo. Com certeza eu comprarei um assim que for lançado.

Após o keynote fui passear no The Commons. Essa era uma área onde tudo acontecia e todos se encontravam quando não estavam em alguma session. Lá encontrei Tim Heuer e John Papa, e aproveitei para gravar um pequeno podcast em vídeo com cada um para o XAMLCast. Esses vídeos, assim como outros que gravei serão publicados no XAMLCast em breve. Foi ótimo conversar com eles. Eu estava preocupado em como me sairia com o inglês pois essa foi minha primeira viagem para fora do Brasil e fiquei muito contente mesmo por ter meu inglês elogiado pelo Tim e John. It was AWESOME!

Depois fui assistir uma session de Windows Phone 7 com Chalie Kindel. Achei que foi muita maldade dos palestrantes ficarem demonstrando o aparelho em todas as session sabendo que não poderíamos ter um (brincadeira, é lógico que achei ótimo ver o aparelho. estou apenas com inveja). Passei o resto do dia no Commons tentando conversar com outras pessoas para gravar para o XAMLCast mas não consegui pois todos estavam correndo.

P1110627 P1110650

A noite fui fazer compras no outlet e depois passear pela Strip (Las Vegas Boulevard) com outros brasileiros que estavam no evento. Assistimos ao show das fontes do Bellagio do topo da torre Eiffel, no cassino Paris. Aproveitei para tirar algumas fotos da cidade enquanto estava lá.

Terça Feira

P1110708 P1110544 P1110753 P1110815

Na terça feira eu peguei um lugar ótimo no keynote e consegui uma conexão estável de internet. Tirei muitas fotos e twitei o tempo todo durante o keynote. Fiquei muito impressionado com o progresso do IE9 e absolutamente maravilhado com a apresentação de Bill Buxton. O cara é genial.

Após o keynote, assisti a mais uma session e depois fui para o Commons novamente. Consegui gravar apenas com o Pete Brown neste dia e ainda desligaram a luz enquanto estavamos gravando. Espero que a gravação tenha ficado boa. Fui convidado para participar da trívia no Channel 9 Live com Scott Hanselman mas eu seria chamado apenas se alguém amarelasse e isso não ocorreu. Mas eu respondi a pergunta de qual era o code nome do Windows 95 (se vocês assistirem, o Scott até fala que eu ganhei um ponto por isso :D ). Quase morri de rir assistindo à trívia.

A noite eu tentei ir a uma festa dos Blend Insiders mas não consegui achar o endereço. Depois dei uma passada na GameStop da galeria próxima ao Venetian. Na volta fui para meu quarto para tirar um cochilo antes de ir para a festa no LAX e só acordei do cochilo na manhã seguinte. Estava exausto.

Quarta Feira

P1110876 P1110886

Na quarta feira eu assistir a uma session excelente sobre a arquitetura da plataforma do Windows Phone 7 e fui convidado para participar de um grupo de foco sobre Windows Phone 7 e dar feedback sobre o achava sobre como está sendo feito o lançamento e quais eram as preocupações que tinhamos. Infelizmente não posso divulgar o que foi conversado no grupo de foco por causa de NDA (Non Disclosure Agreement). O importante é saber que eles estão ouvindo e vão levar em considração várias das preocupações que as pessoas estão tendo.

A noite fui fazer minhas últimas compras e depois fui com uns amigos da Microsoft Brasil assistir ao Cirque du Soleil –“O” no Bellagio. Que espetáculo maravilhoso! Pressinto mais uma coleção de DVD em minhas prateleiras em breve, mas essa eu farei com calma.

Durante esta viagem eu devo ter andado uns 40 Km no total. O mapa de Las Vegas engana e os lugares são muito mais longe do que parece. Minhas pernas não gostam mais de mim… O clima em Las Vegas é muito seco e estou com a boca toda rachada e nariz ressecado. Conheci muita gente, treinei meu inglês falado, me diverti bastante e aprendi muito. Não ganhei nada no cassino :( . Estou morrendo de saudades da minha esposa e agora volto para casa.

Em breve vou começar a postar aqui algumas dicas e tutoriais sobre desenvolvimento em Silverlight 4, Windows Phone 7 e afins. Os vídeos que gravei para o XAMLCast serão publicados em breve. Fiquem ligados e até mais.

Mar 9

Iniciando com o Mate Framework

Escrito por Ved em 1, Actionscript3, Download, Flex, Flex Builder, Flex For Kids, Flex For Kids 2010, for, framework, Gravação, IE, Mate, Mate Flex Framework, mvc, O, Orientação a Objetos, Palestra, Ria’s Geral, screen, Screencast, tv, Ved @ 03 9th, 2010 | via http://www.vedovelli.com.br | Sem comentários
Ved
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Este é o screencast que enviei como extra à gravação da minha palestra no Flex For Kids 2010.

Download: http://blip.tv/file/get/Vedovelli-IniciaoAoMateFramework393.flv

http://blip.tv/file/get/Vedovelli-IniciaoAoMateFramework393.flv

Fev 26

Como deixar suas apps até 80% mais rápidas

Escrito por Daniel Lopes em .NET, 1, 2009, 4, 6, Apresentação, AR, class, código, código fonte, Curso, Design, Dica, Dicas, egenial, exemplo, Exemplos, fonte, for, frontend, FullScreen, gc, git, Gravação, ide, IE, int, loop, map, mg, O, on, oop, Otimização, problema, problemas, pt, rails, railsforkids, railsmg, RIA, Ria’s Geral, ruby, Ruby e Rails, screen, Screencast, server, swf, UI, Vídeo, web @ 02 26th, 2010 | via http://blog.areacriacoes.com.br/ | Sem comentários
Daniel Lopes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

No mês passado eu fiz uma apresentação no nosso grupo local de Ruby, o RailsMG, falando sobre otimização de frontend. As dicas da apresentação servem para qualquer linguagem, mas eu mostro como solucionar cada problema usando o Rails.

Como tive alguns problemas na gravação e para editar o que foi filmado no dia acabou não ficando muito legal eu resolvi regrar em formato de screencast. O vídeo tem por volta de 50 minutos e mostra os conceitas da otimização e como aplicar na prática em um projeto Rails.

Quem estiver interessado em entrar no mundo do Rails não deixe de participar do curso da eGenial que inicia agora dia 01/03. Para mais detalhes acesse: http://www.egenial.com.br/cursorails

No mês passado eu fiz uma apresentação no nosso grupo local de Ruby, o RailsMG, falando sobre otimização de frontend. As dicas da apresentação servem para qualquer linguagem, mas eu mostro como solucionar cada problema usando o Rails.

Como tive alguns problemas na gravação e para editar o que foi filmado no dia acabou não ficando muito legal eu resolvi regrar em formato de screencast. O vídeo tem por volta de 50 minutos e mostra os conceitas da otimização e como aplicar na prática em um projeto Rails.

A apresentação é bem parecida com a que apresentei no RailsForKids de 2009 mas com atualizações e novos slides (que você pode baixar separadamente aqui).

O código fonte dos exemplos está disponível no meu GitHub em github.com/danielvlopes/optimizing_rails_frontends e conta com uma versão usando o asset_packager e outra usando o jammit.

Jan 27

FlexORM – Framework ORM para persistência em AIR 1.5

Escrito por Stefan Horochovec em abas, action, Actionscript, Actionscript3, Adobe, Air, app, AR, Artigo, as3, auto, Banco de Dados, bar, BI, Bindable, blog, botão, busca, class, classe, codec, código, Componente, Componentes, CRUD, dados, DataGrid, DataProvider, demo, Desenvolvedor, Dica, Download, event, Evento, Eventos, filter, Flex, FlexBuilder, FlexDuck, fonte, for, Formulário, framework, function, Google, Gravação, handle, Hibernate, html, ide, IE, if, image, int, Java, Javascript, JPA, label, layout, lista, lite, live, map, mg, MXML, Number, O, on, Pessoal, programação, Projetos, pt, RIA, Ria’s Geral, servidor, SQLite, string, tag, TextInput, UI, uint, Ved, window, XML, XP, zend @ 01 27th, 2010 | via http://www.horochovec.com.br/blog | 1 comentário
Stefan Horochovec
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá pessoal,

Neste artigo, irei comentar um pouco sobre o FlexORM. Este framework tem como objetivo o mapeamento objeto-relacional em projetos que utilizem AIR e base de dados embarcada (SQLite).

O FlexORM é uma criação de Mark Moloney, e é hospedado pela RIAForge.

O FlexORM tem suporte a versão 1.5 do AIR e abaixo, podemos listar algumas de suas vantagens para seu uso:

* Não há necessidade de criação e atualização de tabelas. O FlexORM se encarrega da criação da estrutura do banco, através de um mapeamento feito dentro do próprio objeto a ser persistido;

* Possui suporte as operações CRUD;

* Suporta associações 1:N, N:M, N:1 e 1:1;

* Suporte a atributos transientes;

* Suporte a constraints para consistência de chaves-estrangeiras, através de triggers do SQLite;

* Transações;

* Criação automática de índices;

* Lazy Loading;

* Dentre outras;

Para exemplificar o uso do FlexORM, irei criar um projeto chamado DuckToDo e o objetivo do projeto é que eu possa cadastrar algumas tarefas que eu precise realizar. A aplicação é bem simples no quesito visual, uma vez que o intuito do artigo é o conhecimento do FlexORM.

Para iniciar, iremos criar um projeto no FlexBuilder chamado DuckToDo, conforme a tela abaixo:

Em seguida, vá as propriedades do projeto, e na opção Flex Compiler, adicione a seguinte linha de comando ” -keep-as3-metadata+=Table,Id,Column,ManyToOne,OneToMany,ManyToMany,Transient”, para que o compilador interprete as Metadatas adicionadas ao mapeamento dos Beans, conforme tela abaixo:

Feito isso, você deve fazer o download do FlexORM e adicionar ao seu projeto. Você pode optar por fazer o download do source através de um servidor de versionamento (subversion), ou fazer o download através deste link do arquivo .SWC do projeto FlexORM.

Depois de obter o .SWC, ou por download, ou recompilando o projeto, você deve adicioná-lo a pasta lib/ de seu projeto.

Feito isso, criaremos nossa classe de objeto que será persistida pela nossa aplicação.

Crie uma nova classe actionscript na package “org.flexduck.model” chamada Todo, e adicione o código abaixo:

?View Code ACTIONSCRIPT3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package org.flexduck.model
{

	[Bindable]
	[Table(name="TODO")]
	public class Todo
	{
		[Id]
		public var codigo 	: int;

		[Column(name="titulo")]
		public var titulo 	: String;

		[Column(name="descricao")]
		public var descricao : String;

	}

}

Neste momento, quem trabalha com Java e utiliza Hibernate ou JPA já percebe uma grande semelhança. Através da Metadata [Table] no escopo da classe, definimos a qual tabela este objeto deve ser persistido.

No atributo codigo, foi adicionado a Metadata [Id] indicando que esse atributo corresponde a chave primária, ou o identificador, do objeto.

E nos atributos, titulo e descrição, adicionado a Metadata [Column] indicando que refere-se a uma coluna. Junto a Metadata também foi adicionado o nome respectivo da coluna na tabela.

Com isso, nosso bean está pronto para ser persistido. Vamos para a sua gravação.

Dentro do arquivo DuckToDo.mxml foi criada a seguinte estrutura de componentes.

?View Code ACTIONSCRIPT3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<mx:Binding destination="todo.titulo" 		source="titulo.text"/>
<mx:Binding destination="todo.descricao" 	source="descricao.text"/>

<mx:Panel width="500" height="250" layout="absolute" title="O que tenho para fazer?" horizontalCenter="0" verticalCenter="0">

<mx:ViewStack id="vw" top="0" right="0" left="0" bottom="0">
	<mx:Canvas label="Grid" width="100%" height="100%">

		<mx:Label x="10" y="10" text="Título" fontWeight="bold"/>
		<mx:TextInput x="10" y="29" width="460" id="titulo" text="{this.todo.titulo}"/>

		<mx:Label x="10" y="58" text="Descrição" fontWeight="bold"/>
		<mx:TextArea x="10" y="75" width="460" height="85" id="descricao" text="{this.todo.descricao}"/>

		<mx:Button x="318" y="172" label="Adicionar" id="btnAdd" click="btnAddHandler(event);"/>
		<mx:Button x="252" y="172" label="Listar" id="btnListar" click="btnListarHandler(event);"/>
		<mx:Button x="189" y="172" label="Novo" id="btnNovo" click="btnNovoHandler(event);"/>
		<mx:Button x="406" y="172" label="Excluir" id="btnDel" click="btnDelHandler(event);"/>

	</mx:Canvas>

	<mx:Canvas label="Formulario" width="100%" height="100%">
		<mx:DataGrid 	top="5" right="5" left="5" bottom="30"
						id="dg"
						doubleClickEnabled="true"
						doubleClick="doubleClickHandler(event);">
			<mx:columns>
				<mx:DataGridColumn dataField="titulo"/>
			</mx:columns>
		</mx:DataGrid>
		<mx:Button label="Pesquisar" id="btnPesquisar" click="btnPesquisarHandler(event);" bottom="5" right="5"/>
		<mx:Button label="Cadastrar" id="btnCadastrar" click="btnCadastrarHandler(event);" bottom="5" right="90"/>
	</mx:Canvas>

</mx:ViewStack>

</mx:Panel>

Essa estrutura corresponde a um Panel, contendo um ViewStack com dois Canvas dentro. Para o primeiro Canvas foi adicionado um Grid para conter a lista de tarefas e no segundo Canvas, um pequeno formulário para a manutenção dos registros.

Nesse artigo não irei comentar sobre a estrutura do formulário, considerando apenas como relevante as instruções de uso do FlexORM.

Foi adicionado um evento no creationComplete da minha aplicação, para instanciar o banco de dados, conforme declaração abaixo:

?View Code ACTIONSCRIPT3
1
2
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
						creationComplete="initApp(event);">

E dentro do bloco de programação em ActionScript foi adicionado:

?View Code ACTIONSCRIPT3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<mx:Script>
<![CDATA[

import org.flexduck.model.Todo;
import nz.co.codec.flexorm.EntityManager;

/**
 * Objeto de persistencia
 */
private var genericDAO 	: EntityManager	= EntityManager.instance;

/**
 * Classe para listar
 */
private var todoClass	: Class			= Todo;

/**
 * Bean
 */
[Bindable]
private var todo		: Todo			= new Todo();

/**
 * Evento disparado no creationComplete da aplicação para fazer a conexão com o banco de dados
 */
private function initApp(event:Event) : void
{
	var appDataBase : File = File.documentsDirectory.resolvePath("ducktodo.db");
	var sqlConn		: SQLConnection	= new SQLConnection();
	sqlConn.open(appDataBase);
	this.genericDAO.sqlConnection	= sqlConn;
}

/**
 * Função disparada no click do botão de "Adicionar"
 */
private function btnAddHandler(event:MouseEvent) : void
{
	this.genericDAO.save(this.todo);
	this.dg.dataProvider	= this.genericDAO.findAll(this.todoClass);
}

/**
 * Função disparada no click do botão de "Excluir"
 */
private function btnDelHandler(event:MouseEvent) : void
{
	this.genericDAO.remove(this.todo);
	this.dg.dataProvider	= this.genericDAO.findAll(this.todoClass);
}

/**
 * Função disparada no duplo click no grid de pesquisa
 */
private function doubleClickHandler(event:MouseEvent) : void
{
	this.todo	= this.dg.selectedItem as Todo;
	this.vw.selectedIndex	= 0;
}

/**
 * Função disparada no click do botão de "Pesquisar"
 */
private function btnPesquisarHandler(event:MouseEvent) : void
{
	this.dg.dataProvider	= this.genericDAO.findAll(this.todoClass);
}

/**
 * Função disparada no click do botão de "Cadastrar"
 */
private function btnCadastrarHandler(event:MouseEvent) : void
{
	this.vw.selectedIndex 	= 0;
}

/**
 * Função disparada no click do botão de "Listar"
 */
private function btnListarHandler(event:MouseEvent) : void
{
	this.vw.selectedIndex	= 1;
}

/**
 * Função disparada no click do botão de "Novo"
 */
private function btnNovoHandler(event:MouseEvent) : void
{
	this.todo	= new Todo();
}
]]>
</mx:Script>

Alguns comentários relevantes:

Na função initApp, foi criado uma conexão SQLConnection, e a mesma foi passada para um objeto chamado genericDAO. Este objeto é uma instancia da classe EntityManager do FlexORM, responsável por executar os métodos para manipulação do banco de dados.

Na função btnAddHandler foi feita a persistencia do objeto Todo. Perceba que essa função é responsável por gravar e atualizar o objeto, não sendo necessário que o desenvolvedor se preocupe com a operação específica, apenas que em determinado momento, o objeto deve ser persistido, gravando-o ou fazendo sua atualização.

Na função btnDelHandler foi solicitado que determinado objeto fosse apagado do banco de dados.

Na função btnPesquisarHandler foi solicitado uma busca em todos os registros de determinada Classe, e não um objeto, fique atento a essa situação.

Os demais eventos servem para a navegação da tela, portanto, não serão comentados.

Se você fez corretamente a inclusão de todos os fontes, terá o resultado:

?View Code ACTIONSCRIPT3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
						creationComplete="initApp(event);">

<mx:Script>
<![CDATA[

import org.flexduck.model.Todo;
import nz.co.codec.flexorm.EntityManager;

/**
 * Objeto de persistencia
 */
private var genericDAO 	: EntityManager	= EntityManager.instance;

/**
 * Classe para listar
 */
private var todoClass	: Class			= Todo;

/**
 * Bean
 */
[Bindable]
private var todo		: Todo			= new Todo();

/**
 * Evento disparado no creationComplete da aplicação para fazer a conexão com o banco de dados
 */
private function initApp(event:Event) : void
{
	var appDataBase : File = File.documentsDirectory.resolvePath("ducktodo.db");
	var sqlConn		: SQLConnection	= new SQLConnection();
	sqlConn.open(appDataBase);
	this.genericDAO.sqlConnection	= sqlConn;
}

/**
 * Função disparada no click do botão de "Adicionar"
 */
private function btnAddHandler(event:MouseEvent) : void
{
	this.genericDAO.save(this.todo);
	this.dg.dataProvider	= this.genericDAO.findAll(this.todoClass);
}

/**
 * Função disparada no click do botão de "Excluir"
 */
private function btnDelHandler(event:MouseEvent) : void
{
	this.genericDAO.remove(this.todo);
	this.dg.dataProvider	= this.genericDAO.findAll(this.todoClass);
}

/**
 * Função disparada no duplo click no grid de pesquisa
 */
private function doubleClickHandler(event:MouseEvent) : void
{
	this.todo	= this.dg.selectedItem as Todo;
	this.vw.selectedIndex	= 0;
}

/**
 * Função disparada no click do botão de "Pesquisar"
 */
private function btnPesquisarHandler(event:MouseEvent) : void
{
	this.dg.dataProvider	= this.genericDAO.findAll(this.todoClass);
}

/**
 * Função disparada no click do botão de "Cadastrar"
 */
private function btnCadastrarHandler(event:MouseEvent) : void
{
	this.vw.selectedIndex 	= 0;
}

/**
 * Função disparada no click do botão de "Listar"
 */
private function btnListarHandler(event:MouseEvent) : void
{
	this.vw.selectedIndex	= 1;
}

/**
 * Função disparada no click do botão de "Novo"
 */
private function btnNovoHandler(event:MouseEvent) : void
{
	this.todo	= new Todo();
}
]]>
</mx:Script>

<mx:Binding destination="todo.titulo" 		source="titulo.text"/>
<mx:Binding destination="todo.descricao" 	source="descricao.text"/>

<mx:Panel width="500" height="250" layout="absolute" title="O que tenho para fazer?" horizontalCenter="0" verticalCenter="0">

<mx:ViewStack id="vw" top="0" right="0" left="0" bottom="0">
	<mx:Canvas label="Grid" width="100%" height="100%">

		<mx:Label x="10" y="10" text="Título" fontWeight="bold"/>
		<mx:TextInput x="10" y="29" width="460" id="titulo" text="{this.todo.titulo}"/>

		<mx:Label x="10" y="58" text="Descrição" fontWeight="bold"/>
		<mx:TextArea x="10" y="75" width="460" height="85" id="descricao" text="{this.todo.descricao}"/>

		<mx:Button x="318" y="172" label="Adicionar" id="btnAdd" click="btnAddHandler(event);"/>
		<mx:Button x="252" y="172" label="Listar" id="btnListar" click="btnListarHandler(event);"/>
		<mx:Button x="189" y="172" label="Novo" id="btnNovo" click="btnNovoHandler(event);"/>
		<mx:Button x="406" y="172" label="Excluir" id="btnDel" click="btnDelHandler(event);"/>

	</mx:Canvas>

	<mx:Canvas label="Formulario" width="100%" height="100%">
		<mx:DataGrid 	top="5" right="5" left="5" bottom="30"
						id="dg"
						doubleClickEnabled="true"
						doubleClick="doubleClickHandler(event);">
			<mx:columns>
				<mx:DataGridColumn dataField="titulo"/>
			</mx:columns>
		</mx:DataGrid>
		<mx:Button label="Pesquisar" id="btnPesquisar" click="btnPesquisarHandler(event);" bottom="5" right="5"/>
		<mx:Button label="Cadastrar" id="btnCadastrar" click="btnCadastrarHandler(event);" bottom="5" right="90"/>
	</mx:Canvas>

</mx:ViewStack>

</mx:Panel>

</mx:WindowedApplication>

Basta exportar sua aplicação, e tudo deverá funcionar perfeitamente.

Forte abraço e até a próxima!

Jul 9

Flex Mania – Assista as palestras gravadas

Escrito por Ebercom em Dicas, Eventos, Flex, Flex Mania, Gravação, Palestra Online, SQLite, Vídeo @ 07 9th, 2009 | via http://www.flexdev.com.br/home | Sem comentários
Ebercom
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá a todos,

Se você não pode assistir ao Flex Mania ao vivo não pode perder, confira as gravações das palestras.

FlexMania_Assista

Imperdível…

Abraços a todos.

| Entradas recentes »

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2791 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com