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

TUTORIAL JAVA + FLEX NA PRÁTICA (9) – Atualizando o Swiz

Colocado por Janderson Cardoso na(s) categoria(s): #JAVA + FLEX NA PRÀTICA, Action Script 3.0, Adobe Flex, código fonte Flex, Código Fonte java, Dicas, mvc, pratica java flex, Ria’s Geral, Swiz Framework, TUTORIAL FLEX, TUTORIAL JAVA em 01 26th, 2010 | 3 Comentários

 TUTORIAL JAVA + FLEX NA PRÁTICA (9)   Atualizando o Swiz

Outra dúvida muito solicitada por email pela galera é a respeito da atualização do swiz, quando atualiza o framework logo de kara dá erro,confesso que esse tempo todo não trabalhei com projetos usando o swiz, só quando fiz esse Tutorial, e também por falta de tempo, não atualizei o framework, mas esse final de semana para minha surpresa tentei migrar e foi super tranquilo, então vou passar a dica para vocês agora.

Esse artigo é continuação do

TUTORIAL JAVA + FLEX NA PRÁTICA 1/6

TUTORIAL JAVA + FLEX NA PRÁTICA 2/6

TUTORIAL JAVA + FLEX NA PRÁTICA 3/6

TUTORIAL JAVA + FLEX NA PRÁTICA 4/6

TUTORIAL JAVA + FLEX NA PRÁTICA 5/6

TUTORIAL JAVA + FLEX NA PRÁTICA 6/6

TUTORIAL JAVA + FLEX NA PRÁTICA 7/6 – Bônus

TUTORIAL JAVA + FLEX NA PRÁTICA 8 – Datas

Caso queira o projeto java é só baixar aqui (sem as libs).

Caso queira o projeto java é só baixar aqui.(com as libs).

Caso queira o projeto flex é só baixar aqui.

ATUALIZANDO O SWIZ FRAMEWORK

Primeira coisa que vamos fazer é baixar a última versão stable e atualmente (25/01/2009) é a swiz-0.6.4-flex3.swz. Digo isso porque vi no site da swiz que existe a versão alpha 1.0 do framework, esse sim pelo que vi terá algumas novidades notável, como metadata personalizado, estou migrando para essa versão 0.6.4 e quando lançar a 1.0 atualizo vocês por aqui no blog ;) . vamos ao que interessa .

  1. se ainda não baixou baixe o swiz-0.6.4-flex3.swz.
  2. na pasta libs do nosso projeto flex (CrudFlex) retiramos a antiga lib (swiz-0.0.5-010609.swc) e adicionamos a nova 0.6.4.

depois de ter feito isso vai dar erro na nossa models.delegates, isso porque a classe AbstractDelegate foi retirada do framework do swiz, basta retirar o extends AbstractDelegate que nossa classe voltará a funcionar, se vc tentar rodar agora já vai funcionar, blz.. espero que tenha ajudado muita gente.

Tô brincando galera… já que é para atualizar vamos atualizar direito..hehe assim funciona mais não está de acordo com a documentação do Swiz.

Próximo passo nosso será criar o nosso SwizConfig, no nosso projeto na index.mxml temos um preinitialize que invocava a funcção que iniciava o Swiz, agora temos o Swiz config que substitui essa antiga configuração, então nosso index.mxml era assim:

PLAIN TEXT
XML:

  1. <?xml version=“1.0″ encoding=“utf-8″?>
  2. <mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“absolute”
  3.     preinitialize=“{iniciar(event)}”>
  4.    
  5.     <mx:Script>
  6.         <![CDATA[
  7.             import com.saberprogramar.views.CidadeView;
  8.             import com.saberprogramar.views.EstadoView;
  9.             import mx.managers.PopUpManager;
  10.             import org.swizframework.Swiz;     
  11.             import mx.events.FlexEvent;   
  12.            
  13.             private function iniciar(event:FlexEvent):void{    
  14.                 Swiz.setStrict(false).loadBeans( [Beans] );           
  15.             }
  16.            
  17.             private function chamarCidadeView():void{
  18.                 PopUpManager.createPopUp(this,CidadeView,false);
  19.             }
  20.            
  21.             private function chamarEstadoView():void{
  22.                 PopUpManager.createPopUp(this,EstadoView,false);
  23.             }
  24.            
  25.         ]]>
  26.     </mx:Script>
  27.     <mx:Button x=“10″ y=“22″ label=“Estado” height=“52″ width=“88″ click=“{chamarEstadoView()}”/>
  28.     <mx:Button x=“10″ y=“93″ label=“Cidade” width=“88″ height=“54″ click=“{chamarCidadeView()}”/>
  29.    
  30.    
  31. </mx:Application>

