Esse artigo é continuação do
TUTORIAL JAVA + FLEX NA PRÁTICA 1/6
TUTORIAL JAVA + FLEX NA PRÁTICA 2/6
Na terceira a sexta(Final) parte do nosso tutorial vamos ser mais detalhado, explicando um pouco mais o que vamos fazer, até mesmo que o obejtivo principal do tutorial é daqui para frente.
Antes de mais nada crie mais um projeto chamado CrudFlex(Flex Project), este nosso projeto todo codificado vai ficar assim:

FRONTEND – FLEX BUILDER 3 + MVC COM SWIZ FRAMEWORK
Sobre o Adobe Flex nem preciso falar muita coisa já que a quantidade de material é satisfatória, só vale ressaltar que o beta do Flex 4 (Gumbo) já saiu mais neste projeto não atualizei, ok!
SWIZ FRAMEWORK
Esse é o principal motivo deste tutorial, mostrar para vocês um bom MVC para se utilizar em Adobe Flex, de uma linha de aprendizado rápido principalmente para quem vem do Java e está acostumado com o Spring Framework(IOC)
No Site oficial já se tem uma pequena demostração muito útil para entender como funciona o Swiz Framework (daqui pra frente o swiz).
Vamos ao que interessa, vamos a prática.
CONFIGURANDO O SWIZ FRAMEWORK
Antes de mais nada vamos fazer o download do swiz-x.x.x-data.swc (quando fiz este tutorial o arquivo era swiz-0.0.5-010609.swc). Depois de feito o download vamos colocar o nosso swiz.swc no pasta lib do nosso projeto CrudFlex.
Como disse inicialmente uma das grandes vantagens do Swiz é a similaridade com o Spring Framework, na configuração não poderia ser diferente, o conceito é baseada em cima de Beans, que vai mapear onde fica nossos services, delegates, controllers. Etc...
Vejamos o código do nosso Beans.mxml que fica na pasta raíz (src) do nosso projeto flex:
Beans.mxml
XML:
-
<?xml version="1.0" encoding="utf-8"?>
-
<beanLoader xmlns="org.swizframework.util.*"
-
xmlns:mx="http://www.adobe.com/2006/mxml"
-
xmlns:controllers="com.saberprogramar.controllers.*"
-
xmlns:delegates="com.saberprogramar.models.delegates.*">
-
-
<!-- custom channel set, because I am not compiling against services.xml -->
-
<dynamicChannelSet id="myAmfChannel">
-
<serverPort>8080</serverPort>
-
<contextRoot>/CrudJava</contextRoot>
-
</dynamicChannelSet>
-
-
<!-- estado service -->
-
<mx:RemoteObject id="estadoService"
-
destination="EstadoService"
-
channelSet="{myAmfChannel}"/>
-
-
<!-- delegate for the estado controller -->
-
<delegates:EstadoDelegate id="estadoDelegate"/>
-
-
<!-- estado controller -->
-
<controllers:EstadoController id="estadoController"/>
-
-
</beanLoader>
Vamos explicar:
BeansLoader – ao criar nosso arquivo e declará-lo como BeansLoader estamos dizendo para o Swiz que é aqui que fica o mapeamento dos nossos componentes, neste caso os seguintes componentes:
DynamicChannelSet – é onde vamos mapear o nosso projeto feito em Java informando o nome do projeto (CrudJava) e a porta onde está instalado o Web Container ou Application Server (no meu caso Tomcat – porta 8080) .
RemoteObject – aqui vamos informar algumas propriedades como
id - o nome que vamos referenciar dentro do nosso projeto flex os services ; destination - que é o id que colocamos no arquivo remoting-config.xml dentro do nosso projeto Java, para lembrar:
XML:
-
<destination id="EstadoService">
-
<properties>
-
<factory>spring</factory>
-
<source>EstadoService</source>
-
</properties>
-
</destination>
E também informamos o nosso channelSet, neste caso o id do nosso DynamicChannelSet
Delagates e Controllers– onde vamos mapear as classes que ainda vamos criar na próxima Parte deste Tutorial ( não vamos entrar em detalhes agora ).
Feito isso vamos informar para nossa aplicação que existe um BeanLoader do swiz, só colocar na nossa aplicação principal CrudFlex.mxml ou no meu caso que renomeei para índex.mxml, o código vai ficar assim:
Índex.mxml
XML:
-
<?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 org.swizframework.Swiz;
-
import mx.events.FlexEvent;
-
-
private function iniciar(event:FlexEvent):void{
-
Swiz.setStrict(false).loadBeans( [Beans] );
-
-
}
-
-
-
]]>
-
</mx:Script>
-
-
</mx:Application>
E por último no que diz respeito a configuração mais não menos importante vamos ter que adicionar no compiler do nosso projeto a configuração necessária para que futuramente as anotações do swiz possam ser ouvidas pelo nosso projeto Flex (sendo que testei sem esta configuração e também funcionou)
Botão direito do mouse no projeto CrudFlex – properties – Flex Compiler, e no campo onde se encontra o valor
-locale en_US
colocar
-locale en_US -keep-as3-metadata+=Autowire.
Bem é isso, na próxima vamos codificar o M(Models) do nosso MVC.
Vlw e até a próxima.