[RESOLVIDO]

*
http://serjaum.wordpress.com/2010/05/29/flex-passando-valores-entre-telas-custom-events/
*

Obrigados a todos que ajudaram!

2010/5/28 Rafa Comim <rafaco...@gmail.com>

> criar uma function public para funcionar como setter não adianta?
> desde que você pegue a instância correta da tela deveria funcionar.
>
> Em 28 de maio de 2010 11:51, Sérgio Fantin 
> <sergio.lnd.fan...@gmail.com>escreveu:
>
> Comecei a desenvolver aqui, mas não consegui enviar meu valor pro outro
>> lado. Eu preciso que o *field_description *da tela2 recebe o valor do
>> item clicado no dataGrid.
>> Alguma coisa do tipo (não sei se está correto): 
>> popupEditProgramSchedule.field_description
>> = dataGridTask.selectedItem.nome;
>>
>> Segue o código:
>>
>> package br.com.sumus.coyote.program.events {
>>
>>     import flash.events.Event;
>>
>>     public class *ProgramScheduleEvent* extends Event {
>>
>>         public static const ENVIOU:String= "enviouValorEvent";
>>
>>         public function ProgramScheduleEvent(type:String,
>> bubbles:Boolean=false, cancelable:Boolean=false) {
>>             super(type, bubbles, cancelable);
>>         }
>>
>>         override public function clone():Event{
>>             return new ProgramScheduleEvent(type,bubbles,cancelable);
>>         }
>>
>>     }
>> }
>>
>> Tela1) *program_schedule.mxml*
>>
>> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
>> layout="absolute" creationComplete="init()">
>>
>>     <mx:RemoteObject id="programController"
>> result="carregaResultado(event)" destination="programFlexController" />
>>
>>     <mx:Metadata>
>>         [Event
>> (name="enviouValorEvent",type="br.com.sumus.coyote.program.events.*
>> ProgramScheduleEvent*")]
>>     </mx:Metadata>
>>
>>     <mx:Script>
>>
>>         <![CDATA[
>> //              imports omitidos ...
>>
>>
>> //---------------------------------------------------------
>>                 //                 a outra tela
>>
>> //---------------------------------------------------------
>>                 private var popupEditProgramSchedule:*
>> edit_program_schedule*;
>>
>>                 public function init():void{
>>                     popupEditProgramSchedule = new
>> edit_program_schedule();
>>                     attachEventListeners();
>>                 }
>>
>>
>> //---------------------------------------------------------
>>                 //                 metodos de event
>>
>> //---------------------------------------------------------
>>                 public function attachEventListeners():void {
>>                     Alert.show(' >>> attachEventListeners() <<<');
>>                     this.addEventListener(ProgramScheduleEvent.ENVIOU,
>> enviouHandler);
>>                 }
>>
>>                 public function *enviarAction()*:void{
>>                     Alert.show('>> enviarAction() <<');
>>
>>                     dispatchEvent(new
>> ProgramScheduleEvent(ProgramScheduleEvent.ENVIOU));
>>                     showEditProgramSchedule();
>>                 }
>>
>>                 public function enviouHandler(e:ProgramScheduleEvent):void
>> {
>>                     Alert.show(' >>> enviouHandler() <<<');
>>                  }
>>
>> //---------------------------------------------------------
>>
>>             ]]>
>>
>>     </mx:Script>
>>
>>
>>              <mx:DataGrid id="dataGridTask" x="10" y="10" width="782.5"
>> height="268" dataProvider="{taskList}">
>>                 <mx:columns>
>>                     <mx:DataGridColumn headerText="Descrição "
>> dataField="description"/>
>>                     <mx:DataGridColumn headerText="Tarefa Agendada"
>> id="taskSchedule" dataField="taskGroupVO.description"/>
>>                     <mx:DataGridColumn headerText="Cadastrado em "
>> dataField="register" labelFunction="formatDate"/>
>>                     <mx:DataGridColumn headerText="Editar "
>> textAlign="center">
>>                         <mx:itemRenderer>
>>                             <mx:Component>
>>                                 <mx:HBox horizontalAlign="center">
>>                                       <mx:Button label="*"
>> click="outerDocument.*enviarAction()*"/>
>>
>>                                   </mx:HBox>
>>                             </mx:Component>
>>                         </mx:itemRenderer>
>>                     </mx:DataGridColumn>
>>                   </mx:columns>
>>             </mx:DataGrid>
>> </mx:Application>
>>
>> Tela2) *edit_program_schedule.mxml*
>> ...
>>
>>             <mx:TextInput id="*field_description*" x="92" y="19"
>> width="301" height="18"/>
>>  ...
>>
>> Alguém pode ajudar?
>>
>> 2010/5/28 Paulo Augusto Teixeira <pauloaugus...@gmail.com>
>>
>> Eu gosto de fazer assim:
>>>
>>>
>>> http://www.pauloteixeira.blog.br/en/posts/2010/handler-data-between-two-components-using-custom-events---by-pedro-claudio-silva/
>>>
>>>
>>> <http://www.pauloteixeira.blog.br/en/posts/2010/handler-data-between-two-components-using-custom-events---by-pedro-claudio-silva/>
>>> []s
>>>
>>> 2010/5/28 Sérgio Fantin <sergio.lnd.fan...@gmail.com>
>>>
>>>> Olá pessoal,
>>>>
>>>> preciso enviar o valor de uma coluna de um dataGrid para outra tela do
>>>> meu sistema.
>>>>
>>>> Ao clicar em *documentImage* eu preciso enviar o valor
>>>> dataGridTask.selectedItem.nome* *para o componente *field_description*da 
>>>> outra tela.
>>>>
>>>> *trecho relevante da Tela1:
>>>>
>>>> *
>>>>>
>>>>> <mx:DataGrid id="dataGridTask" x="10" y="10" width="782.5" height="268"
>>>>> dataProvider="{taskList}">
>>>>>                 <mx:columns>
>>>>>                     <mx:DataGridColumn headerText="Descrição "
>>>>> dataField="description"/>
>>>>>                     <mx:DataGridColumn headerText="Tarefa Agendada"
>>>>> id="taskSchedule" dataField="taskGroupVO.description"/>
>>>>>                     <mx:DataGridColumn headerText="Cadastrado em "
>>>>> dataField="register" labelFunction="formatDate"/>
>>>>>
>>>>>                     <mx:DataGridColumn headerText="Editar "
>>>>> textAlign="center">
>>>>>                         <mx:itemRenderer>
>>>>>                             <mx:Component>
>>>>>                                 <mx:HBox horizontalAlign="center">
>>>>>                                     <mx:Image id="*documentImage*"
>>>>> source="../images/document.gif" height="100%"/>
>>>>>
>>>>>                                   </mx:HBox>
>>>>>                             </mx:Component>
>>>>>                         </mx:itemRenderer>
>>>>>                     </mx:DataGridColumn>
>>>>>                     <mx:DataGridColumn headerText="Remover "
>>>>> textAlign="center">
>>>>>                         <mx:itemRenderer>
>>>>>                             <mx:Component>
>>>>>                                 <mx:HBox horizontalAlign="center">
>>>>>                                     <mx:Image id="closeImage"
>>>>> source="../images/close.gif" height="100%"
>>>>> click="outerDocument.alertRemoveTask()" />
>>>>>
>>>>>                                 </mx:HBox>
>>>>>                               </mx:Component>
>>>>>                         </mx:itemRenderer>
>>>>>                     </mx:DataGridColumn>
>>>>>                 </mx:columns>
>>>>> </mx:DataGrid>
>>>>>
>>>>
>>>> *trecho relevante da Tela2)*
>>>>
>>>> <mx:TextInput id="*field_description*" x="92" y="19" width="301"
>>>>> height="18"/>
>>>>>
>>>>
>>>> Dei uma lida em Events, mas ainda estou na dúvida em qual evento usar.
>>>>
>>>> Alguém poderia 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 flexdev@googlegroups.com
>>>> Para sair da lista, envie um email em branco para
>>>> flexdev-unsubscr...@googlegroups.com
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>
>>>
>>>
>>> --
>>> Paulo A. Teixeira
>>> Adobe Certified Expert Flex 3 with AIR
>>> Adobe Certified Expert Rich Internet Application v1.0
>>> Adobe Certified Expert ColdFusion 8
>>> --
>>> Blog: http://www.pauloteixeira.blog.br
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>> Para sair da lista, envie um email em branco para
>>> flexdev-unsubscr...@googlegroups.com
>>> 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 flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> ______________________
>
> Atenciosamente,
>
> Rafael Comim
>
>  --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> 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 flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a