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

Responder a