Realmente...

Mudei pra Collection e funcionou... O problema é que ao tentar acessar o
objeto Grupo, dentro de Usuario, não consegui usando dataField. Tive que
fazer uma gambiarra pra funcionar. O DataGridColumn tem um método chamado *
labelFunction,* que serve pra tratar uma informação antes de ser
renderizada. Funcionou dessa forma:

<mx:DataGridColumn headerText="Grupo" labelFunction="{grupoBinding}"/>
public function grupoBinding(item:Object, column:DataGridColumn):String {
   return item.grupo.nomeGrupo.toString();
}

Ai eu pergunto, não existe uma forma de meus objetos em 2° nível
(Usuario->Grupo) ser reconhecido automaticamente, assim como acontece quando
uso os atributos em primeiro nível
(ex: <mx:DataGridColumn headerText="Nome" dataField="nome" />, sendo nome
atributo da classe Usuario) ?

[]'s

Silvio Luiz

On 7/11/07, Silvio Luiz <[EMAIL PROTECTED]> wrote:

> Não tenho certeza se essa é a solução(só devo poder testar em casa), mas
> lá vai...
>
> Parece que a conversão acontece sim de forma automática, e existe uma
> tabela de compatibilidade entre os tipos ActionScript(AMF3) e Java, que pode
> ser vista 
> aqui<http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=ent_services_config_097_08.html>
>  .
> Portanto creio que o result pode ser diretamente atribuído a um
> ArrayCollection, sem eu fazer um loop(como havia tentado no handler do
> Result) . Mas preciso retornar na classe Java Collection, ou
> Collection<MinhaClasse>, e eu estava retornando ArrayList<MinhaClasse>, quem
> puder testar antes de mim posta aqui pra ver se funciona!
>
> []'s
>
> Silvio Luiz
>
>  On 7/11/07, Silvio Luiz <[EMAIL PROTECTED] > wrote:
> >
> > Bem..
> >
> > Segundo o livedocs, 
> > nessa<http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=metadata_141_05.html>página,
> >  o ArrayElementType serve pra que um array só aceite valores de
> > determinado tipo, mais ou menos como é feito no Java5:
> >
> > Collection<String> colNomes, no AS seria:
> >
> > [ArrayElementType("String")]
> >     public var colNomes:Array;
> >
> > Só não fica claro se posso usar isso pra mapear classes Java mesmo..quem
> > souber... :)
> >
> >
> >  On 7/11/07, Silvio Luiz <[EMAIL PROTECTED] > wrote:
> > >
> > > Bom dia,
> > >
> > > Declaro em meu mxml um remoteObject, e através do GraniteDS, uso uma
> > > classe Java que me retorna uma coleção de objetos do tipo Usuario(com 
> > > nome,
> > > idade e um outro objeto Grupo, com descricao). A questão é, pra que eu use
> > > essa coleção como dataProvider de uma grid, como eu posso mapear 
> > > exatamente
> > > a minha classe pra que seus campos possam ser usados como datafield nas
> > > dataGrigColumns? Segundo o exemplo do graniteDS que trabalha com Ejb3, eu
> > > precisaria fazer algo assim:
> > >
> > >    [ArrayElementType("meuPacote.minhaClasse")]
> > >    [Bindable]
> > >    public var dados:ArrayCollection = new ArrayCollection();
> > >
> > > E no método ao retornar o result:
> > >
> > >      private function onResultGetUsuarios(event:ResultEvent):void{
> > >            var result:ArrayCollection = ArrayCollection(event.result);
> > >            for (var i:int = 0; i < result.length; i++) {
> > > *              var usuario:Usuario= Usuario(result.getItemAt(i));
> > > *              dados.addItem(usuario);
> > >            }
> > >       }
> > >
> > > Fazendo assim é gerado um erro, mas quando substituo a linha em
> > > negrito por:
> > >
> > >        var usuario:Object = Object(result.getItemAt(i));
> > >
> > > funciona! Mas apenas pra os dados primitivos de meu objeto Usuario, ou
> > > seja, apenas nome e idade.
> > > A pergunta é: eu realmente consigo usar esse ArrayElementType pra
> > > fazer o que estou pensando? Ou seja, mapear meu Pojo no lado do Flex? Se 
> > > não
> > > como eu posso fazer isso, preciso criar uma classe .AS pra mapear meu
> > > objeto? Meu objetivo é retornar uma coleção no "lado Java da força", e 
> > > usar
> > > o result no "lado Flex da força" como dataProvider de um componente 
> > > qualquer
> > > que eu queira..
> > >
> > > []'s
> > >
> > > Silvio Luiz
> > >
> >
> >
> >
> > --
> > Silvio Luiz
>
>
>
>
> --
> Silvio Luiz




--

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