logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  • Mobile
  Twitter   Feed-me! RSS!
Mar 10

XAMLCast – 2a Temporada – Episódio 9 – Finger Style, SLARToolkit, Windows Phone 7 e pré-MIX10

Escrito por XAML Cast em .NET, 1, 3d, 4, 6, AR, AUG, Artigo, BI, Blend, Blogs, Curso, DRE, Design, Dicas, Evento, Ferramenta, IE, MIX, MSDN, Microsoft, Notícias, Novidades, O, Pessoal, RIA, Revisão, Ria’s Geral, Ria's Geral, Tech, WPF, back, blog, class, codeplex, concurso, embedded, engine, entrevista, err, event, expression, for, framework, html, iTunes, ide, kit, live, mg, multitouch, novidade, on, player, podcast, ps3, realidade aumentada, referencia, rss, silverlight, tag @ 03 10th, 2010 | via http://www.xamlcast.net | Sem comentários
XAML Cast
? 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á olá pessoal!

Este é o XAMLCast pré-MIX10.

Estamos ansiosos para a chegada deste grande evento que irá nos trazer grandes novidades e anúncios. E para nossa alegria, e como já havíamos falado antes, o XAMLCaster Kelps estará em Las Vegas cobrindo o evento e enviando tudo em primeira mão!

Neste episódio falamos de:

  • Finger Style – Artigo fantástico do Charles Petzold sobre Multitouch em Silverlight

    • http://msdn.microsoft.com/en-us/magazine/ee336026.aspx
  • MultiTouchVista – simulador de multitouch com múltiplos mouses para Windows

    • http://multitouchvista.codeplex.com
  • Artigo do Roberto Sonnino (em inglês) sobre touch com WPF e MultiTouchVista

    • http://www.codeproject.com/KB/WPF/3D-BookWriter.aspx
  • SLARToolkit – A experiência de AR (Realidade Aumentada) com Silverlight virou um framework

    • http://kodierer.blogspot.com/2010/02/slartoolkit-silverlight-augmented.html
  • Aplicação do correio americano para tamanhos de caixas com AR

    • https://www.prioritymail.com/simulator.asp
    • http://www.youtube.com/watch?v=WpS3LeCiCtc&feature=player_embedded
  • Não confunda:

    • Blender – programa de modelagem 3D

      • http://www.blender.org/
    • Balder – engine 2D/3D que funciona com Silverlight

      • http://balder.codeplex.com/
    • Blend – ferramenta para design de aplicações WPF/Silverlight

      • http://www.microsoft.com/expression/products/Blend_Overview.aspx
  • Concurso de Silverlight/WPF da Magenic Studios – prêmios até 500 US$ + 3000 US$ pro Haiti

    • http://magenic.com/Default.aspx?tabid=1835
  • Copa de Talentos Microsoft

    • http://talentosmicrosoft.com.br/
  • Anuncio oficial do Silverlight no Windows Phone 7

    • http://bit.ly/ci8rrI
  • Video no TechEd Middle East mostrando XNA no Windows Phone, Xbox e Windows

    • http://www.youtube.com/watch?v=LQv_3fwopo8
  • MIX10

    • http://live.visitmix.com
  • HVP no MIX

    • http://silverlighthvp.codeplex.com/wikipage?title=ReleaseSchedule
  • Video do ScottGu no Channel 9 falando sobre o MIX

    • http://channel9.msdn.com/posts/LarryLarsen/Countdown-to-MIX10-The-Gu/

Bolão do MIX10!
Envie sua previsão do que irá acontecer no MIX10. Para participar, basta referenciar a hashtag #bolaoxamlcast no seu post do twitter.

Ajudem o XAMLCast a entrevistar o ScottGu no MIX10
Envie um tweet (em inglês) para @ScottGu pedindo uma entrevista com o @XAMLCast (Brazilian Podcast) ou @kelps.

Com muitos pedindo, o acesso torna-se mais fácil.

Se quiserem, podem pedir para outras “personalidades” do .net/WPF/SL, como Scott Hanselman, Phil Haack, John Papa, S. Somasegar, Tim Heuer, Karen Corby, Glenn Block… o Kelps vai ter trabalho em Vegas!

Atenção!

O XAMLCast da semana que vem será especial sobre o MIX10! Assim, em vez de um grande episódio, soltaremos as notícias aos poucos, o mais rápido possível, conforme o Kelps for mandando. Por isso, não deixe de assinar e seguir o XAMLCast para não perder nada!

Para assinar:

  • Feed RSS: http://www.xamlcast.net
  • iTunes/iPod: pcast://www.xamlcast.net
  • Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net

O XAMLCast também está no Twitter!

