E ae Julio blz?
Cara eu fazendo desta forma eu posso usar uma unica no meu sistema e na
chamada eu mudo os parametos de entrada e passo qual o TextIput ira receber
o retorno??

Tive uns imprevistos esse fds mas durante a semana vou mexer com isso e ai
vou ver a forma que o Mário passou e a forma que você passou tudo é
aprendizado...


Valeu muito obrigado

2009/3/14 Julio Carneiro <jjcarne...@gmail.com>

>
> Vinicius,
>
> Há uma outra alternativa para passar informações entre classes, sem
> criar dependencia entre seu componente e a Application o que como vc
> mesmo sabe não é recomendável).
>
> Como o Mário sugeriu, evento personalizados é ma maneira de passar
> informações do componente para o 'caller'.
>
> Agora lembre-se que no Flex, quando vc cria um componente (.mxml
> ou .as) vc está na verdade criando uma nova classe. Seu componente que
> implementa uma TitleWindow está na verdade extendendo a classe
> TitleWindow.
> Você pode se aproveitar deste fato e implementar um API para sua
> classe (componente). Você pod definir propriedades de entrada/saida da
> sua classe e deste modo passar/receber informações entre o 'caller' e
> teu componente.
> Deixa eu tentar explicar com um exemplo.
>
> Digamos que teu componente seja SelecionaBairro.mxml:
>
> <mx:TitleWindow ...
>     <mx:Script>
>         //--------------
>         // Interface para SelecionaBairro
>         //-------------
>         //--------------
>         // argumentos de entrada
>         //-------------
>             // se vc tiver algum parâmetro a passar para o componente
> vc declara a propriedade aqui:
>           public var parametroDeEntrada1:String;
>         //--------------
>         // argumentos de saida
>         //-------------
>         public var bairroSelecionado:String;   // este é o argumento
> de 'saída' do meu componente
>     </mx:Script
>      <mx:DataGrid...
> </mx:TitleWindow>
>
>
> Agora, como vc pode usar este API...
>
> Na tua aplicação (ou em algum componente da tua aplicação) vc usa algo
> como:
>
> .....
>   var pop:SelecionaBairro = new SelecionaBairro();   // aqui vc está
> criando uma instância da tua classe
> // a variável pop referencia um objeto da classe SelecionaBairro e
> através dela vc tem acesso a qualquer propiedade exposta (public) pela
> classe
> // vc pode por exemplo enviar informações para o objeto...
>   pop.parametroDeEntrada1 = 'valor para o paremetro 1';
> // depois de posicionar os parametros de entrada vc pode ativar o
> TitleWindow
>   PopupManager.addPopup(pop,this);  // por exmplo via popup window ou
> através de qqr outro mecanismo (addChild, ...)
> // agora vc precisa interceptar qdo tua classe completou sua tarefa,
> que obviamente tem que ser via eventos in Flex
> // isto pode ser através de um evento especial ou no meu exemplo
> poderia ser no CLOSE do popup
>   pop.addEventListener(CloseEvent.CLOSE,selecionaBairroDone);
>
> Quando SelecionaBairro for fechado selecionaBairroDone será executado,
> e para ter acesso aos argumentos de saida da classe o método seria
> algo assim:
>
> private function selecionaBairroDone(ev:CloseEvent):void {
>   var pop:SelecionaBairro = ev.currentTarget as SelecionaBairro;  //
> aqui eu recupero a instância de SelecionaBairro criada anteriormente
>   // lembre-se que 'pop' estará apontando para o mesmo objeto criado
> anteriormente, com todos as variáveis e propriedades
>   // daquele objeto exatamente como estava no momento em que o popup
> foi fechado
>   // assim através de 'pop' eu posso ter acesso aos argumentos de
> saída, como definidos no API de SelecionaBairro
>  bairro = pop. bairroSelecionado; // copia o valor do bairro
> selecionado, que foi posicionado dentro de SelecionaBairro
>
> }
>
> Este mecanismo evita a necessidade de criar eventos personalizados. A
> implementação de SelecionaBairro continua encapsulada e independente
> do utilizador
> A única coisa que fica 'exposta' é a interface entre SelecionaBairro e
> o utilizador através de propriedades publicas.
>
> abraço
> julio
>
> ps: tem uma coisa nesta técnica que fica um pouco prejudicada do ponto
> de vista de encapsulamento completo dos componentes. No flex, qualquer
> componente utilizado por exemplo dentro de SelecionaBairro se torna
> público. isto é, o datagrid,e outros componentes em SelecionaBairro, é
> apresentado como uma propriedade pública. não há uma maneira simples
> de evitar este 'side effect', mas se vc simplesmente ignorar
> propriedades que não façam parte do API de SelecionaBairro, não há com
> que se preocupar. mas esta  uma discussão para 'puristas' e não afeta
> a validade desta técnica.
>
> On Mar 13, 6:08 pm, Mário Júnior <juninho...@gmail.com> wrote:
> > Vinicius, vc tem q usar eventos personalizados (custom events) que
> deverão
> > ser disparados (dispatchEvent) no momento que sua janela fechar. Nesses
> > eventos vc pode transportar dados da forma que quiser, e é aí que vc irá
> > transportar os dados da sua consulta.
> >
> > Assim, vc torna seu componente (a janela de consulta) bem mais
> reutilizável
> > e totalmente desacoplado do seu application (nada de [Bindable] public
> var
> > na app raiz).
> >
> > Só não se esqueça de "amarrar" um listener na janela antes de mostra-la
> na
> > tela.
> > (janela.addEventListener(SeuEventoProprio.NOME_EVENTO, funcaoExecutar);
> >
> > Procure no histórico por pelas palavras chaves q deixei entre parenteses,
> ou
> > até mesmo na web, que vc vai achar material para estudo.
> >
> > Bons estudos.
> >
> > 2009/3/13 Vinícius Velasco <irc.vinic...@gmail.com>
> >
> >
> >
> > > Olá PessoALL,
> >
> > > Estou com a seguinte duvida:
> > > Eu tenho uma tabela de bairros. No cadastro de pessoa eu tenho o campo
> > > bairro que eu digito somente o código do bairros e ele me traz o nome,
> até
> > > ai tudo bem. Na minha tela de pessoas eu chamo uam titlewindow que tem
> uma
> > > grid que me mostra todos os bairros e nela tem um textinput pra
> pesquisar eu
> > > seleciono o bairro desejado e ela fecha trazendo para o cadastro de
> pessoas
> > > o nome do bairro, acontece que eu fiz no app um variavel bindable e uso
> ela
> > > pra carregar o meu textinput (o que é errado) outro problema é que eu
> tenho
> > > mais campos assim então tive que fazer para cada consulta uma
> titlewindow e
> > > o pior em uma tela q tem cidade nascimento cidade atual eu preciso
> fazer uma
> > > POG federal usando variaveis na app e flag's. Bom eu consigo criar uma
> > > titlewindow extendida e passar os valor que quero como em qual tabela
> > > peskisar e etc soh que eu nao consigo retornar o valor selecionado.
> Alguem
> > > teria alguma dica ou material pra fazer isso?
> >
> > > Desculpem o tamanho do texto
> >
> > > Desde ja agradeço
> >
> > > --
> > > Bel. Vinícius Velasco
> > > Analista de Desenvolvimento - Ábaco
> > > MSN: ircvinic...@hotmail.com
> > > Skype: ircvinicius
> > > Fone: 66 9206 6966
> > > Rondonópolis - Mato Grosso - Brasil
> > > "Tudo Posso Naquele que me Fortalece" Fil 4:13
> >
> > --
> > Mário Júnior
> > Programador Java / Adobe Flexhttp://blog.mariojunior.com
>  >
>


-- 
Bel. Vinícius Velasco
Analista de Desenvolvimento - Ábaco
MSN: ircvinic...@hotmail.com
Skype: ircvinicius
Fone: 66 9206 6966
Rondonópolis - Mato Grosso - Brasil
"Tudo Posso Naquele que me Fortalece" Fil 4:13

--~--~---------~--~----~------------~-------~--~----~
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