Show de bola Mario, agora esta de acordo com o que eu esperava, assim
que entrar em teste posto o link aqui pro pessoal da uma olhada. Fiz
um site com um sistema de cadastro de relatorio por tras parecido com
um Word layout, acho ficou bem legal pra essa primeira versao.

abraços


2009/10/13 Frederico Lellis <[email protected]>:
> Nossa, mais uma vez obrigado Mario, não conhecia esse <mx:Binding> e é
> justamente o que quero, eu prefiro 5000000000 vezes usar mxml :D
>
> abraços
>
> PS: Vou dar um CC para o flex-dev, abraços.
>
> 2009/10/13 Mário Júnior <[email protected]>:
>> o.O ???
>> Eu "bindo" os meus componentes diretamente com os meus VOs no Flex... sem
>> problema algum :)
>>
>> Vamos assumir o exemplo:
>>
>> objeto "pessoa":
>> class Pessoa {
>>    public var nome : String;
>>    public var idade : int;
>>    public var dataNascimento : Date  <-- Tipo Date
>>
>> }
>>
>>
>> No meu formulario MXML:
>> <mx:TextInput id="tiNome" text="{pessoa.nome}" />
>> <mx:TextInput id="tiIdade" text="{pessoa.idade}" />
>> <mx:DateField id="dfData" selectedDate="{pessoa.dataNascimento}" /> (ATENÇAO
>> para as propriedades Date)
>>
>>
>> Ok... só com isso, qnd vc carregar uma objeto pessoa, os DADOS DO OBJETO vão
>> aparecer nos controles (objeto ==> controle), isso por causa do databinding
>> {  }.  Até aí já imagino q vc já tenha visto... blz!
>>
>>
>> Agora... se vc quer SETAR DADOS DO CONTROLE NO COMPONENTE (controle
>> ==>objeto), vc pode usar isso no seu MXML:
>>
>> <mx:Binding source="tiNome.text"  destination="pessoa.nome" />
>> <mx:Binding source="int(tiIdade.text)"  destination="pessoa.idade" />
>> (ATENÇAO para o cast no source)
>> <mx:Binding source="dfData.selectedDate"
>> destination="pessoa.dataNascimento" />
>>
>>
>> Com isso.. toda mudança q vc faz nos controles, já irao refletir diretamente
>> no objeto!
>> Esse <mx:Binding/> te poupa ter q fazer isso no AS3:
>>
>> var p : Pessoa = new Pessoa();
>> p.nome = tiNome.text;
>> p.idade = int(tiIdade.text);
>> p.dataNascimento = dfData.selectedDate;
>>
>>
>> Só mesmo quem não conhece <mx:Binding> ainda faz esse treco de cima :)
>>
>>
>> Se vc for um cara meio "xiita"  (como alguns q tenho conhecido ultimamente)
>> e nao gosta de usar mxml (mal sabe o poder q perde), é possivel fazer a
>> mesma coisa com AS3 usando a classe BindingUtils.
>>
>>
>> Espero q tenha compreendido.
>>
>>
>> Abraços.
>>
>>
>> (Acho q só nós q estamos nessa lista ainda =D... nao sei se os alunos
>> continuam recebendo ela. Talvez seria interessante mover as duvidas para a
>> Flexdev.)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2009/10/13 Frederico Lellis <[email protected]>
>>>
>>> Bom dia Mario,
>>>
>>> Primeiramente, obrigado pela ajuda.
>>> Acabei optando pela opção de setar na mão mesmo pelo lado do java
>>> antes de mandar para o banco, (sim, estou usando o Hibernate). Até fui
>>> pela opção numero 4 mas como não estou com muito tempo, acabei
>>> desistindo nesse primeiro momento de usar a reflection, assim como a
>>> opção numero 3. Assim que o sistema entrar em homologação eu
>>> implemento essa solução mais elegante.
>>>
>>> Ponto negativo Flex Vs JSF:
>>>
>>> Por trabalhar com JSF a algum tempo e esta com o Vicio de "bindar" os
>>> input direto nas entidades, ou VO´s, descobri agora nos 45 do segundo
>>> tempo que no flex nao se trabalha assim, lendo a documentação da adobe
>>> sobre data binding vi que eles setam na mao os valores vindos dos
>>> componentes nos VO´s.
>>>
>>> A unica maneira que consegui setar direto nos VO´s foi usando
>>> valueChange, mas com certeza não é a melhor forma e nem a que
>>> utilizei. Acabei tendo de fazer mais um monte de linha de codigo para
>>> fazer os updateModel de cada tela.
>>>
>>> Mais um vez obrigado pela ajuda.
>>>
>>> abraços.
>>>
>>>
>>> 2009/10/10 Mário Júnior <[email protected]>:
>>> > Ola Frederico.... cara.. ja tive muito essas encheçoes de saco do
>>> > BlazeDS...
>>> > vc tem 4 formas de resolver isso:
>>> >
>>> > 1) No setter do seu id, vc pode verificar se o valor passado no
>>> > argumento
>>> > for 0 (zero), entao sete-o para null.
>>> >
>>> > 2) Caso vc nao queira "poluir" suas entidades com essa validacao chata,
>>> > vc
>>> > poderá validar isso nas suas classes de servicos.
>>> > Qnd vc receber uma entidade com id == 0, entao sete-a para null. É a
>>> > mesma
>>> > coisa da solução anterior, só mudamos de lugar nao mais no setter da
>>> > entidade, mas agora fazer na classe de servico antes de passar o seu
>>> > objeto
>>> > para seu dao ( receio q esteja usando algum ORM - i.e hibernate).
>>> >
>>> >
>>> > Essas duas solções funcionam, mas podem ser um pouco "chatas" uma vez q
>>> > se
>>> > terá SEMPRE q fazer o "if (entidade.getId == 0)" ...
>>> > Entao se o programador esquecer de fazer isso em algum momento, já era!
>>> > Além
>>> > de tornar a pratica repetitiva, está sujeita a falhas.
>>> >
>>> > Agora... vou falar as outras duas formas.... prepare-se para imergir no
>>> > mundo BlazeDS (yes! Imersão BlazeDS.. hehe)
>>> >
>>> >
>>> > Seguinte.. 98% dos usuarios java/flex que usam BlazeDS mal conhecem sua
>>> > estrutura, por isso se perdem com essas coisas.
>>> > Oq vou dizer aqui vi pouca gente usar, lá vai.
>>> >
>>> >
>>> > 3) Criar seu fork do BlazeDS:
>>> > Baixe o source do BlazeDS, abra a classe Amf3Input.java e sobrescreva o
>>> > metodo read(), inserindo o seguine trecho de codigo:
>>> >
>>> > @Override
>>> > public Object readObject() throws ClassNotFoundException, IOException {
>>> >     Object value = super.readObject();
>>> >     if (value instanceOf Double && ((Double).value).isNaN()){
>>> >         value = null;
>>> >     }
>>> >
>>> >     return value;
>>> >
>>> > }
>>> >
>>> >
>>> > Muita atenção para esse trecho: ((Double).value).isNaN())
>>> > Isso significa que se o Flex me mandar um NaN (Nota a Number) vou
>>> > converte-lo para null, e nao para 0 (zero) como é o procedimento normal.
>>> > É aí q está o segredo da serialização de numeros (long / int) entre Fx
>>> > <=>
>>> > Java!
>>> >
>>> > Alterada a classe, compile o BlazeDS e utilize sua versao propria.
>>> >
>>> >
>>> >
>>> > 4) (A forma que EU uso)
>>> > O BlazeDS é flexível a ponto de eu criar meu proprio Adapter (classe
>>> > responsavel por invocar as suas classes de serviço no Java).
>>> > Entao, oq eu faço é extender a classe JavaAdapter e sobreescrever o
>>> > método
>>> > invoke()
>>> > Nesse ponto vc tem acesso aos parametros (de entrada e saída) de
>>> > serialização.
>>> > Com isso em maos, vc pode usar Reflexao para validar/alterar os valores
>>> > q
>>> > chegam do Flex (e os q vao tb).
>>> >
>>> > Assim fica mais generico, e bem mais reaproveitavel.
>>> >
>>> >
>>> > Espero ter ajudado.
>>> >
>>> > Abraços.
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > 2009/10/10 Frederico Lellis <[email protected]>
>>> >>
>>> >> Voltando, consegui gerar os VO´s com sucesso e ate persistir no banco,
>>> >> porem estou enfrentando um problema que talvez alguem possa me ajudar.
>>> >>
>>> >> Eu passo algumas entidades, com o pk_id:Number null porem ao converter
>>> >> para o Java ele transforma isso em 0, o que é o correto, porem eu
>>> >> preciso que chegue com null para ao persistir o banco criar um novo
>>> >> registro na tabela em questao e nao ir procurar por um registro ja
>>> >> existente com pk_id = 0.
>>> >>
>>> >> Teria como ao converter no blazeds eu indicar que se um number é igual
>>> >> a 0 tranformar em null? Porque estou tendo que fazer isso incode mas é
>>> >> inviável pois tenho mais 90 entidades para checar isso.
>>> >>
>>> >> valeu.
>>> >>
>>> >> abraços.
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> 2009/9/25 Frederico Lellis <[email protected]>:
>>> >> > Concordo com voce sobre a mudança da arquitetura no meio do projeto
>>> >> > mas,
>>> >> > como esse é meu primeiro grande projeto Flex + Java acabo que nao
>>> >> > conheço o
>>> >> > bastante ainda pra definir de inicio a arquitetura de todo o sistema.
>>> >> > Ele ta
>>> >> > sendo meio que a minha cobaia, o problema é que o cliente nao quer
>>> >> > saber
>>> >> > disso ne? Heehehehehehe
>>> >> >
>>> >> > abraços.
>>> >> >
>>> >> >
>>> >> > 2009/9/25 Frederico Lellis <[email protected]>
>>> >> >>
>>> >> >> Basicamente mudei mesmo so por causa do GAS, porque como disse tenho
>>> >> >> muitos VO´s e so encontrei o GAS do granite pra fazer isso pra mim.
>>> >> >> O
>>> >> >> problema do Lazy ainda nem cheguei la.
>>> >> >> Vou testar essa nova arquitetura com o BlazeDS e o FCG e retorno com
>>> >> >> o
>>> >> >> resultado.
>>> >> >>
>>> >> >> Valeu Mario.
>>> >> >>
>>> >> >> abraços.
>>> >> >>
>>> >> >> 2009/9/25 Mário Júnior <[email protected]>
>>> >> >>>
>>> >> >>> Acho meio punk a decisao de trocar um middleware da sua arquitetura
>>> >> >>> só
>>> >> >>> por causa da geracao de codigo.
>>> >> >>> Se a questao é só a geraçao dos vos em as3, use esse cara aqui:
>>> >> >>> http://www.dehats.com/drupal/?q=node/7
>>> >> >>>
>>> >> >>> Funciona perfeitamente, mas como disse no começo, acho q sua
>>> >> >>> escolha
>>> >> >>> deve
>>> >> >>> ter sido baseado em alguma outra coisa... pq optou usar o Granite?
>>> >> >>> Veja bem,
>>> >> >>> nao sou contra o granite, até gosto dele, mas ele é um pouco mais
>>> >> >>> lento q o
>>> >> >>> BlazeDS e as vezes (em casos especificos) ele é muito intrusivo na
>>> >> >>> arquitetura. (Por exemplo, seus entities terem q ser Externalizable
>>> >> >>> só
>>> >> >>> para
>>> >> >>> contornar o lazy-loading do hibernate).
>>> >> >>>
>>> >> >>> Só usei o granite uma vez, qnd realmente precisei criar um projeto
>>> >> >>> do
>>> >> >>> zero com ele.
>>> >> >>>
>>> >> >>> Abraços.
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>> 2009/9/25 Frederico Lellis <[email protected]>
>>> >> >>>>
>>> >> >>>> O grande problema Mario é que eu preciso usar o GAS do GraniteDS
>>> >> >>>> porque
>>> >> >>>> tenho cerca de uns 150 VO. Por isso passei a usar o graniteds.
>>> >> >>>>
>>> >> >>>> abraços
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> 2009/9/25 Mário Júnior <[email protected]>
>>> >> >>>>>
>>> >> >>>>> Entao, pq nao invocar o EJB com o BlazeDS direto da sua camada de
>>> >> >>>>> servicos/facade usando context?
>>> >> >>>>> Da uma olhada na documentaçao do BlazeDS q tem um exemplo bem
>>> >> >>>>> simples.
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>> 2009/9/25 Frederico Lellis <[email protected]>
>>> >> >>>>>>
>>> >> >>>>>> Boa dia a todos da lista,
>>> >> >>>>>>
>>> >> >>>>>> Estou com um projeto que estava utilizando o BlazeDS para fazer
>>> >> >>>>>> a
>>> >> >>>>>> comunicação entre flex e java. E estava acessando o projeto WAR
>>> >> >>>>>> e
>>> >> >>>>>> nao o EJB.
>>> >> >>>>>> Tive que mudar para GraniteDS e chamar o EJB direto so que agora
>>> >> >>>>>> nao consigo
>>> >> >>>>>> por nada fazer funcionar. Tirei SS das minhas configurações e
>>> >> >>>>>> estrutura do
>>> >> >>>>>> projeto se alguem puder me dar uma ajuda ficarei muito grato.
>>> >> >>>>>>
>>> >> >>>>>> abraços.
>>> >> >>>>>>
>>> >> >>>>>> --
>>> >> >>>>>> --
>>> >> >>>>>> ******************************************************
>>> >> >>>>>>
>>> >> >>>>>> Frederico Lellis de Albuquerque
>>> >> >>>>>> Analista Desenvolvedor Java/Flex Pleno.
>>> >> >>>>>> Graduado Em Ciência da Computação
>>> >> >>>>>> [email protected]
>>> >> >>>>>>
>>> >> >>>>>> ******************************************************
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>> --
>>> >> >>>>> Mario Junior
>>> >> >>>>> Enterprise Java / Flex Architectures
>>> >> >>>>> Adobe Certified Expert Flex 3 with AIR
>>> >> >>>>>
>>> >> >>>>> Sofshore Informática
>>> >> >>>>> http://www.sofshore.com.br
>>> >> >>>>> +55 (48) 3337 2003
>>> >> >>>>> Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100
>>> >> >>>>> Itacorubi
>>> >> >>>>> Florianopolis SC Brasil
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> --
>>> >> >>>> --
>>> >> >>>> ******************************************************
>>> >> >>>>
>>> >> >>>> Frederico Lellis de Albuquerque
>>> >> >>>> Analista Desenvolvedor Java/Flex Pleno.
>>> >> >>>> Graduado Em Ciência da Computação
>>> >> >>>> [email protected]
>>> >> >>>>
>>> >> >>>> ******************************************************
>>> >> >>>>
>>> >> >>>>
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>> --
>>> >> >>> Mario Junior
>>> >> >>> Enterprise Java / Flex Architectures
>>> >> >>> Adobe Certified Expert Flex 3 with AIR
>>> >> >>>
>>> >> >>> Sofshore Informática
>>> >> >>> http://www.sofshore.com.br
>>> >> >>> +55 (48) 3337 2003
>>> >> >>> Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100
>>> >> >>> Itacorubi
>>> >> >>> Florianopolis SC Brasil
>>> >> >>>
>>> >> >>> >>>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> --
>>> >> >> --
>>> >> >> ******************************************************
>>> >> >>
>>> >> >> Frederico Lellis de Albuquerque
>>> >> >> Analista Desenvolvedor Java/Flex Pleno.
>>> >> >> Graduado Em Ciência da Computação
>>> >> >> [email protected]
>>> >> >>
>>> >> >> ******************************************************
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> > --
>>> >> > ******************************************************
>>> >> >
>>> >> > Frederico Lellis de Albuquerque
>>> >> > Analista Desenvolvedor Java/Flex Pleno.
>>> >> > Graduado Em Ciência da Computação
>>> >> > [email protected]
>>> >> >
>>> >> > ******************************************************
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> --
>>> >> ******************************************************
>>> >>
>>> >> Frederico Lellis de Albuquerque
>>> >> Analista Desenvolvedor Java/Flex Pleno.
>>> >> Graduado Em Ciência da Computação
>>> >> [email protected]
>>> >>
>>> >> ******************************************************
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Mario Junior
>>> > Enterprise Java / Flex Architectures
>>> > Adobe Certified Expert Flex 3 with AIR
>>> >
>>> > Sofshore Informática
>>> > http://www.sofshore.com.br
>>> > +55 (48) 3337 2003
>>> > Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100
>>> > Itacorubi
>>> > Florianopolis SC Brasil
>>> >
>>> > >
>>> >
>>>
>>>
>>>
>>> --
>>> --
>>> ******************************************************
>>>
>>> Frederico Lellis de Albuquerque
>>> Analista Desenvolvedor Java/Flex Pleno.
>>> Graduado Em Ciência da Computação
>>> [email protected]
>>>
>>> ******************************************************
>>>
>>>
>>
>>
>>
>> --
>> Mario Junior
>> Enterprise Java / Flex Architectures
>> Adobe Certified Expert Flex 3 with AIR
>>
>> Sofshore Informática
>> http://www.sofshore.com.br
>> +55 (48) 3337 2003
>> Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
>> Florianopolis SC Brasil
>>
>> >>
>>
>
>
>
> --
> --
> ******************************************************
>
> Frederico Lellis de Albuquerque
> Analista Desenvolvedor Java/Flex Pleno.
> Graduado Em Ciência da Computação
> [email protected]
>
> ******************************************************
>



-- 
-- 
******************************************************

Frederico Lellis de Albuquerque
Analista Desenvolvedor Java/Flex Pleno.
Graduado Em Ciência da Computação
[email protected]

******************************************************

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a