- Twitter oficial: @xamlcast (e hashtag #xamlcast)

- Siga os XAMLCasters:

  • @kelps
  • @robertos_br
  • @rodrigokono

- Adicione o Twibbon do XAMLCast ao seu avatar!

  • http://twibbon.com/join/XAMLCast

Até o próximo!

Abraços,

Kelps, Roberto Sonnino e Rodrigo Kono

http://feedproxy.google.com/~r/xamlcast/~5/YyvAWh0-fbY/xamlcast – 2×09.mp3

Mar 5

Alterando a aparência de um CheckBox com WPF e C#

Escrito por Alexandre em 1, 4, 6, AR, BI, Blend, Blend 3, Blogs, C#, Design, Desktop, Diversos, Evento, Eventos, Expression Blend, Expression Blend 3, Google, HCI, IE, Microsoft, Microsoft Expression, NaN, O, Outros, RIA, Ria’s Geral, Storyboard, Tema, Tutoriais, Tutorial, UI, UX, Visual Studio, Visual Studio 2008, WPF, XAML, XP, api, bitmap, blog, botão, carregar, checkBox, class, control, css, código, código fonte, demo, efeito, event, exemplo, expression, fonte, for, fundo, if, image, imagens, int, layout, lista, map, mg, on, padrão, processo, silverlight, tag @ 03 5th, 2010 | via http://www.silverlight.net.br/ | Sem comentários
Alexandre
? 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 »

   Neste tutorial vou criar um UserControl simples com um CheckBox e modificar a aparência inserindo uma imagem no lugar do layout padrão do CheckBox, dessa forma podemos utilizar qualquer imagem e criar CheckBox com um apelo visual mais sofisticado. O conceito pode ser aplicado em diversos outros objetos WPF.
     No exemplo vou utilizar o Microsoft Expression Blend 3 para auxiliar no design do tutorial, vou carregar duas imagens png, a primeira com o desenho de uma lâmpada ligada e a segunda com outra lâmpada desligada, quando o checkbox for clicado a lâmpada vai acender e um efeito de luz suave vai aparecer.

     Primeiro crie uma aplicação em WPF e adicione um UserControl com o nome de UserControlCheckBox.xaml, modifique a altura e o tamanho para 100: Height=”100″ Width=”100″ e altere o fundo do layout GRID para “Black”. Dentro do layout GRID adicione uma Ellipse com o tamanho e altura de 20.

     Agora vamos criar um Style herdando as propriedades de um objeto CheckBox, selecione a Ellipse com o botão direito do mouse e clique em Make into Control… conforme a figura abaixo:

     Selecione o CheckBox e dê o nome do Style de CheckBoxStyle1:

     Localize o resources do UserControl e adicione um ImageBrush que vai “pintar” a Ellipse com uma imagem que iniciamente será a lâmpada apagada:

     Agora vamos adicionar Triggers que vão habilitar os eventos check e uncheck acionando Storyboards que vão animar as propriedades Opacity e Radius da Ellipse e criar um efeito interessante simulando uma luz. Clique em Triggers, depois em Event para adicionar um evento, selecione o objeto Checkbox e depois Checked e por fim clique no sinal de + para adicionar uma Storyboard, conforme a figura abaixo:

     Repita o processo para o evento Unchecked, neste momento temos o trigger conforme a listagem abaixo:

     Duas Storyboards foram criadas, para  trocar a imagem quando o CheckBox é acionado adicione o evento Completed na Storyboard OnChecked1 e adicione o código C# abaixo:

ImageBrush brush = (ImageBrush)this.Resources["imgb"];
Image image1 = new Image();
brush.ImageSource =
new BitmapImage(new Uri(“luz_apagada.png”, UriKind.Relative));

    Repita o processo no evento Completed da Storyboard OnUnchecked1 mudando somente a imagem:

brush.ImageSource = new BitmapImage(new Uri(“luz_ligada.png”, UriKind.Relative));

     Para finalizar o tutorial vamos animar as propriedades Opacity e Radius para simular uma luz no CheckBox inserindo um novo efeito ao controle, na Storyboard OnChecked1 adicione o código:

     E adicione o código abaixo na Storyboard OnUnchecked1:

     Adicione uma Ellipse entre o GRID Layout e o CheckBox e utilize o efeito BlurEffect que vai dar o efeito de luz no CheckBox:

    Agora é só adicionar o UserControl em seu projeto e testar.

Código fonte do tutorial : Clique aqui
Expression Blend 3 / Visual Studio 2008

Mar 3

Cifras: novas funcionalidades

Escrito por Daniel Lopes em 1, 2009, 6, AR, BI, Curso, Design, Novidades, O, RIA, Ria’s Geral, Sugestões, TAT, Tema, UI, blog, botão, cifras, class, for, gestão, if, int, lista, mg, novidade, on, tag, uint, web @ 03 3rd, 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 »

Hoje o Cifras recebeu algumas novidades. Como base em sugestões de nossos usuários e do nosso próprio uso diário do sistema, decidimos incluir as seguintes funções:

Transferência entre contas

Agora é possível fazer uma transferência entre contas com alguns poucos cliques. A transferência cria um débito na conta onde o dinheiro saiu e um crédito na conta de destino. Veja abaixo como acessar o novo recurso:

Basta ‘clicar’ no botão ‘MAIS OPÇÕES’ e escolher a transferência. Na tela que surgirá você só precisa informar o motivo da transferência, a quantia, data e destino.

Consolidar pendentes com 1 click

Um sugestão recorrente foi uma forma de conseguir trasnformar uma transação pendente (a pagar/a receber) em pago de uma forma mais rápida. O que fizemos foi permitir que o usuário marque a transação como paga apenas ‘clicando’ no status (a pagar/a receber) da transação na listagem do mês. Como abaixo:

Esperamos que tenham gostado das alterações e aguardem mais novidades.

Mar 2

Ganhador da promoção

Escrito por Daniel Lopes em 1, 4, 6, AR, BI, Curso, Design, FullScreen, O, RIA, Ria’s Geral, TAT, Twitter, UI, Vídeo, app, blog, class, comunicação, egenial, loop, mg, on, oop, rails, screen, server, swf, tag, vencedor, web @ 03 2nd, 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 »

Ontem fiz o sorteio da promoção da bolsa para o curso de Rails. Veja o vídeo do sorteio e quem foi o premiado.

Ontem fiz o sorteio da promoção da bolsa para o curso de Rails. Para a realização do sorteio foi utilizado o Twicket, veja abaixo o vídeo com o resultado:

O vencedor foi o Rosano Cangussu com o tweet: http://bit.ly/dDePXO

A aplicação usada para o sorteio foi um pequeno projeto realizado em algumas horas utilizando o Sinatra. A app faz a comunicação com o Twitter e retorna o ganhador através dos tweets únicos do usuário com a hashtag escolhida.

Quem quiser conhecer a aplicação o link é: http://twicket.heroku.com/

Mar 1

Freelancer / Remoto – Alerta

Escrito por Fabio da Silva em 1, 4, 6, AR, BI, Blogs, Dica, Ferramenta, Flex, Google, LOB, Mercado de Trabalho, O, RIA, Ria’s Geral, Serviços, Sun, TAT, UI, Vários, bar, blog, class, comunidade, demo, empresas, entrevista, err, escritório, for, free, fundo, if, int, internet, mg, on, rest, serviço, site, tag, zend @ 03 1st, 2010 | via http://fabiophx.blogspot.com | Sem comentários
Fabio da Silva
? 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 »

Quem não gostaria de fazer um freelancer ou trabalhar full-time de forma remota no conforto de seu lar?
Acredito que a maioria de nós.
Neste mundo globalizado e com as ferramentas atuais isto se tornou possível.

Este post, não é para discutir as vantagens e desvantagens do trabalho remoto, já existem vários sites por aí sobre o assunto, venho aqui somente como alerta para não caírem no conto do vigário. Cada vez mais se houve falar aqui ou ali de pessoas que prestaram serviços para empresas, algumas se dizem dos Estados Unidos, que prometem mundos e fundos e acabaram a ver navios.

Fica aqui o alerta, quando forem se candidatar a uma vaga destas tentem pegar maiores informações, só ter um site bonito não resolve, veja se tem informações na mídia sobre esta empresa, se for no Brasil e perto de vocês tentem marcar uma entrevista local, no escritório da empresa, se for no exterior e tiverem algum conhecido nesta região peça a esta que verifique o endereço (às vezes são fictícios).
Uma outra boa dica é entrar em contato privado com pessoas de confiança da comunidade Flex para ver se elas conhecem a empresa.

Da mesma maneira que a globalização e a internet deixou o mundo menor, fazendo empresas e pessoas más intencionadas chegarem até nós, através das mesmas ferramentas podemos nos proteger destas pessoas.

Investiguem primeiro, da mesma maneira que há emrpesas confiáveis utilizando esta nova forma de contratação também há aquelas que se beneficiam da distância para agirem de má fé.

Fev 24

XAMLCast – 2a Temporada – Episódio 8 – MVPs do ano Silverlight, Windows Phone 7, MIX 10K e Silverlight 3D

Escrito por XAML Cast em .NET, 1, 2009, 3d, 4, 6, AR, Artigo, Blogs, DRE, Destaque, Google, IE, Jogos, Links, Livro, MIX, Microsoft, Novidades, O, Opinião, Pessoal, Projetos, Ria’s Geral, Silverlight 2, Silverlight 3, Tech, Twitter, UI, WPF, XAML, XP, Xna, api, blog, bug, camp, codeplex, development, embedded, entrevista, for, game, iTunes, ide, int, jogo, kit, mg, novidade, on, player, podcast, pt, rss, screen, silverlight, tag, web, window, windows @ 02 24th, 2010 | via http://www.xamlcast.net | Sem comentários
XAML Cast
? 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á olá pessoal!

Já estamos na edição 8 e as novidades não param.
Já tem gente pedindo o XAMLCast duas vezes por semana (caramba).

No podcast desta semana falamos dos MVPs de Silverlight que foram destaque em 2009, falamos do Windows Phone e também discutimos um pouco sobre os projetos de 3D no Silverlight.
Ouça e mande sua opinião e comentário!

Seguem os links relacionados ao podcast:

  • MVPs do ano de Silverlight
    • Post do Tim Heuer com a divulgação
      • http://timheuer.com/blog/archive/2010/02/18/silverlight-mvp-of-the-year-2009.aspx
    • Laurent Bugnion
      • http://blog.galasoft.ch
      • http://twitter.com/lbugnion
    • Dave Campbell
      • http://geekswithblogs.net/WynApseTechnicalMusings/Default.aspx
      • http://twitter.com/wynapse
  • Windows Phone 7
    • Conheça:
      • http://www.windowsphone7series.com
    • Especulações do Silverlight no Windows Phone
      • http://rodrigokono.net/2010/02/silverlight-no-windows-phone
    • Entrevista de Ballmer para o TechCrunch
      • http://www.engadget.com/2009/09/25/steve-ballmer-talks-three-screens-and-a-cloud-and-more-with-te
  • Competições de Silverlight
    • MIX 10K
      • http://mix10k.visitmix.com/
    • SilverlightShow EcoContest
      • http://contest.silverlightshow.net/
  • Silverlight 3D
    • Projeto Balder (2D e 3D para Silverlight, XNA e OpenGL)
      • http://balder.codeplex.com
    • Kit3D (3D no Silverlight 2)
      • http://kit3d.codeplex.com
    • Google investindo na Web 3D
      • O3D: http://code.google.com/intl/pt-BR/apis/o3d
      • Video: http://www.youtube.com/watch?v=uofWfXOzX-g&feature=player_embedded
    • Livro que explica como fazer jogos 3D com Balder e Farseer
      • http://www.packtpub.com/3d-game-development-with-microsoft-silverlight-3-beginners-guide/book
    • Artigo: como desenvolver em 3D com WPF
      • http://www.codeproject.com/KB/WPF/3D-BookWriter.aspx

Para assinar:

  • Feed RSS: http://www.xamlcast.net
  • iTunes/iPod: pcast://www.xamlcast.net
  • Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net

O XAMLCast também está no Twitter!

- Twitter oficial: @xamlcast (e hashtag #xamlcast)

- Siga os XAMLCasters:

  • @kelps
  • @robertos_br
  • @rodrigokono

- Adicione o Twibbon do XAMLCast ao seu avatar!

  • http://twibbon.com/join/XAMLCast

Até o próximo!

Abraços,

Kelps, Roberto Sonnino e Rodrigo Kono

http://feedproxy.google.com/~r/xamlcast/~5/OL25dpxOngU/xamlcast – 2×08.mp3

Fev 23

Flex Datagrid: salvar valor modificado por um item renderer

Escrito por Ved em AR, DataGrid, DataProvider, Flex, Formação, Motivação, O, Ria’s Geral, Screencast, UI, XP, checkBox, checkboxes, explicação, for, ide, itemRenderer, screen, tag @ 02 23rd, 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 »

Eu ia gravar um screencast mas não rolou motivação. Então, como o moço que me pediu essa explicação tava na urgência, decidi fazer um projeto e mandar para ele (não se acostumem).
Clique aqui para baixar o projeto.

É algo muito simples e serve para manipular o dataProvider ao marcar/desmarcar os checkboxes no dataGrid, deixando a informação [...]

Fev 22

Vaga estagiário em webdesign

Escrito por Eduardo Kraus em AR, Air, Blogs, Design, Flex, O, PHP, RIA, Ria’s Geral, blog, comunicação, flash, html, if, image, imagens, on, on-line, site, tag, web @ 02 22nd, 2010 | via http://blog.mxml.com.br | Sem comentários
Eduardo Kraus
? 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 »

A GRComunicação(grcomunica.blogspot.com) esta abrindo vaga para estagiário em webdesign, para atuar na criação e manutenção de site e marketing on-line.
Sobre a vaga:
- Necessário conhecimento em PHP;
- Diferencial conhecimento em Flash, HTML, Webstandards e algum editor de imagens;
- Diferencial conhecimento em Corel;
- Local de trabalho Bairro Capoeiras, Florianópolis, próximo ao Angeloni, em ótima estrutura, e ótimo [...]

Fev 22

Lumine + ZendAmf + Flex 5/5

Escrito por Fábio Batista da Silva em 1, 4, 6, AMF, AR, Adobe, Adobe Flex, Arquitetura, BI, Bindable, Controls, DataGrid, DataProvider, Desenvolvedor, EventListener, Evento, Eventos, Flex, Flex 2, Flex 3, Flex 4, IE, Iniciando, Java, MXML, Number, O, PHP, Pessoal, Projetos, RIA, Ria’s Geral, TAT, Tema, TextInput, Tutorial, UI, Ved, XML, XP, action, app, auto, back, backend, bar, busca, class, control, código, código fonte, demo, desenvolvedores, dispatch, dispatchEvent, email, err, erro, event, events, fonte, for, framework, function, handle, ide, if, label, layout, on, pt, servidor, tag, tv, update, vs, zend, zendAMF, zendFramework @ 02 22nd, 2010 | via http://www.flexria.com.br/home | Sem comentários
Fábio Batista da Silva
? 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 »

Lumine + ZendAmf + Flex 5/5

Olá pessoal !!!

Agora que temos nosso backend e regra de negocio pronta podemos implementar nossas views e actions.

Application

Iniciando pelo nosso application que terá apenas as configurações do Swiz e uma instância de nossa view :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
	xmlns:mx="http://www.adobe.com/2006/mxml" 
	xmlns:swiz="http://swiz.swizframework.org"
	xmlns:views="br.com.flexria.views.*"
	layout="absolute" xmlns:local="*"
	creationPolicy="all"
	height="100%"
	width="100%">
 
	<local:ApplicationSwizConfig/>
 
	<views:ContactView 
		horizontalCenter="0" 
		verticalCenter="0"
		width="600"
		bottom="20" 
		top="20"/>
</mx:Application>

Views

A aplicação possui 2 view extremamente simples ContactView e PhoneView, sendo que a segunda será utilizado como filha da primeira:

ContactView.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Panel 
	xmlns:mx="http://www.adobe.com/2006/mxml"
	xmlns:views="br.com.flexria.views.*" 
 	creationComplete="{init()}"
 	title="Contatos">
	<mx:Script source="actions/ContactAction.as"/>
	<mx:ViewStack id="_vs" width="100%" height="100%">
		<mx:Canvas width="100%" height="100%" id="_canvasList">
			<mx:HBox left="20" right="20" top="5">
				<mx:Label text="Nome"/>
				<mx:TextInput id="_txFind" width="80%"/>
				<mx:Button label="Buscar" click="find()"/>
			</mx:HBox>
			<mx:DataGrid 
				id="_dataGrid"
				top="40"
				left="10"
				right="10"
				bottom="60" 
				doubleClick="update()"
				doubleClickEnabled="true"
				dataProvider="{contactController.dataProvider}" >
				<mx:columns>
					<mx:DataGridColumn headerText="Nome" 	dataField="name"/>
					<mx:DataGridColumn headerText="Email" 	dataField="email"/>
				</mx:columns>
			</mx:DataGrid>
			<mx:ControlBar bottom="10" width="95%" horizontalCenter="0" horizontalAlign="left" verticalAlign="middle">
				<mx:Button label="Novo" 	id="_btnCreate" 	click="{create()}"/>
				<mx:Button label="Editar" 	id="_btnUpdate" 	click="{update()}"		enabled="{_dataGrid.selectedItem!=null}"/>
				<mx:Button label="Remover" 	id="_btnRemove" 	click="{remove()}"		enabled="{_dataGrid.selectedItem!=null}"/>
			</mx:ControlBar>
		</mx:Canvas>
		<mx:Canvas  width="100%" height="100%" id="_canvasForm">
			<mx:TabNavigator width="100%" height="100%">
				<mx:Form 
					top="10"
					left="10"
					right="10"
					bottom="10" 
					borderStyle="solid" label="Contato">
					<mx:FormHeading label="{contact.id>0?'Editando':'Incluindo'} contato"/>
					<mx:FormItem label="Nome:" required="true">
						<mx:TextInput 
							width="339" 
							id="_txtName" 
							text="{contact.name}"/>
					</mx:FormItem>
					<mx:FormItem label="Email:">
						<mx:TextInput 
							width="339" 
							id="_txtEmail" 
							text="{contact.email}"/>
					</mx:FormItem>
					<mx:FormItem width="100%" direction="horizontal">
						<mx:Button label="Cancelar" id="_btnCancel" 	click="{cancel()}"/>
						<mx:Button label="Confirmar" id="_btnConfirm" 	click="{save()}"/>
					</mx:FormItem>
				</mx:Form>
                                <!--Instancia de PhoneView-->
				<views:PhoneView 
					id="_phoneView" 
					contact="{contact}" 
					label="Telefones" 
					enabled="{contact.id>0}"/>
			</mx:TabNavigator>
		</mx:Canvas>
	</mx:ViewStack>
</mx:Panel>

PhoneView.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas 
	xmlns:mx="http://www.adobe.com/2006/mxml" 
 	creationComplete="{init()}">
	<mx:Script source="actions/PhoneAction.as"/>
	<mx:ViewStack id="_vs" width="100%" height="100%">
		<mx:Canvas width="100%" height="100%" id="_canvasList">
			<mx:DataGrid 
				id="_dataGrid"
				top="10"
				left="10"
				right="10"
				bottom="60" 
				doubleClick="update()"
				doubleClickEnabled="true"
				dataProvider="{phoneController.dataProvider}" >
				<mx:columns>
					<mx:DataGridColumn headerText="Número" 	dataField="number"/>
				</mx:columns>
			</mx:DataGrid>
			<mx:ControlBar bottom="10" width="95%" horizontalCenter="0" horizontalAlign="left" verticalAlign="middle">
				<mx:Button label="Novo" 	id="_btnCreate" 	click="{create()}"/>
				<mx:Button label="Editar" 	id="_btnUpdate" 	click="{update()}"		enabled="{_dataGrid.selectedItem!=null}"/>
				<mx:Button label="Remover" 	id="_btnRemove" 	click="{remove()}"		enabled="{_dataGrid.selectedItem!=null}"/>
			</mx:ControlBar>
		</mx:Canvas>
		<mx:Canvas  width="100%" height="100%" id="_canvasForm">
			<mx:Form 
				top="10"
				left="10"
				right="10"
				bottom="10" 
				borderStyle="solid">
				<mx:FormHeading label="{phone.id>0?'Editando':'Incluindo'} telefone"/>
				<mx:FormItem label="Número:" required="true">
					<mx:TextInput 
						width="339" 
						id="_txtNumber" 
						text="{phone.number}"/>
				</mx:FormItem>
				<mx:FormItem width="100%" direction="horizontal">
					<mx:Button label="Cancelar" id="_btnCancel" 	click="{cancel()}"/>
					<mx:Button label="Confirmar" id="_btnConfirm" 	click="{save()}"/>
				</mx:FormItem>
			</mx:Form>
		</mx:Canvas>
	</mx:ViewStack>
</mx:Canvas>

Actions

E para finalizar as respectivas Actions para ContactView e PhoneView.
Essas action possuem os métodos que disparam os eventos de chamada ao servidor e métodos handler que serão chamados quando a requisição for completada.
Além disso temos a meta tag [Autowire] que faz a injeção do respectivo controller.
ContactAction.as

import br.com.flexria.controllers.ContactController;
import br.com.flexria.events.ContactEvent;
import br.com.flexria.vo.ContactVO;
import org.swizframework.Swiz;
import mx.events.CloseEvent;
import mx.controls.Alert;
 
 
[Bindable]
private var contact:ContactVO=new ContactVO();
 
[Bindable]
[Autowire]
public var contactController:ContactController;
 
/**
 * init()
 */
private function init():void
{
	find();
 
	Swiz.addEventListener(ContactEvent.SAVE_COMPLETE, saveCompleteHandler);
	Swiz.addEventListener(ContactEvent.REMOVE_COMPLETE, removeCompleteHandler);
}
 
/**
 * create()
 */
private function create():void
{
	contact=new ContactVO();
	_vs.selectedChild=_canvasForm;
}
 
/**
 * update()
 */
private function update():void
{
	contact=_dataGrid.selectedItem as ContactVO;
	_vs.selectedChild=_canvasForm;
}
 
/**
 * cancel()
 */
private function cancel():void
{
	contact=new ContactVO();
	_vs.selectedChild=_canvasList;
}
 
/**
 * find()
 */
private function find():void
{
	_vs.selectedChild=_canvasList;
	var event:ContactEvent=new ContactEvent(ContactEvent.FIND);
	event.contact=new ContactVO();
	event.contact.name=_txFind.text;
	Swiz.dispatchEvent(event);
}
 
/**
 * save()
 */
private function save():void
{
	contact.name=_txtName.text;
	contact.email=_txtEmail.text;
	var event:ContactEvent=new ContactEvent(ContactEvent.SAVE);
	event.contact=contact;
	Swiz.dispatchEvent(event);
}
 
/**
 * remove()
 */
private function remove():void
{
	Alert.show("Deseja realmente excluir o registro selecionado?", "Excluir", Alert.NO | Alert.YES | Alert.NONMODAL, null, function(e:CloseEvent):void
	{
		if (e.detail == Alert.YES)
		{
			contact=_dataGrid.selectedItem as ContactVO;
			var event:ContactEvent=new ContactEvent(ContactEvent.REMOVE);
			event.contact=contact;
			Swiz.dispatchEvent(event);
		}
	});
 
}
 
/**
 * saveCompleteHandler()
 */
private function saveCompleteHandler(event:Event):void
{
	_vs.selectedChild=_canvasList;
	find();
}
 
/**
 * removeCompleteHandler()
 */
private function removeCompleteHandler(event:Event):void
{
	_vs.selectedChild=_canvasList;
	find();
}

PhoneAction.as

import br.com.flexria.controllers.ContactController;
import br.com.flexria.controllers.PhoneController;
import br.com.flexria.events.ContactEvent;
import br.com.flexria.events.PhoneEvent;
import br.com.flexria.vo.ContactVO;
import br.com.flexria.vo.PhoneVO;
import org.swizframework.Swiz;
import mx.events.CloseEvent;
import mx.controls.Alert;
 
[Bindable]
private var _contact:ContactVO;
 
[Bindable]
private var phone:PhoneVO=new PhoneVO();
 
[Bindable]
[Autowire]
public var phoneController:PhoneController;
 
public function set contact(value:ContactVO):void
{
	_contact=value;
	if (_contact != null && _contact.id > 0)
	{
		load();
	}
}
 
/**
 * init()
 */
private function init():void
{
	Swiz.addEventListener(PhoneEvent.SAVE_COMPLETE, saveCompleteHandler);
	Swiz.addEventListener(PhoneEvent.REMOVE_COMPLETE, removeCompleteHandler);
}
 
/**
 * load()
 */
private function load():void
{
	_vs.selectedChild=_canvasList;
	var event:PhoneEvent=new PhoneEvent(PhoneEvent.LOAD);
	event.contact=_contact;
	Swiz.dispatchEvent(event);
}
 
/**
 * create()
 */
private function create():void
{
	phone=new PhoneVO();
	_vs.selectedChild=_canvasForm;
}
 
/**
 * update()
 */
private function update():void
{
	phone=_dataGrid.selectedItem as PhoneVO;
	_vs.selectedChild=_canvasForm;
}
 
/**
 * cancel()
 */
private function cancel():void
{
	phone=new PhoneVO();
	_vs.selectedChild=_canvasList;
}
 
/**
 * save()
 */
private function save():void
{
	phone.contactId=_contact.id;
	phone.number=_txtNumber.text;
	var event:PhoneEvent=new PhoneEvent(PhoneEvent.SAVE);
	event.phone=phone;
	Swiz.dispatchEvent(event);
}
 
/**
 * remove()
 */
private function remove():void
{
	Alert.show("Deseja realmente excluir o registro selecionado?", "Excluir", Alert.NO | Alert.YES | Alert.NONMODAL, null, function(e:CloseEvent):void
	{
		if (e.detail == Alert.YES)
		{
			phone=_dataGrid.selectedItem as PhoneVO;
			var event:PhoneEvent=new PhoneEvent(PhoneEvent.REMOVE);
			event.phone=phone;
			Swiz.dispatchEvent(event);
		}
	});
 
}
 
/**
 * saveCompleteHandler()
 */
private function saveCompleteHandler(event:Event):void
{
	_vs.selectedChild=_canvasList;
	load();
}
 
/**
 * removeCompleteHandler()
 */
private function removeCompleteHandler(event:Event):void
{
	_vs.selectedChild=_canvasList;
	load();
}

Assim finalizamos nossa aplicação !!!

O código fonte da aplicação pode ser baixado aqui

Espero que esse tutorial possa ser utíl aos desenvolvedores PHP que pretendem utilizar essa arquitetura em seus projetos e peço desculpas por algum erro ou se deixei de explicar algo durante o post.
Se houver alguma duvida podem podem perguntar via comentário no post ou email Q respondo na medida do possível..

Abraço a todos e até a próxima !!!!

Tutorial : Lumine + ZendAmf + Flex 1/5
Tutorial : Lumine + ZendAmf + Flex 2/5
Tutorial : Lumine + ZendAmf + Flex 3/5
Tutorial : Lumine + ZendAmf + Flex 4/5
Tutorial : Lumine + ZendAmf + Flex 5/5

Fev 22

Lumine + ZendAmf + Flex 4/5

Escrito por Fábio Batista da Silva em 1, 4, 6, AMF, AR, Adobe Flex, BI, Bindable, Controls, DataProvider, Dica, Evento, Eventos, Flex, Flex 2, Flex 3, Flex 4, IE, Java, MXML, Number, O, PHP, Pessoal, RIA, Remoting, Ria’s Geral, RoR, Sun, TAT, Tutorial, UI, XML, action, auto, boolean, class, classe, classes, collection, control, demo, dispatch, dispatchEvent, email, err, erro, error, event, events, flash, for, framework, function, handle, ide, if, int, lista, map, on, override, servidor, string, tag, tv, uint, zend, zendAMF, zendFramework @ 02 22nd, 2010 | via http://www.flexria.com.br/home | Sem comentários
Fábio Batista da Silva
? 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 »

Lumine + ZendAmf + Flex 4/5

Olá pessoal !!!

Vamos dar continuidade a nossa serie de posts.
no ultimo posto configuramos da nossa aplicação flex, e agora iremos implementar nossas classes de modelo e regra de negocio.

VOs

Começamos criando nossos os VO’s/DTO’s, copias das classes que temos no PHP.
Possuem apenas seus atributos e as meta tag [Bindable] [RemoteClass(alias="xxx")]
Quem Tornam o objeto bindable e mapeiam a classe equivalente no PHP respectivamente.
br.com.flexria.vo.ContactVO e br.com.flexria.vo.PhoneVO

package br.com.flexria.vo
{
	/**
	 * @author Fabio B. Silva
	 */
	[Bindable]
	[RemoteClass(alias="ContactVO")]
	public class ContactVO
	{
		public var id:uint;
		public var name:String;
		public var email:String;
		public var phoneCollection:Array;
 
	}
}
 
package br.com.flexria.vo
{
	/**
	 * @author Fabio B. Silva
	 */
	[Bindable]
	[RemoteClass(alias="PhoneVO")]
	public class PhoneVO
	{
		public var id:uint;
		public var number:String;
		public var contactId:uint;
 
	}
}

Events

E agora os eventos de nossa aplicação que serão utilizados pelo Swiz.
Cada evento possui 6 constantes estáticas que identificarão o evento de chamada ao servidor e o evento de resposta.
br.com.flexria.events.ContactEvent e br.com.flexria.events.PhoneEvent

package br.com.flexria.events
{
	import br.com.flexria.vo.ContactVO;
	import flash.events.Event;
 
	/**
	 * @author Fabio B. Silva
	 */
	public class ContactEvent extends Event
	{
		public static const FIND		:String='ContactEvent.FIND';
		public static const SAVE		:String='ContactEvent.SAVE';
		public static const REMOVE		:String='ContactEvent.REMOVE';
		public static const FIND_COMPLETE	:String='ContactEvent.FIND_COMPLETE';
		public static const SAVE_COMPLETE	:String='ContactEvent.SAVE_COMPLETE';
		public static const REMOVE_COMPLETE	:String='ContactEvent.REMOVE_COMPLETE';
 
 
		public var contact:ContactVO;
 
		public function ContactEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
		}
 
		public override function clone():Event
		{
			return new ContactEvent(type, bubbles, cancelable);
		}
 
	}
}
 
package br.com.flexria.events
{
	import br.com.flexria.vo.ContactVO;
	import br.com.flexria.vo.PhoneVO;
	import flash.events.Event;
 
	/**
	 * @author Fabio B. Silva
	 */
	public class PhoneEvent extends Event
	{
		public static const LOAD		:String='PhoneEvent.LOAD';
		public static const SAVE		:String='PhoneEvent.SAVE';
		public static const REMOVE		:String='PhoneEvent.REMOVE';
		public static const LOAD_COMPLETE	:String='PhoneEvent.LOAD_COMPLETE';
		public static const SAVE_COMPLETE	:String='PhoneEvent.SAVE_COMPLETE';
		public static const REMOVE_COMPLETE	:String='PhoneEvent.REMOVE_COMPLETE';
 
 
		public var phone:PhoneVO;
		public var contact:ContactVO;
 
		public function PhoneEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
		}
 
		public override function clone():Event
		{
			return new PhoneEvent(type, bubbles, cancelable);
		}
 
	}
}

