Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou usando flex e java para e preciso montar uma tree com uma série de regras, que irá formar o código de conduta que será aplicado aos jogadores
Cada regra pode conter outras regras, então eu montei essas duas classes vo espelhadas no flex e no java.
Se eu disparar o meto listar em ambas as classes todo o conteúdo é listado, mas no tree,só é populado o conteúdo da primeira regra.
Na ordem:
Classe Java
Classe AS3
App Air
package com.projeto.vos.codigoconduta;
import java.io.Serializable;
import java.util.ArrayList;
public class RegraVO implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
private int numero;
private String nome;
private String descricao;
private ArrayList<RegraVO> regras;
public RegraVO(){
}
public RegraVO(int numero, String nome, String descricao){
this.numero = numero;
this.nome = nome;
this.descricao = descricao;
}
public RegraVO(int numero, String nome){
this.numero = numero;
this.nome = nome;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public ArrayList<RegraVO> getRegras() {
return regras;
}
public void setRegras(ArrayList<RegraVO> regras) {
this.regras = regras;
}
public void addRegra(RegraVO regra){
if(regras == null){
regras = new ArrayList<RegraVO>();
}
regras.add(regra);
}
public void listar(){
System.out.println(numero+"-"+nome);
if(descricao != null){
System.out.println("Descrição:");
System.out.println(descricao);
}
if(regras != null){
for (int i = 0; i < regras.size(); i++) {
regras.get(i).listar();
}
}
}
}
package
{
import flash.system.System;
import mx.collections.ArrayCollection;
[RemoteClass(alias="com.projeto.codigoconduta.RegraVO")]
[Bindable]
public class RegraVO
{
private var _id:int;
private var _numero:int;
private var _nome:String;
private var _descricao:String;
private var _regras:ArrayCollection = new ArrayCollection();
public function RegraVO(obj:Object=null){
this._id = obj.id;
this._numero = obj.numero;
this._nome = obj.nome;
this._descricao = obj.descricao;
this._regras = obj.regras;
}
public function get id():int
{
return _id;
}
public function set id(value:int):void
{
_id = value;
}
public function get numero():int
{
return _numero;
}
public function set numero(value:int):void
{
_numero = value;
}
public function get nome():String
{
return _nome;
}
public function set nome(value:String):void
{
_nome = value;
}
public function get descricao():String
{
return _descricao;
}
public function set descricao(value:String):void
{
_descricao = value;
}
public function get regras():ArrayCollection
{
return _regras;
}
public function set regras(value:ArrayCollection):void
{
if(value!=null){
for (var i:int = 0; i < value.length; i++){
_regras.addItem(new RegraVO(value.getItemIndex(i)));
}
}
}
public function addRegra(regra:RegraVO):void {
if(regras == null){
regras = new ArrayCollection();
}
regras.addItem(regra);
}
public function listar():void{
trace(numero+"-"+nome);
if(descricao != null){
trace("Descrição:");
trace(descricao);
}
if(_regras != null){
for (var i:int = 0; i < _regras.length; i++)
{
new RegraVO(regras.getItemAt(i)).listar();
}
}
}
}
}
<?xml version="1.0" encoding="utf-8"?> </fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private var treeService:RemoteServer;
[Bindable]
public var tree:RegraVO;
protected function iniciar(event:FlexEvent):void
{
treeService = new RemoteServer(new Destination("Tree","com.projeto.servicos.Tree"));
treeService.invoke("getCodigoDeCondutaXML",seFalhar,seCarregar,null);
}
protected function seFalhar(event:FaultEvent):void{
Alert.show(event.fault.toString(),"Erro:");
}
protected function seCarregar(event:ResultEvent):void {
tree = new RegraVO(event.result);
}
]]>
</fx:Script>
<mx:Tree labelField="nome" dataProvider="{tree}" width="100%" height="100%"/>
</s:WindowedApplication>Carregando comentários...