ficou agora assim:

PLAIN TEXT
XML:

  1. <?xml version=“1.0″ encoding=“utf-8″?>
  2. <mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“absolute”
  3.     xmlns:swiz=“http://swiz.swizframework.org”>
  4.    
  5.     <mx:Script>
  6.         <![CDATA[
  7.             import mx.logging.LogEventLevel;
  8.             import com.saberprogramar.views.CidadeView;
  9.             import com.saberprogramar.views.EstadoView;
  10.             import mx.managers.PopUpManager;
  11.             import org.swizframework.Swiz;     
  12.             import mx.events.FlexEvent;   
  13.                                    
  14.             private function chamarCidadeView():void{
  15.                 PopUpManager.createPopUp(this,CidadeView,false);
  16.             }
  17.            
  18.             private function chamarEstadoView():void{
  19.                 PopUpManager.createPopUp(this,EstadoView,false);
  20.             }
  21.            
  22.         ]]>
  23.     </mx:Script>
  24.    
  25.     <swiz:SwizConfig
  26.         strict=“true”
  27.         eventPackages=“com.saberprogramar.events”
  28.         mediateBubbledEvents=“true”
  29.         viewPackages=“com.saberprogramar.views”
  30.         beanLoaders=“{[Beans]}”  
  31.         logEventLevel=“{LogEventLevel.WARN}”
  32.     />
  33.    
  34.     <mx:Button x=“10″ y=“22″ label=“Estado” height=“52″ width=“88″ click=“{chamarEstadoView()}”/>
  35.     <mx:Button x=“10″ y=“93″ label=“Cidade” width=“88″ height=“54″ click=“{chamarCidadeView()}”/>
  36.        
  37. </mx:Application>

tá, mas se funcionava antes porque vou fazer isso? explico, está vendo esse viewPackages e eventPackeges, isso é muito importante para usar uma nova Metadata do Swiz, o mediate, tinha na versão anterior mas não era interessante como agora , já que agora conseguimos passar para o nosso Mediate nosso Evento customizado, tudo isso graças a esse atributo eventPackeges. Além disso na 1.0 esse arquivo vai ser mantido pelo que vi, então você estará mais próximo para atualizar quando o mesmo for lançado.

USANDO O MEDIATE

Mas afinal o que é esse Mediate? o Mediate é uma Metadata, assim como usamos o Autowire, que serve para não precisar ficar adicionando escuta de eventos, vamos explicar na prática… vá em “views.action.CidadeAction” na função init temos duas escuta de evento

PLAIN TEXT
ACTIONSCRIPT:

  1. Swiz.addEventListener(CidadeEvent.SAVE,onSaveComplete);
  2.     Swiz.addEventListener(CidadeEvent.REMOVE,onRemoveComplete);

não precisamos fazer mais isso, pode apagar.. agora vá na função onSaveComplete e coloque o Mediate

PLAIN TEXT
ACTIONSCRIPT:

  1. [Mediate(event=“CidadeEvent.SAVE”)]
  2. public function onSaveComplete(event:CidadeEvent):void{ 
  3.     stack.selectedChild = canvasDefault;
  4.     findAll();
  5. }

o mesmo no onRemoveComplete

PLAIN TEXT
ACTIONSCRIPT:

  1. [Mediate(event=“CidadeEvent.REMOVE”)]
  2. public function onRemoveComplete(event:CidadeEvent):void{
  3.     stack.selectedChild = canvasDefault;
  4.     findAll();
  5. }

e como as duas funções fazem a mesma coisa podemos também utilizar de uma apenas assim:

