Tenta colocar a Metadata de RemoteClass na classe TipoPapersDTO também. Acredito que o tipo de mapeamento seja do modo implicito, assim atribuindo null ao invés de dar uma RTE.
Att, Fredy. 2012/1/23 Filipe Motta <[email protected]> > att > > Ele anula na function eventoResultListarTiposPapers(), depois de listar > todos os tipo de papers. > > *********************** > [RemoteClass(alias="PapersDTO")] > [Bindable] > public class PapersDTO > { > private var _key:int; > public function get key():Number {return this._key;} > public function set key(value:Number):void{_key = value} > > private var _codigo:int; > public function get codigo():Number {return this._codigo;} > public function set codigo(value:Number):void{_codigo = value} > > private var _tipoPapersDTO:TipoPapersDTO; > public function get tipoPapersDTO():TipoPapersDTO{return > this._tipoPapersDTO;} > public function set > tipoPapersDTO(value:TipoPapersDTO):void{_tipoPapersDTO = value} > > private var _ano:int; > public function get ano():Number {return this._ano;} > public function set ano(value:Number):void{_ano = value} > > private var _nome:String; > public function get nome():String {return this._nome;} > public function set nome(value:String):void{_nome = value} > > private var _autores:String; > public function get autores():String {return this._autores;} > public function set autores(value:String):void{_autores = value} > > private var _descricao:String; > public function get descricao():String {return this._descricao;} > public function set descricao(value:String):void{_descricao = value} > > private var _arquivo:String; > public function get arquivo():String {return this._arquivo;} > public function set arquivo(value:String):void{_arquivo = value} > > private var _usuarioModeradorDTO:UsuarioModeradorDTO; > public function get usuarioModeradorDTO():UsuarioModeradorDTO {return > this._usuarioModeradorDTO;} > public function set > usuarioModeradorDTO(value:UsuarioModeradorDTO):void{_usuarioModeradorDTO = > value} > > private var _versao:int; > public function get versao():int {return this._versao;} > public function set versao(value:int):void{_versao = value} > } > ********************************* > > public class TipoPapersDTO > { > private var _key:int; > public function get key():Number {return this._key;} > public function set key(value:Number):void{_key = value} > > private var _codigo:int; > public function get codigo():Number {return this._codigo;} > public function set codigo(value:Number):void{_codigo = value} > > private var _descricao:String; > public function get descricao():String {return this._descricao;} > public function set descricao(value:String):void{_descricao = value} > > private var _versao:int; > public function get versao():int {return this._versao;} > public function set versao(value:int):void{_versao = value} > > } > > ************************ > > package presenters > { > > import flash.events.Event; > import flash.events.MouseEvent; > import flash.net.FileFilter; > import flash.net.FileReference; > import flash.utils.ByteArray; > > import mx.collections.ArrayCollection; > import mx.controls.Alert; > import mx.events.CloseEvent; > import mx.managers.PopUpManager; > import mx.rpc.events.FaultEvent; > import mx.rpc.events.ResultEvent; > > import org.swizframework.controller.AbstractController; > import org.swizframework.events.BeanEvent; > > import spark.events.IndexChangeEvent; > > [Bindable] > public class PanelNewPapersPresenters extends AbstractController > { > [Inject(twoWay="true")] > public var usuarioModeradorLogado:UsuarioModeradorDTO; > > [Inject] > public var panelCarregandoUtils:PanelCarregandoUtils; > > [Inject] > public var panelLocalizarPapersPresenters:PanelLocalizarPapersPresenters; > [Inject] > public var papersService:PapersService; > > [Inject] > public var uploadArquivoService:UploadArquivoService; > private var refUploadFile:FileReference; > > private var UploadFiles:Array; > > private var panelNewPapers:PanelNewPapers; > > private var dataArquivo:ByteArray; > public var listTiposPapers:ArrayCollection; > public var strAno:String; > > public var intIndex:Number; > public var papersDTO:PapersDTO; > > public var flagCadastro:Boolean; > /* Construct Events */ > public function PanelNewPapersPresenters() > { > UploadFiles = new Array(); > } > /*---------------------------------------------------------*/ > > /* Destroy Events */ > [PreDestroy] > public function cleanUpPresenter():void > { > dispatcher.dispatchEvent( new BeanEvent( BeanEvent.TEAR_DOWN_BEAN, this > ) ); > dispatcher.dispatchEvent( new BeanEvent( BeanEvent.TEAR_DOWN_BEAN, > papersService )); > dispatcher.dispatchEvent( new BeanEvent( BeanEvent.TEAR_DOWN_BEAN, > uploadArquivoService )); > dispatcher.dispatchEvent( new BeanEvent( BeanEvent.TEAR_DOWN_BEAN, > panelCarregandoUtils )); > dispatcher.dispatchEvent( new BeanEvent( BeanEvent.TEAR_DOWN_BEAN, > panelLocalizarPapersPresenters)); > } > /*---------------------------------------------------------*/ > > /* Interface Events */ > public function eventoAbrirTelaCadastroNewPapers():void > { > panelNewPapers = new PanelNewPapers(); > > > PopUpManager.addPopUp(panelNewPapers,panelCarregandoUtils.ParentPanel,true); > PopUpManager.centerPopUp(panelNewPapers); > } > > public function eventoResultListarTiposPapers():void > { > papersDTO = PapersDTO(panelLocalizarPapersPresenters.papersEditado); > > if(papersDTO == null) > { > papersDTO = new PapersDTO(); > } > else > { > intIndex = papersDTO.tipoPapersDTO.codigo - 1; > } > if(papersDTO.ano > 0) > strAno = papersDTO.ano.toString(); > > panelCarregandoUtils.eventoFecharMensagemBanco(); > } > > public function ddlType_changeHandler(event:IndexChangeEvent):void > { > papersDTO.tipoPapersDTO = event.currentTarget.selectedItem; > } > > public function btnSend_clickHandler(event:MouseEvent):void > { > if(eventoVerificacaoCamposPrincipais()) > { > papersDTO.ano = Number(strAno); > > if(flagCadastro) > papersDTO.usuarioModeradorDTO = usuarioModeradorLogado; > > papersDTO.arquivo = papersDTO.tipoPapersDTO.descricao + "." + > papersDTO.arquivo.slice(papersDTO.arquivo.length > -3,papersDTO.arquivo.length); > > panelCarregandoUtils.eventoAbrirMensagemBanco(); > eventoInserirPapers(); > } > else > { > Alert.show(ConstantesMensagens.ERROR_FILL_ALL_REQUIRED_FIELDS); > } > } > > public function eventoFecharTelaCadastroNewPapers(event:CloseEvent):void > { > if(!flagCadastro) > panelLocalizarPapersPresenters.papersEditado.tipoPapersDTO = > TipoPapersDTO(papersDTO.tipoPapersDTO); > > panelCarregandoUtils.eventoFecharMensagemBanco(); > PopUpManager.removePopUp(panelNewPapers); > } > > public function addFiles():void > { > var tipos:FileFilter = new FileFilter("File (*.pdf)", "*.pdf"); > var tiposArray:Array = new Array(tipos); > > this.refUploadFile = new FileReference(); > > this.refUploadFile.browse(tiposArray); > this.refUploadFile.addEventListener(Event.SELECT, onSelect); > this.refUploadFile.addEventListener(Event.COMPLETE, onUploadComplete); > > } > > public function eventoInicializar():void > { > panelCarregandoUtils.eventoAbrirMensagemBanco(); > eventoListarTiposPapers(); > dataArquivo = null; > } > > private function onSelect(event:Event):void > { > if((event.currentTarget).size <= 5000000) > { > refUploadFile.load(); > } > else > { > Alert.show(ConstantesMensagens.ERROR_FILE_SIZE_MORE_5_MB); > } > } > > private function onUploadComplete(event:Event):void > { > refUploadFile = event.currentTarget as FileReference; > dataArquivo = new ByteArray(); > refUploadFile.data.readBytes(dataArquivo,0,refUploadFile.data.length); > > papersDTO.arquivo = refUploadFile.name; > > } > > public function eventoVerificacaoCamposPrincipais():Boolean > { > if(strAno == "") > { > return false; > } > else if(papersDTO.autores == "") > { > return false; > } > else if(papersDTO.descricao == "") > { > return false; > } > else if(papersDTO.tipoPapersDTO == null) > { > return false; > } > else if(papersDTO.arquivo == "") > { > return false; > } > > return true; > } > /*---------------------------------------------------------*/ > > /* Dispacther Events */ > > private function > eventoUploadArquivo(pasta:String,data:ByteArray,nome:String):void > { > > executeServiceCall(uploadArquivoService.metodoRemotoUploadArquivo(pasta,data, > nome), > eventoRetornoControleUploadArquivo,eventoFalhaOperacao); > } > > private function eventoInserirPapers():void > { > executeServiceCall(papersService.metodoRemotoInserirNews(papersDTO), > eventoRetornoControleInserirPapers,eventoFalhaOperacao); > } > > private function > eventoRetornoControleInserirPapers(result:ResultEvent):void > { > var nameFile:String; > papersDTO = PapersDTO(result.result); > > if(dataArquivo != null) > { > nameFile = papersDTO.codigo.toString() + "_" + papersDTO.arquivo; > > > eventoUploadArquivo(ConstantesPastas.FOLDER_PAPERS,dataArquivo,nameFile); > } > else > { > eventoMensagemArquivoCarregado(); > } > } > > public function eventoListarTiposPapers():void > { > executeServiceCall(papersService.metodoRemotoListaTipoPapers(), > eventoRetornoControleListarTiposPapers,eventoFalhaOperacao); > } > > private function > eventoRetornoControleListarTiposPapers(result:ResultEvent):void > { > listTiposPapers = ArrayCollection(result.result); > eventoResultListarTiposPapers(); > } > > private function > eventoRetornoControleUploadArquivo(result:ResultEvent):void > { > eventoMensagemArquivoCarregado(); > } > /*---------------------------------------------------------*/ > > /* Errors Events */ > private function eventoFalhaOperacao(event:FaultEvent):void > { > if(event.fault.message.toString().indexOf("Row was updated or deleted") > > -1) > { > Alert.show(ConstantesMensagens.ERROR_RECORD_DELETED_UPDATED); > } > else > { > Alert.show(ConstantesMensagens.ERROR_OPERATION_NOT_SUCCESSFUL); > } > trace(event.fault.message.toString()); > panelCarregandoUtils.eventoFecharMensagemBanco(); > } > /*---------------------------------------------------------*/ > > /* Response Events */ > public function eventoMensagemArquivoCarregado():void > { > eventoMensagemPapersCadastrada(); > panelLocalizarPapersPresenters.eventoLocalizarPapers(); > eventoFecharTelaCadastroNewPapers(null); > } > > public function eventoMensagemPapersCadastrada():void > { > if(papersDTO == null) > Alert.show(ConstantesMensagens.PAPERS_DELETE_SUCESS); > else if(papersDTO.versao == 0) > Alert.show(ConstantesMensagens.PAPERS_ADD_SUCESS); > else > Alert.show(ConstantesMensagens.PAPERS_UPDATE_SUCESS); > } > > /*---------------------------------------------------------*/ > } > } > > ************************** > Em 23 de janeiro de 2012 17:35, Re JMD <[email protected]> escreveu: > > Cara pra tentar te ajudar manda seu codigo java e o flex! >> >> Em 23 de janeiro de 2012 17:25, Filipe Motta <[email protected]>escreveu: >> >> Tbm fica nulo. >>> Em 23/01/2012 17:00, "Re JMD" <[email protected]> escreveu: >>> >>> Debugando o array também fica nulo? >>>> >>>> Em 23 de janeiro de 2012 15:40, Filipe Motta <[email protected]>escreveu: >>>> >>>>> Pessoal >>>>> Tenho o seguinte cenario: >>>>> >>>>> Um objeto PapersDTO que um atributo tipoPapersDTO que é do tipo >>>>> TipoPapersDTO. Minha tela tem um combobox que lista todos >>>>> tipoPapersDTO cadastrados. Quando atualizo o registro o meu atributo >>>>> tipoPapersDTO está nulo. Observei que depois da função de listar todos os >>>>> tipoPapersDTO ele anula este atributo. Consegui resolver da de uma >>>>> maneira, >>>>> mas tenha certeza que é uma gambiarra, queria saber se alguem sabe o por >>>>> que disto. >>>>> >>>>> Gambiarra para resolver: >>>>> >>>>> Mudar o tipo do atributo tipoPapersDTO para Object, antes de listar >>>>> todos os tipoPapersDTO eu guardo o valor e depois de listar eu atribuo >>>>> este >>>>> valor ao atributo. >>>>> >>>>> Em um outro projeto eu utilizava para comunicação entre o flex o >>>>> framework fluorine pois era comunicação com o .net, acontecia o mesmo >>>>> problema. >>>>> >>>>> >>>>> att >>>>> >>>>> -- >>>>> Luís Filipe Guedes Motta >>>>> >>>>> -- >>>>> 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 >>>> >>>> >>>> -- >>>> 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 >>> >>> -- >>> 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 >>> >> >> -- >> 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 >> > > > > -- > Luís Filipe Guedes Motta > Analista de Sistemas - Java, .Net, Flex, Silverlight e Fortran > Consultor de SmartCard - JavaCard > (12)3221-4349 > (12)9735-6735 > > > -- > 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 > -- 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
