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





