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