Boa noite, estou com um problema no Granite, 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) só 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.*"
layout="vertical"
height="780" width="1024">
<mx:Script>
<![CDATA[
import mx.messaging.Producer;
import
mx.charts.effects.effectClasses.SeriesInterpolateInstance;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
[Bindable]
public var usuario:Object;
[Bindable]
public var usuarios:ArrayCollection;
private function
onResultHelloWorld(event:ResultEvent):void{
mx.controls.Alert.show(event.result as String);
}
private function onRetornaUsuario(event:ResultEvent):void{
usuarios = ArrayCollection(event.result);
//usuario = Object(event.result);
//mx.controls.Alert.show("Eu, "+usuario.nome+'
'+usuario.sobreNome+", tenho 2 filhos: "+usuario.filhos.filho1+" e
"+usuario.filhos.filho2);
}
public function colFilho1(item:Object,
column:DataGridColumn):String {
return item.filhos.filho1.toString();
}
public function colFilho2(item:Object,
column:DataGridColumn):String {
return item.filhos.filho2.toString();
}
public function mudaLinha(event:Event):void
{
lbl.text = event.target.selectedItem.id;
}
]]>
</mx:Script>
<mx:RemoteObject id="srv" showBusyCursor="true"
destination="pojo" />
<mx:Label id="lbl" text="{srv.getCounter.lastResult}" />
<mx:Button label="Go" click="srv.getCounter()"/>
<mx:RemoteObject id="srvHelloWorld"
showBusyCursor="true"
destination="HelloWorldService"
result="onRetornaUsuario(event)" />
<mx:Button label="Show Messages"
click="srvHelloWorld.sayHelloWorld()"/>
<mx:Button label="Pega Usuário"
click="srvHelloWorld.retornaUsuario()"/>
<mx:DataGrid dataProvider="{usuarios}" change="mudaLinha(event)">
<mx:columns>
<!--
<mx:DataGridColumn headerText="Id" dataField="id"/>
-->
<mx:DataGridColumn headerText="Nome" dataField="nome" />
<mx:DataGridColumn headerText="Sobre nome"
dataField="sobreNome"/>
<mx:DataGridColumn headerText="Filho 1"
labelFunction="{colFilho1}"/>
<mx:DataGridColumn headerText="Filho 2"
labelFunction="{colFilho2}"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
Alguém consegue fazer tudo com o private, poderia me passa partes do
códio(como fiz acima) para que eu possa analisar e achar onde esta o
meu erro??
Desde já Obrigado
Sandro Mueller
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---