Olá Sérgio...
com isso fica melhor de lhe explicar....
Quando você trabalhar com o RemoteObject e configura um result nele.... você
não poderá trabalhar com duas funções diferentes pelo fato que você relatou
ja nesse tópico que é que o seu result ja está esperando uma lista... então
não tem como esperar um objeto diferente de uma lista certo?!
Existem duas formas de trabalhar com o RemoteObject:
1º Como você está fazendo configurando o result no próprio result do
RemoteObject porém.... você terá que criar outro remoteObject com o result
para a função getTaskById que vem co java... ele terá o mesmo destination,
porém irá mudar o id do mesmo e o result estará adequado ao objeto que vc
espera;
Ex:
<mx:RemoteObject id="getTaskVOListComboRO" result="*
onResultGetTaskVOListComboRO*(event)" destination="programFlexController" />
private function *onResultGetTaskVOListComboRO*(ev:ResultEvent):void {
*taskList* = ev.result as ArrayCollection;
}
<mx:RemoteObject id="getTaskByIdRO" result="*onResultGetTaskByIdRO*(event)"
destination="programFlexController" />
private function *onResultGetTaskByIdRO*(ev:ResultEvent):void {
*task** *= ev.result as TaskVO;
}
2º A segunda forma é trabalhar com o Method do RemoteObject onde você irá
informar os metodos que irá trabalhar no remoteObject e assim configurar os
result respectivos.... dessa forma você cria só um RemoteObject e configurar
os diferentes results para os metodos chamados.
Ex:
<mx:RemoteObject id="programController" destination="programFlexController">
<mx:method name="getTaskVOListCombo" result="*
onResultGetTaskVOListCombo*"/>
<mx:method name="getTaskById" result="*onResultGetTaskById*"/>
</mx:RemoteObject>
private function *onResultGetTaskVOListCombo*(ev:ResultEvent):void {
*taskList* = ev.result as ArrayCollection;
}
private function *onResultGetTaskById*(ev:ResultEvent):void {
*task** *= ev.result as TaskVO;
}
Essas são as duas formas mais práticas de trabalhar com o RemoteObject...
espero ter ajudado...
Boa sorte em seus estudos...
Att.
Em 2 de junho de 2010 08:41, Sérgio Fantin
<[email protected]>escreveu:
> <mx:RemoteObject id="programController" result="*carregaResultado*(event)"
> destination="programFlexController" />
>
> public function init():void{
> popupEditProgramSchedule = new edit_program_schedule();
> taskListCombo();
>
> this.addEventListener(ProgramScheduleEvent.ENVIAR, enviarValor);
> }
>
> public function taskListCombo():void {
> programController.getTaskVOListCombo();
>
> }
>
> private function *carregaResultado*(ev:ResultEvent):void {
> *taskList* = ev.result as ArrayCollection;
> }
>
> <mx:DataGrid id="dataGridTask" x="10" y="10" width="782.5" height="268"
> dataProvider="{*taskList*}">
>
>
> 2010/6/1 Guilherme Sjlender <[email protected]>
>
>> Coloca o código da chamada quando vc vai buscar a lista por favor...
>>
>> Att.
>> Em 1 de junho de 2010 17:55, Sérgio Fantin
>> <[email protected]>escreveu:
>>
>> Eu já uso o carregaResultado pra popular uma lista minha. Eu posso usar o
>>> mesmo método pra popular a variável que eu preciso?
>>> Esse taskGroupVOList funciona belezinha. Agora eu preciso que minha
>>> variável task receba o resultado da consulta.
>>>
>>> private function carregaResultado(ev:ResultEvent):void {
>>> taskGroupVOList = ev.result as ArrayCollection;
>>>
>>> }
>>>
>>> 2010/6/1 Guilherme Sjlender <[email protected]>
>>>
>>> Sérgio...
>>>>
>>>> Não é dessa forma que vc irá retornar o valor da sua consulta... o
>>>> retorno virá pelo result que no seu caso é o carregaResultado();
>>>>
>>>> Lá que o seu objeto irá retornar e não no return *
>>>> programController.getTaskById(idTask)*; ....
>>>>
>>>> Ai da erro de Cast pois vc está querendo converter algo null....
>>>>
>>>> Compreende?
>>>>
>>>> Att.
>>>> Em 1 de junho de 2010 17:22, Sérgio Fantin <[email protected]
>>>> > escreveu:
>>>>
>>>>> Olá pessoal,
>>>>>
>>>>> estou recebendo um erro de cast.
>>>>>
>>>>> Tenho uma classe remota java chamada *TaskVO.java* e para
>>>>> representá-la eu criei a* TaskVO.as*:
>>>>>
>>>>> [Bindable]
>>>>> [RemoteClass(alias="br.com.sumus.coyote.program.vo.TaskVO")]
>>>>>
>>>>> public class TaskVO {
>>>>>
>>>>> public function TaskVO(){
>>>>>
>>>>> }
>>>>>
>>>>> public var id:int;
>>>>> public var description:String;
>>>>> public var register:Date;
>>>>> public var watchCalls:int;
>>>>> public var timeAnswer:int;
>>>>> public var enableManagement:int;
>>>>> public var phoneBookUser:String;
>>>>> public var urlServer:String;
>>>>> public var beginReference:Date;
>>>>> public var endReference:Date;
>>>>> public var resendAfter:int;
>>>>> public var taskGroup:TaskGroupVO;
>>>>> public var company:CompanyVO;
>>>>>
>>>>> //...
>>>>> }
>>>>>
>>>>> Na minha página *program_schedule.mxml* eu tenho uma váriavel do tipo
>>>>> TaskVO:
>>>>>
>>>>> [Bindable]
>>>>> public var *task*:TaskVO = new TaskVO();
>>>>>
>>>>> Debuguei o código e percebi que meu serviço java(*
>>>>> programController.getTaskById(idTask)*) trás o cara que eu preciso:
>>>>>
>>>>> <mx:RemoteObject id="programController"
>>>>> result="carregaResultado(event)" destination="programFlexController" />
>>>>>
>>>>> private function init():void{
>>>>> this.listaTodosTaskGroup();
>>>>>
>>>>> task = this.getTaskById(idTask) as TaskVO;
>>>>> }
>>>>>
>>>>> public function getTaskById(idTask:int):TaskVO{
>>>>> return *programController.getTaskById(idTask)*;
>>>>> }
>>>>>
>>>>> Esse programController é meu cara remoto java. E o método no debug tá
>>>>> trazendo o VO que eu quero certinho. Mas na hora de mostrar na tela dá
>>>>> erro de casting.
>>>>>
>>>>> Alguém pode ajudar?
>>>>>
>>>>> --
>>>>> Sérgio Fantin
>>>>> http://serjaum.wordpress.com
>>>>>
>>>>> --
>>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> -----------------------------------------------------------
>>>> Guilherme Sjlender -
>>>> Desenvolvedor RIA - Flex/Java -
>>>> http://site.gflex.biz -
>>>> ------------------------------------------------
>>>>
>>>> --
>>>> 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
>>>
>>>
>>>
>>>
>>> --
>>> Sérgio Fantin
>>> http://serjaum.wordpress.com
>>>
>>> --
>>> 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
>>>
>>
>>
>>
>> --
>> -----------------------------------------------------------
>> Guilherme Sjlender -
>> Desenvolvedor RIA - Flex/Java -
>> http://site.gflex.biz -
>> ------------------------------------------------
>>
>> --
>> 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
>>
>
>
>
> --
> Sérgio Fantin
> http://serjaum.wordpress.com
>
> --
> 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
>
--
-----------------------------------------------------------
Guilherme Sjlender -
Desenvolvedor RIA - Flex/Java -
http://site.gflex.biz -
------------------------------------------------
--
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