Delegates

Vamos então aos delegates que farão as chamadas as métodos remotos do PHP.
Apenas três métodos em cada um deles, para salvar/remover/listar.
Além disso temos a meta tag [Autowire(bean="xxx")] que indica ao Swiz que ali deve ser injetado o bean “xxx” mapeado no BeanLoader.

br.com.flexria.delegates.ContactDelegate e br.com.flexria.delegates.PhoneDelegate

package br.com.flexria.delegates
{
	import mx.rpc.remoting.mxml.RemoteObject;
	import br.com.flexria.vo.ContactVO;
	import mx.rpc.AsyncToken;
 
	/**
	 * @author Fabio B. Silva
	 */
	public class ContactDelegate
	{
		[Autowire(bean="contactRemote")]
		public var contactRemote:RemoteObject;
 
		/**
		 * find()
		 *
		 * @param 	contact:ContactVO
		 * @return 	AsyncToken
		 */
		public function find(contact:ContactVO):AsyncToken
		{
			return contactRemote.find(contact);
		}
 
		/**
		 * save()
		 *
		 * @param 	contact:ContactVO
		 * @return 	AsyncToken
		 */
		public function save(contact:ContactVO):AsyncToken
		{
			return contactRemote.save(contact);
		}
 
		/**
		 * remove()
		 *
		 * @param 	contact:ContactVO
		 * @return 	AsyncToken
		 */
		public function remove(contact:ContactVO):AsyncToken
		{
			return contactRemote.remove(contact);
		}
 
	}
}
 
 
package br.com.flexria.delegates
{
	import mx.rpc.remoting.mxml.RemoteObject;
	import br.com.flexria.vo.ContactVO;
	import br.com.flexria.vo.PhoneVO;
	import mx.rpc.AsyncToken;
 
	/**
	 * @author Fabio B. Silva
	 */
	public class PhoneDelegate
	{
		[Autowire(bean="phoneRemote")]
		public var phoneRemote:RemoteObject;
 
		/**
		 * load()
		 *
		 * @param 	contact:ContactVO
		 * @return 	AsyncToken
		 */
		public function load(contact:ContactVO):AsyncToken
		{
			return phoneRemote.load(contact);
		}
 
		/**
		 * save()
		 *
		 * @param 	phone:PhoneVO
		 * @return 	AsyncToken
		 */
		public function save(phone:PhoneVO):AsyncToken
		{
			return phoneRemote.save(phone);
		}
 
		/**
		 * remove()
		 *
		 * @param 	phone:PhoneVO
		 * @return 	AsyncToken
		 */
		public function remove(phone:PhoneVO):AsyncToken
		{
			return phoneRemote.remove(phone);
		}
 
	}
}

