Valeu Obrigado, vou fazer mais testes aqui... vou testa com o
ArraCollection pra ve se eu consigo manipular os Filhos.... :)

Mas ainda estou curioso quanto ao fato de mudando somente aquele tipo
de acesso possibilitar ou impossibilitar o acesso ao atributo/
Objeto....
é muito estratanho.....

Sandro Mueller

On 14 jul, 18:48, "Silvio Luiz" <[EMAIL PROTECTED]> wrote:
> O usuario é uma classe publica..o que eu retorno é uma coleção de Usuarios,
> e cada usuario tem um grupo. O que na pratica voce precisa fazer, usando
> RemoteObject, é na resposta do result do seu RemoteObject específico. Nessa
> função você converte a resposta dessa forma(essa é minha função de retorno
> do meu método do RemoteObject):
>
>             private function onResultGetUsuarios(event:ResultEvent):void{
>                 dados = ArrayCollection(event.result);
>             }
>  sendo que dados é uma variável que precisa ser declarada dessa forma:
>
> [Bindable]
>  public var dados:ArrayCollection = new ArrayCollection();
>
> O dataProvider é o cara responsável por passar os dados pra um componente,
> seja uma grid, uma combo..
>
> On 7/14/07, Aranha <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > ja tentou manipular ele na mão???
> > eu estou começando em Flex e não sei como usar estes DataProvider mas
> > pelo que eu entendi eu mando um "array" pra ele e ele renderisa no
> > componente al qual ele esta ligado, correto?
>
> > Sandro Mueller
>
> > On 14 jul, 18:18, "Silvio Luiz" <[EMAIL PROTECTED]> wrote:
> > > Na verdade a situação que testei foi um pouco diferente. Meu metodo de
> > > retorno do resulto do meu httpservice traz uma coleção de objetos
> > usuario.
> > > Entao criei um arrayCollection pra utilizar como dataprovider de uma
> > grid.
> > > As considerações que fiz se aplicam a utilizar o dataField de um
> > > dataGrigColumn... De qualquer sorte é possível retornar um objeto em
> > segundo
> > > nível(no meu caso do dataGrid) usando labelFuntion do dataGridColum..e
> > ai
> > > consigo fazer : meuDataProvider.usuario.grupo. Detalhe, grupo na minha
> > > entidade usuario é private...
>
> > > On 7/14/07, Aranha <[EMAIL PROTECTED]> wrote:
>
> > > > Seguinte, desculpe-me, mas, não tentendi o que vc quiz dizer. Fiz
> > > > alguns teste de descobri o seguinte:
> > > > quando tenho um atributo na minha classe java do tipo String consigo
> > > > acessa-lo tanto faz se ele é public ou private, porém quando tenho um
> > > > atributo do tipo Filhos(um classe criada por mim) so consigo acessar
> > > > se a minha instancia de filhos for public....
>
> > > > Alguém sabe me explicar porque???
> > > > Segue abaixo classes envolvidas na questão:
>
> > > > Usuário:
> > > > package test.pojo;
> > > > public class Usuario {
> > > >         private int id;
> > > >         private String nome;
> > > >         private String sobreNome;
> > > >         private Filhos filhos;  // se aqui for public funciona....
> > estou
> > > > achando muito estranho
>
> > > >         public Usuario(int id, String nome, String sobreNome) {
> > > >                 this.setId(id);
> > > >                 this.setNome(nome);
> > > >                 this.setSobreNome(sobreNome);
> > > >                  this.setFilhos("Agata", "Heitor");
> > > >         }
>
> > > >         public String teste() {
> > > >                 return "Deu certo";
> > > >         }
>
> > > >         public Integer getId() {
> > > >                 return this.id;
> > > >         }
> > > >         public void setId(Integer id) {
> > > >                 this.id = id;
> > > >         }
> > > >         public String getNome() {
> > > >                 return this.nome;
> > > >         }
> > > >         public void setNome(String nome) {
> > > >                 this.nome = nome;
> > > >         }
> > > >         public String getSobreNome() {
> > > >                 return this.sobreNome;
> > > >         }
> > > >         public void setSobreNome(String sobreNome) {
> > > >                 this.sobreNome = sobreNome;
> > > >         }
>
> > > >         public void setFilhos(String filho1, String filho2) {
> > > >                 this.filhos = new Filhos(filho1, filho2);
> > > >         }
>
> > > >         public Filhos getFilhos() {
> > > >                 return this.filhos;
> > > >         }
> > > > }
>
> > > > Filhos:
> > > > package test.pojo;
> > > > public class Filhos {
> > > >         private String filho1;
> > > >         private String filho2;
>
> > > >         public Filhos(String filho1, String filho2) {
> > > >                 setFilho1(filho1);
> > > >                 setFilho2(filho2);
> > > >         }
>
> > > >         public String getFilho1() {
> > > >                 return this.filho1;
> > > >         }
> > > >         public void setFilho1(String filho1) {
> > > >                 this.filho1 = filho1;
> > > >         }
> > > >         public String getFilho2() {
> > > >                 return this.filho2;
> > > >         }
> > > >         public void setFilho2(String filho2) {
> > > >                 this.filho2 = filho2;
> > > >         }
> > > > }
>
> > > > Flex:
> > > > <?xml version="1.0" encoding="utf-8"?>
>
> > > > <mx:Application
> > > >     xmlns:mx="http://www.adobe.com/2006/mxml";
> > > >     xmlns="*"
> > > >     xmlns:cs="test.granite.components.*"
> > > >     xmlns:et="test.granite.ejb3.entity.*"
> > > >     layout="vertical">
>
> > > >     <mx:Script>
> > > >         <![CDATA[
> > > >                 import mx.messaging.Producer;
> > > >                 import
> > > > mx.charts.effects.effectClasses.SeriesInterpolateInstance;
>
> > > >             import mx.controls.Alert;
> > > >             import mx.rpc.events.ResultEvent ;
> > > >             private function onRetornaUsuario(event:ResultEvent):void{
> > > >                 var usuario:Object = Object(event.result);
> > > >                 mx.controls.Alert.show("Eu, "+usuario.nome+'
> > > > '+usuario.sobreNome+", tenho 2 filhos: "+usuario.filhos.filho1+" e
> > > > "+usuario.filhos.filho2);
> > > >                 }
> > > >         ]]>
> > > >     </mx:Script>
>
> > > >     <mx:RemoteObject id="srvHelloWorld"
> > > >         showBusyCursor="true"
> > > >         destination="HelloWorldService"
> > > >         result="onRetornaUsuario(event)" />
> > > >     <mx:Button label="Pega Usuário"
> > > > click="srvHelloWorld.retornaUsuario()"/>
>
> > > > </mx:Application>
>
> > > > Desde já, Obrigado.
>
> > > > On 14 jul, 15:46, "Silvio Luiz" <[EMAIL PROTECTED]> wrote:
> > > > > A chamada que você faz no flex é via o nome do atributo, mas pra que
> > ele
> > > > > acesse o valor do mesmo na sua classe, é necessário existir  um
> > getter
> > > > pra
> > > > > recuperar o valor...Mesmo que o atributo seja público você não
> > consegue
> > > > > acessar seu valor no flex sem o getter.
>
> > > > > Att,
>
> > > > > Silvio Luiz
>
> > > > > On 7/14/07, Ronaldo Agra <[EMAIL PROTECTED]> wrote:
>
> > > > > > Pra essa pergunta eu não tenho resposta... mas se vc descobrir nos
> > > > > > avisa... =D
>
> > > > > > On 7/14/07, Aranha <[EMAIL PROTECTED] > wrote:
>
> > > > > > > Tinha acabado de chegar a esta comclusão.... mas eu não posso
> > chamar
>
> > > > > > > um metodo da minha classe? e se eu estiver usando
> > encapsulamento?
> > > > deve
> > > > > > > ter um geito de executar um metodo do Objeto ja recebido...
>
> > > > > > > Desde já, Obrigado.
>
> > > > > > > Sandro Mueller
>
> > > > > > > On 14 jul, 13:16, "Ronaldo Agra" < [EMAIL PROTECTED]> wrote:
> > > > > > > > Você deve acessar o atributo pelo nome, não pelo GET, ou seja:
>
> > > > > > > > private function onRetornaUsuario( event:ResultEvent ) : void{
> > > > > > > >     var usuario:Object = Object( event.result );
> > > > > > > >     mx.controls.Alert.show( usuario.nome );
>
> > > > > > > > }
>
> > > > > > > > []'s
> > > > > > > > Ronaldo.
>
> > > > > > > > On 7/14/07, Ricardo Ramires < [EMAIL PROTECTED] > wrote:
>
> > > > > > > > > Tente testar pelo debug adicionando um breakpoint na ultima
> > > > linha
> > > > > > > > > desse metodo ou de um trace
>
> > > > > > > > > private function onRetornaUsuario(event:ResultEvent):void{
> > > > > > > > >     trace(event.result);
> > > > > > > > > }
>
> > > > > > > > > se retornar o objeto tente copiar ele
>
> > > > > > > > > var usuario:Object =  ObjectUtil.copy (event.result);
>
> > > > > > > > > É uma tentativa
>
> > > > > > > > > ;-)
>
> > > > > > > > > On 14 jul, 11:15, Aranha <[EMAIL PROTECTED] >
> > wrote:
> > > > > > > > > > Bom Dia,
>
> > > > > > > > > > como faço para manipular quando recebo uma classe
> > Usuario.java
> > > > > > > (desrita
> > > > > > > > > > abaixo) recebida pelo GranitDS, abaixo segue logicas
> > usadas na
>
> > > > > > > > > > tentativa bem como o erro recebido:
>
> > > > > > > > > > logica do result:
> > > > > > > > > > private function onRetornaUsuario(event:ResultEvent):void{
> > > > > > > > > >      var usuario:Object = Object(event.result);
> > > > > > > > > >      mx.controls.Alert.show(usuario.getNome());
>
> > > > > > > > > > }
>
> > > > > > > > > > Classe usuario no java:
> > > > > > > > > > package test.pojo;
> > > > > > > > > > public class Usuario {
> > > > > > > > > >         private int id;
> > > > > > > > > >         public String nome;
> > > > > > > > > >         private String sobreNome;
>
> > > > > > > > > >         public Usuario(int id, String nome, String
> > sobreNome)
> > > > {
> > > > > > > > > >                 setId(id);
> > > > > > > > > >                 setNome(nome);
> > > > > > > > > >                 setSobreNome(sobreNome);
> > > > > > > > > >         }
>
> > > > > > > > > >         public Integer getId() {
> > > > > > > > > >                 return id;
> > > > > > > > > >         }
> > > > > > > > > >         public void setId(Integer id) {
> > > > > > > > > >                 this.id = id;
> > > > > > > > > >         }
> > > > > > > > > >         public String getNome() {
> > > > > > > > > >                 return nome;
> > > > > > > > > >         }
> > > > > > > > > >         public void setNome(String nome) {
> > > > > > > > > >                 this.nome = nome;
> > > > > > > > > >         }
> > > > > > > > > >         public String getSobreNome() {
> > > > > > > > > >                 return sobreNome;
> > > > > > > > > >         }
> > > > > > > > > >         public void setSobreNome(String sobreNome) {
> > > > > > > > > >                 this.sobreNome = sobreNome;
> > > > > > > > > >         }
>
> > > > > > > > > > }
>
> > > > > > > > > > Erro recebido:
> > > > > > > > > > TypeError: Error #1010: A term is undefined and has no
>
> ...
>
> mais >>- Ocultar texto entre aspas -
>
> - Mostrar texto entre aspas -


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