PLAIN TEXT
ACTIONSCRIPT:

  1. [Mediate(event=“CidadeEvent.SAVE”)]
  2. [Mediate(event=“CidadeEvent.REMOVE”)]
  3. public function onSaveComplete(event:CidadeEvent):void{ 
  4.     stack.selectedChild = canvasDefault;
  5.     findAll();
  6. }

só observe que foi necessário modificar o “modificador de acesso” para public, caso contrário não funciona.

Agora sim é isso galera, o swiz está por enquanto atualizado, vi alguns exemplos na internet usando coisas que nunca vi no swiz(Documentação) por isso me retive e mostrei baseado na documentação… seguindo os passos do mesmo..(Os delegates não são mais necessários mas já que está aí resolvi manter). Espero que te ajude e estimule a manter o framework atualizado, porque esse merece seu carinho e atenção :)

Cumps.

  • Share this on del.icio.us
  • Digg this!
  • Share this on Reddit
  • Share this on Technorati
  • Share this on Facebook
  • Tweet This!
  • Subscribe to the comments for this post?
  • Share this on FriendFeed
  • Send this page to Print Friendly

Similar Posts:

  • TUTORIAL JAVA + FLEX NA PRÁTICA 3/6
  • TUTORIAL JAVA + FLEX NA PRÁTICA 6/6
  • TUTORIAL JAVA + FLEX NA PRÁTICA 4/6
  • TUTORIAL JAVA + FLEX NA PRÁTICA 5/6
  • TUTORIAL JAVA + FLEX NA PRÁTICA 7/6 – Bônus

 TUTORIAL JAVA + FLEX NA PRÁTICA (9)   Atualizando o Swiz



Veja o post original no blog do autor aqui!  

Janderson Cardoso

Escrito por Janderson Cardoso @ http://www.jandersonfc.com/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» TUTORIAL JAVA + FLEX NA PRÁTICA 7/6 - Bônus
» criar um Gerador de Relatório
» Desativando o Blog

Comentários ( 3 )
 

Boa Janderson, muito legal a máteria, gostei muito, estou iniciando no flex e essa matéria me ajudou muito, fez com que eu entendece muito melhor a integração entre esses frameworks.
Bom, mas é claro como a maioria estou com um problema que não consigo resolver implementei até a parte 6/6 mas agora que a aplicação está pronta não consigo descobrir porque o swinz não consegue setar o controller ele me retorna o erro abaixo, se puder me ajudar, ou alguém ai puder fico muito grato:
TypeError: Error #1009: N??oss?l acessar uma propriedade ou um m?do de uma refer?ia de objeto nula.
at com.saberprogramar.assets.views::EstadoView/findAll()[D:\workspace\CrudJava\flex_src\com\saberprogramar\assets\views\actions\EstadoAction.as:22]
at com.saberprogramar.assets.views::EstadoView/init()[D:\workspace\CrudJava\flex_src\com\saberprogramar\assets\views\actions\EstadoAction.as:18]
at com.saberprogramar.assets.views::EstadoView/___EstadoView_TitleWindow1_creationComplete()[D:\workspace\CrudJava\flex_src\com\saberprogramar\assets\views\EstadoView.mxml:5]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]
at mx.core::UIComponent/set initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169]
at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628]
at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]

Reginaldo juntou estes bytes...

Pessoal resolvi o problema acima, na verdade foi meio que bobeira (isso que dá programar até tarde da noite kkk), tinha mapeado uma das tags: no applicationContext.xml errado, meu pacote é um pouco diferente do exemplo e também tinha faltado a implementar a classe
FactoryService
vlw!

Reginaldo juntou estes bytes...

Bem, apesar de todas as dificuldades eu consegui importar o projeto com sucesso e executa-lo também.. Ficou algumas coisas em aberto que não consegui resolver, primeiro de tudo como é a exportação desse projeto para rodar em um cliente? O projeto é dividido em duas partes? projeto CrudJava e projeto CrudFlex ?? Foi assim que ficou no meu.. esta correto?

Jonas Teixeira de Freitas juntou estes bytes...
Deixe um comentário



Spam Protection by WP-SpamFree

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 2795 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