Controllers

Agora podemos implementar nosso controladores.
Eles estendem a classe org.swizframework.controller.AbstractController
e possuem 3 métodos publicos para salvar, remover e listar.
Esses métodos são mapeados pelo Swiz atraves da meta tag [Mediate(event='xxx')] que indica ao Swiz que sempre que o evento ‘xxx’ for disparado esse método deve ser chamado

package br.com.flexria.controllers
{
	import org.swizframework.controller.AbstractController;
	import br.com.flexria.delegates.ContactDelegate;
	import br.com.flexria.events.ContactEvent;
	import mx.collections.ArrayCollection;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.events.FaultEvent;
	import org.swizframework.Swiz;
	import mx.controls.Alert;
 
 
	/**
	 * @author Fabio B. Silva
	 */
	[Bindable]
	public class ContactController extends AbstractController
	{
		[Autowire]
		public var contactDelegate:ContactDelegate;
 
		public var dataProvider:ArrayCollection;
 
 
		/**
		 * find()
		 *
		 * @param 	e:ContactEvent
		 */
		[Mediate(event='ContactEvent.FIND')]
		public function find(e:ContactEvent):void
		{
			executeServiceCall(contactDelegate.find(e.contact), findHandler, faultHandler);
		}
 
		/**
		 * save()
		 *
		 * @param 	e:ContactEvent
		 */
		[Mediate(event='ContactEvent.SAVE')]
		public function salve(e:ContactEvent):void
		{
			executeServiceCall(contactDelegate.save(e.contact), saveHandler, faultHandler);
		}
 
		/**
		 * remove()
		 *
		 * @param 	e:ContactEvent
		 */
		[Mediate(event='ContactEvent.REMOVE')]
		public function remove(e:ContactEvent):void
		{
			executeServiceCall(contactDelegate.remove(e.contact), removeHandler, faultHandler);
		}
 
		/**
		 * findHandler()
		 *
		 * @param 	e:ResultEvent
		 */
		private function findHandler(e:ResultEvent):void
		{
			dataProvider=new ArrayCollection(e.result as Array);
			Swiz.dispatchEvent(new ContactEvent(ContactEvent.FIND_COMPLETE));
		}
 
		/**
		 * saveHandler()
		 *
		 * @param 	e:ResultEvent
		 */
		private function saveHandler(e:ResultEvent):void
		{
			Swiz.dispatchEvent(new ContactEvent(ContactEvent.SAVE_COMPLETE));
		}
 
		/**
		 * removeHandler()
		 *
		 * @param 	e:ResultEvent
		 */
		private function removeHandler(e:ResultEvent):void
		{
			Swiz.dispatchEvent(new ContactEvent(ContactEvent.REMOVE_COMPLETE));
		}
 
		/**
		 * faultHandler()
		 *
		 * @param 	e:FaultEvent
		 */
		private function faultHandler(e:FaultEvent):void
		{
			Alert.show(e.fault.message, "ERROR");
		}
 
	}
}
 
 
package br.com.flexria.controllers
{
	import org.swizframework.controller.AbstractController;
	import br.com.flexria.delegates.PhoneDelegate;
	import br.com.flexria.events.PhoneEvent;
	import mx.collections.ArrayCollection;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.events.FaultEvent;
	import org.swizframework.Swiz;
	import mx.controls.Alert;
 
 
	/**
	 * @author Fabio B. Silva
	 */
	[Bindable]
	public class PhoneController extends AbstractController
	{
		[Autowire]
		public var phoneDelegate:PhoneDelegate;
 
		public var dataProvider:ArrayCollection;
 
 
		/**
		 * find()
		 *
		 * @param 	e:PhoneEvent
		 */
		[Mediate(event='PhoneEvent.LOAD')]
		public function find(e:PhoneEvent):void
		{
			executeServiceCall(phoneDelegate.load(e.contact), loadHandler, faultHandler);
		}
 
		/**
		 * save()
		 *
		 * @param 	e:PhoneEvent
		 */
		[Mediate(event='PhoneEvent.SAVE')]
		public function salve(e:PhoneEvent):void
		{
			executeServiceCall(phoneDelegate.save(e.phone), saveHandler, faultHandler);
		}
 
		/**
		 * remove()
		 *
		 * @param 	e:PhoneEvent
		 */
		[Mediate(event='PhoneEvent.REMOVE')]
		public function remove(e:PhoneEvent):void
		{
			executeServiceCall(phoneDelegate.remove(e.phone), removeHandler, faultHandler);
		}
 
 
 
 
		/**
		 * findHandler()
		 *
		 * @param 	e:ResultEvent
		 */
		public function loadHandler(e:ResultEvent):void
		{
			dataProvider=new ArrayCollection(e.result as Array);
			Swiz.dispatchEvent(new PhoneEvent(PhoneEvent.LOAD_COMPLETE));
		}
 
		/**
		 * saveHandler()
		 *
		 * @param 	e:ResultEvent
		 */
		public function saveHandler(e:ResultEvent):void
		{
			Swiz.dispatchEvent(new PhoneEvent(PhoneEvent.SAVE_COMPLETE));
		}
 
		/**
		 * removeHandler()
		 *
		 * @param 	e:ResultEvent
		 */
		public function removeHandler(e:ResultEvent):void
		{
			Swiz.dispatchEvent(new PhoneEvent(PhoneEvent.REMOVE_COMPLETE));
		}
 
		/**
		 * faultHandler()
		 *
		 * @param 	e:FaultEvent
		 */
		public function faultHandler(e:FaultEvent):void
		{
			Alert.show(e.fault.message, "ERROR");
		}
 
	}
}

