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 .
- se ainda não baixou baixe o swiz-0.6.4-flex3.swz.
- 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:
-
<?xml version="1.0" encoding="utf-8"?>
-
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
-
preinitialize="{iniciar(event)}">
-
-
<mx:Script>
-
<![CDATA[
-
import com.saberprogramar.views.CidadeView;
-
import com.saberprogramar.views.EstadoView;
-
import mx.managers.PopUpManager;
-
import org.swizframework.Swiz;
-
import mx.events.FlexEvent;
-
-
private function iniciar(event:FlexEvent):void{
-
Swiz.setStrict(false).loadBeans( [Beans] );
-
}
-
-
private function chamarCidadeView():void{
-
PopUpManager.createPopUp(this,CidadeView,false);
-
}
-
-
private function chamarEstadoView():void{
-
PopUpManager.createPopUp(this,EstadoView,false);
-
}
-
-
]]>
-
</mx:Script>
-
<mx:Button x="10" y="22" label="Estado" height="52" width="88" click="{chamarEstadoView()}"/>
-
<mx:Button x="10" y="93" label="Cidade" width="88" height="54" click="{chamarCidadeView()}"/>
-
-
-
</mx:Application>
ficou agora assim:
-
<?xml version="1.0" encoding="utf-8"?>
-
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
-
xmlns:swiz="http://swiz.swizframework.org">
-
-
<mx:Script>
-
<![CDATA[
-
import mx.logging.LogEventLevel;
-
import com.saberprogramar.views.CidadeView;
-
import com.saberprogramar.views.EstadoView;
-
import mx.managers.PopUpManager;
-
import org.swizframework.Swiz;
-
import mx.events.FlexEvent;
-
-
private function chamarCidadeView():void{
-
PopUpManager.createPopUp(this,CidadeView,false);
-
}
-
-
private function chamarEstadoView():void{
-
PopUpManager.createPopUp(this,EstadoView,false);
-
}
-
-
]]>
-
</mx:Script>
-
-
<swiz:SwizConfig
-
strict="true"
-
eventPackages="com.saberprogramar.events"
-
mediateBubbledEvents="true"
-
viewPackages="com.saberprogramar.views"
-
beanLoaders="{[Beans]}"
-
logEventLevel="{LogEventLevel.WARN}"
-
/>
-
-
<mx:Button x="10" y="22" label="Estado" height="52" width="88" click="{chamarEstadoView()}"/>
-
<mx:Button x="10" y="93" label="Cidade" width="88" height="54" click="{chamarCidadeView()}"/>
-
-
</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
-
Swiz.addEventListener(CidadeEvent.SAVE,onSaveComplete);
-
Swiz.addEventListener(CidadeEvent.REMOVE,onRemoveComplete);
não precisamos fazer mais isso, pode apagar.. agora vá na função onSaveComplete e coloque o Mediate
-
[Mediate(event="CidadeEvent.SAVE")]
-
public function onSaveComplete(event:CidadeEvent):void{
-
stack.selectedChild = canvasDefault;
-
findAll();
-
}
o mesmo no onRemoveComplete
-
[Mediate(event="CidadeEvent.REMOVE")]
-
public function onRemoveComplete(event:CidadeEvent):void{
-
stack.selectedChild = canvasDefault;
-
findAll();
-
}
e como as duas funções fazem a mesma coisa podemos também utilizar de uma apenas assim:
-
[Mediate(event="CidadeEvent.SAVE")]
-
[Mediate(event="CidadeEvent.REMOVE")]
-
public function onSaveComplete(event:CidadeEvent):void{
-
stack.selectedChild = canvasDefault;
-
findAll();
-
}
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.
Popularity: 33% [?]
Tags: Código Fonte Flex, Código Fonte java, pratica java flex, Swiz Framework, TUTORIAL FLEX, TUTORIAL JAVA
Categoria(s):#JAVA + FLEX NA PRÁTICA, Action Script 3.0, Adobe Flex, Dicas, MVC, Swiz Framework












[...] Subscribe to the comments for this post? [...]
[...] This post was mentioned on Twitter by Paulo Fagundes Stos, Janderson F.Cardoso, Janderson F.Cardoso, Felipe, Fabiano Frizzo and others. Fabiano Frizzo said: RT @jandersonfc: : TUTORIAL JAVA+FLEX(9) - Atualizando o Swiz http://bit.ly/6vs3Fu [...]
Janderson, mais uma vez parabens por esse tutorial, e como vc ta dando sequencia nele, tem algumas q eu considero interessantes (melhor dizendo, eu tenho mais dificuldades), que seria tratamento de erros, e o relacionamento OneToMany,(tipo Venda e ItensVenda), onde todos so seriam gravados se nao houvesse nenhum tipo de erro, andei vendo algumas coisa na net, mas acabei nao conseguindo por pra rodar.
obrigado pelo comentário Rener, fico feliz em saber que estou ajudando de alguma forma
Sobre as sugestões são muito válidas, vou preparar um post sobre tratamento de erros e OneToMany, mas antes vou mostra relatórios, estou devendo para uma turma..hehe
Cumps.
Tá blz, o relatorio é algo q aguardo ansioso tbem, so nao havia comentado por que vc ja havia dito q iria mostrar, mas eu to ligadaço nessa sequencia e concerteza tudo que vier será lucro.
Obrigadoooooooo!