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