Com nossa regra de negocio pronta podemos implementar nossas views e actions.
que é o assunto do próximo post : Tutorial : Lumine + ZendAmf + Flex 5/5

Até já !!!

Tutorial : Lumine + ZendAmf + Flex 1/5
Tutorial : Lumine + ZendAmf + Flex 2/5
Tutorial : Lumine + ZendAmf + Flex 3/5
Tutorial : Lumine + ZendAmf + Flex 4/5
Tutorial : Lumine + ZendAmf + Flex 5/5

« Entradas anteriores |

pussytube
scat orgy tube 8
Spankingtube
japanese tits tube
http://freerepresentationunit.org.uk/intranet/skins/p141x.php
classic tube porn
http://freerepresentationunit.org.uk/intranet/skins/p227x.php
home made movies tube
rude tube
porn tube list
http://freerepresentationunit.org.uk/intranet/skins/p17x.php
3d porn movie
grand tunica casino andmw
Rawtube365
http://freerepresentationunit.org.uk/intranet/skins/p13x.php
free gay tube porn
you tube red tube
zootube.co.uk
panty pissing xtube
xxnxxx
http://freerepresentationunit.org.uk/intranet/skins/p125x.php
Poohtube
pantypissing xtube
japan porn tube
free sex tubes
http://freerepresentationunit.org.uk/intranet/skins/p73x.php
Http://freerepresentationunit.org.uk/intranet/skins/p206x.php
5 MPIX TUBE
Tube8.com
treetubes
hot tub cover lifters
red tube .com
Zoosex tube 365
Beach tube
redtube porn
zootube365 shockingtube
Milf cunt tubes
http://freerepresentationunit.org.uk/intranet/skins/p186x.php
tuberculosis bacterium
http://freerepresentationunit.org.uk/intranet/skins/p220x.php
3d porn tube
Http://freerepresentationunit.org.uk/intranet/skins/p77x.php
mammothtubes
Http://freerepresentationunit.org.uk/intranet/skins/p45x.php
uporntube
toutube porn
animaal sex tube
Http://freerepresentationunit.org.uk/intranet/skins/p46x.php
lubeyourtube.net
porn tube sites
xxx teen tube movies
bisexual blue tube
sex tube
http://freerepresentationunit.org.uk/intranet/skins/p1x.php
Hq.tube
porn search tube
porn utube8
Anonymous red tube
porn tube8
http://freerepresentationunit.org.uk/intranet/skins/p149x.php
Http://freerepresentationunit.org.uk/intranet/skins/p95x.php
piratebay porn porn
zoosex tube
x tube wanking cumming
asian porn tube
http://freerepresentationunit.org.uk/intranet/skins/p166x.php
tube works blue tube
adult tube online tv ksex m90 porn tube
pornotubes
Free beast tube horse cum pussy
SHOCKINGTUBE.COM
Http://freerepresentationunit.org.uk/intranet/skins/p190x.php
http://freerepresentationunit.org.uk/intranet/skins/p192x.php
http://freerepresentationunit.org.uk/intranet/skins/p42x.php
http://freerepresentationunit.org.uk/intranet/skins/p135x.php
my mature tubes
tubes first
animal tube porn
www.bootytube247.com
lesbian porn tubes
Studded tubes
http://freerepresentationunit.org.uk/intranet/skins/p19x.php
teen lesbian tube video free
lobster tube porn
redt ube
25v clamping gas tube
free porn tube8
Fun fun fun games
the boob tube
peg tube feeding
http://freerepresentationunit.org.uk/intranet/skins/p194x.php
pornhub.net
gexo xtube
Tubegals
http://freerepresentationunit.org.uk/intranet/skins/p7x.php
teens redtube
http://freerepresentationunit.org.uk/intranet/skins/p109x.php
8tube porn
pinktube.com
http://freerepresentationunit.org.uk/intranet/skins/p177x.php
http://freerepresentationunit.org.uk/intranet/skins/p75x.php
wwwredtubecom
Tube teens
gay beastiality tube
free web tube porn
tubeyou
zuh zuh pets
shush tube.com
Sextube videos
animals bestiality tube
bbw porn tube videos
sex tube
TEEN TUBES
hq tube videos
poh tube
xtube
huge boob tube
dog sex tube
Bang tube.com
hand stand mixers
college porn tube
http://freerepresentationunit.org.uk/intranet/skins/p152x.php
big boob tube
Http://freerepresentationunit.org.uk/intranet/skins/p102x.php
Http://freerepresentationunit.org.uk/intranet/skins/p196x.php
petittube
filthtube.com
Gaytubevideos.com
inner tube
footfetishtube.com
beach sex tube
Twinksxtubeporn
http://freerepresentationunit.org.uk/intranet/skins/p200x.php
bbw porn tube
crazymaturetube
porn zoo
amateur porn tubes
fucktube.com
mature xxx tube
beasttube
mature redtube
porn tube
Http://freerepresentationunit.org.uk/intranet/skins/p231x.php
xtube berlin toilette
pornotube.com acount
Free driver education videos
Dudetubeonline
Http://freerepresentationunit.org.uk/intranet/skins/p76x.php
utube sex
Redtube.eu
yutube glasba
kick boxing
Http://freerepresentationunit.org.uk/intranet/skins/p26x.php
Http://freerepresentationunit.org.uk/intranet/skins/p172x.php
tubesfirst red tubecom
http://freerepresentationunit.org.uk/intranet/skins/p179x.php
http://freerepresentationunit.org.uk/intranet/skins/p136x.php
www.tube8
feels good tony toni tone
nudetubes
Yoytube
Hot tubes
PORN TUBE
tiavas tubes
Dirtyporn tube
file tube
http://freerepresentationunit.org.uk/intranet/skins/p246x.php
rockettube doctor
nudisten tube
College girl tube
sextube.com
all porn tubes
ssbbw tube movies
Tube teen
gas detection tube
lubetube com
tube365.com
redtubes
http://freerepresentationunit.org.uk/intranet/skins/p38x.php
dance xtube
hqtube.com
xtube comming soon
yotube com
fk tube
crocotube category
http://freerepresentationunit.org.uk/intranet/skins/p199x.php
zhu zhu pet accessories
rapetube
zoo tube 365 password
http://freerepresentationunit.org.uk/intranet/skins/p74x.php
zoo tube 365.com
hamsters free porn videos
sexy youtube
Yuvu tube
Crush fetish tube
Hot blonde having sex
psp sexy tubes
free extreme sex movies
Rtube
http://freerepresentationunit.org.uk/intranet/skins/p162x.php
Red tube videos
mom boy tube
porn bloopers tube
4tube.com
big natural tube
black lesbian tubes
redtube.co.uk
Bangtubecom
gay men sex videos
Xxx tube videos
beast tube
xxx sex tube 365
tubed porn
Free tube porn
hardcore porn tube
http://freerepresentationunit.org.uk/intranet/skins/p165x.php
pornoytube
Http://freerepresentationunit.org.uk/intranet/skins/p167x.php
jiss tube
retro porn tube search
sexy sex
yu tube sexs
http://freerepresentationunit.org.uk/intranet/skins/p78x.php
brazzerstube.com
sexytubesite
free porn tube red hub
animal sex tube video
solar bubble tube
http://freerepresentationunit.org.uk/intranet/skins/p50x.php
One tube oscillators
japanesetube
BEACH TUBE
nudetube
NUDETUBES
tubered.com
Incest redtube
free psp tubes adult
best free porn tubes
http://freerepresentationunit.org.uk/intranet/skins/p49x.php
FETISHTUBE
lolita tubes
Tube tops
youtube morrocan videos
Bestiality zootube 365
dog cum tube
xxx tube
Red tube4
best vacuum tubes
eskimotube.com
free gay sex tube
swanktube
redtube.comm

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 1414 entradas vindas de 40 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
Versão Mobile: aceda aqui

GOOGLE

Votação


Deveria o redeRIA organizar algum evento sobre RIA's ?? Sobre quais plataformas?
Ver Resultados

AUTORES


Eduardo KrausAlexandreBindableDaniel LopesDClick TeamEbercomEdgard DavidsonElvis FernandesFabiel PrestesFábio Batista da SilvaFabio da SilvaFlavia MoreiraGabriela T. PerryIgor MusardoJanderson CardosoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalMario JuniorMário SantosMauro MartinsPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com