Esqueci de dizer que no meu list está com creationPolicy Immediate :)

Abraço,

Ernani

2012/1/11 Helio Antonio Francisco Silva <[email protected]>

> isso mesmo, pelo que eu ja estudei do combobox, list e datagrid ele
> controstroi os itens de acordo com a rolagem ou seja so existem os itens
> que voce ta vendo os pra baixo nao existem por isso voce tem de controlar
> de acordo com o seu dataprovider, que deve ser um array nao ?  ai eu sempre
> controlo o array e dessa forma consigo mexer no itemrender
>
>
> 2012/1/11 Cristian Göhl <[email protected]>
>
>>   Opa,
>>
>> se entendi você quer marcar tudo, simplesmente altere o valor no seu
>> dataProvider(bindable).
>>
>> O IR deve identificar a mudança e cair no set data e já era.
>>
>> abraço.
>>
>>  *From:* Julio Cesar <[email protected]>
>> *Sent:* Wednesday, January 11, 2012 12:04 PM
>> *To:* [email protected]
>> *Subject:* Re: [flexdev] Re: Como acessar um itemrenderer de um list ??
>>
>> Cara desse jeito deu quase certo, porém acontece o seguinte,
>> meu list tem um scroll, tudo q esta visível ele pega, o resto q vem
>> depois de descer ele nao pega
>>
>>
>> Em 11/01/2012 11:25, Ernani Joppert Pontes Martins escreveu:
>>
>> Faça assim:
>>
>>  <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009";
>>   xmlns:s="library://ns.adobe.com/flex/spark"
>>   xmlns:mx="library://ns.adobe.com/flex/mx"
>>                            width="100%" height="100%"
>> creationComplete="initApp()">
>>
>>
>>  private function initApp() : void
>> {
>>  meuComponente.itemRenderer = new ClassFactory( MeuRenderer );
>> }
>>
>>  private function obtemObjeto( ) : void
>> {
>>                                  var i : int =
>> meuComponente.selectedIndex;
>> var renderer : MeuRenderer = meuComponente.dataGroup.getElementAt( i ) as
>> MeuRenderer;
>>
>> ............
>> seu alerta ->
>>                                 Alert.show("Cliquei: " +
>> renderer.labelDisplay.text);
>>                                .............
>> }
>>
>> Espero ter ajudado.
>>
>> Abraço,
>>
>> Ernani
>>
>> 2012/1/11 Julio Cesar <[email protected]>
>>
>>> Tem alguma forma de eu percorrer meu list.dataProvider e chamar essa
>>> função:
>>>
>>>
>>> public function clickCheck(event:Event):void
>>>             {
>>>                 var e:MyCheckBoxEvent = event as MyCheckBoxEvent;
>>>                 //e.itemRenderer.cb.label = "changed"; //just to verify
>>> that we're looking at the correct renderer :)
>>>                 Alert.show("Cliquei: " +
>>> e.itemRenderer.labelDisplay.text);
>>>             }
>>>
>>> ?????
>>>
>>> Em 11/01/2012 11:03, Ernani Joppert Pontes Martins escreveu:
>>>
>>> Eu fiz algo parecido, mas, como no componente List eu tenho um objeto
>>> (VO), eu setei no VO uma propriedade booleana.
>>>
>>> Como tudo se trata de um VO genérico, eu fiz o item renderer como se
>>> fosse um componente data aware...:P
>>>
>>> MeuVO contém a propriedade
>>>
>>> var isSelected : Boolean = false;
>>>
>>> No ItemRenderer em si, fiz os seguintes métodos, dentro de fx:Script...
>>>
>>>                 // grava ou remove do db de acordo com a propriedade
>>> isSelected
>>>                  private function onChange( evt : Event ) : void
>>>                 {
>>>                     var vo : MeuVO = data as MeuVO;
>>>
>>>                     if ( !vo.isSelected )
>>>                     {
>>>                         // grava no db
>>>                         setVOValueInDB.token = service.createOrUpdateVO(
>>> obj );
>>>                     }
>>>                     else
>>>                     {
>>>                         // deleta do db
>>>                         removeVOValueInDB.token = service.deleteVO( obj
>>> );
>>>                     }
>>>                 }
>>>
>>>                 // callback de retorno quando marcando um item
>>>                 // ou seja, marcando um item como selecionado
>>>                  protected function setVOValueInDBResultHandler( event
>>> : ResultEvent ) : void
>>>                 {
>>>                     var ret : Boolean = setVOValueInDB.lastResult as
>>> Boolean;
>>>
>>>                     if ( ret )
>>>                     {
>>>                         data.isSelected = true;
>>>                     }
>>>                     else
>>>                     {
>>>                         data.isSelected = false;
>>>                     }
>>>                 }
>>>
>>>                 // retorno do callback quando removendo um registro
>>>                 // ou seja, desmarcando um item
>>>                 protected function removeVOValueInDBResultHandler( event
>>> : ResultEvent ) : void
>>>                 {
>>>                     var ret : Boolean = removeVOValueInDB.lastResult as
>>> Boolean;
>>>
>>>                     if ( ret )
>>>                     {
>>>                         data.isSelected = false;
>>>                     }
>>>                     else
>>>                     {
>>>                         data.isSelected = true;
>>>                     }
>>>                 }
>>>
>>> Já no MXML do mesmo item renderer, contém isto:
>>>
>>>      <fx:Declarations>
>>>         <services:GenericVOService id="service"
>>> fault="Alert.show( 'Aqui vai a mensagem de erro do RemoteObject, uma msg
>>> genérica.' )"
>>> showBusyCursor="true" />
>>>
>>>         <s:CallResponder id="setVOValueInDB"
>>> result="setVOValueInDBResultHandler(event)" />
>>>         <s:CallResponder id="removeVOValueInDB"
>>> result="removeVOValueInDBResultHandler(event)" />
>>>     </fx:Declarations>
>>>
>>>      <s:HGroup width="100%" height="100%" horizontalAlign="left"
>>> verticalAlign="middle" paddingLeft="5">
>>>         <s:CheckBox selected="{ data.isSelected }"
>>> click="onChange(event);" />
>>>         <s:Label text="{ data.categoria }" />
>>>     </s:HGroup>
>>>
>>> Abraço,
>>>
>>> Ernani
>>>
>>> 2012/1/11 Julio Cesar <[email protected]>
>>>
>>>> Pessoal consegui por parte,* (agora preciso adaptar isso para
>>>> selecionar todos de uma vez)*
>>>>
>>>> consegui na aplicação principal pegar o event do itemrenderer, tipo o
>>>> click do checkbox.
>>>>
>>>> criei uma classe:
>>>>
>>>> package
>>>> {
>>>>     import flash.events.Event;
>>>>
>>>>     public class MyCheckBoxEvent extends Event
>>>>     {
>>>>         public var isSelected:Boolean;
>>>>         public var itemRenderer:Object;
>>>>         public static const SELECTED_CHANGED:String = "selectedChanged";
>>>>
>>>>         public function MyCheckBoxEvent(type:String,
>>>> itemRenderer:Object, isSelected:Boolean=false){
>>>>             super(type);
>>>>             this.itemRenderer = itemRenderer;
>>>>             this.isSelected = isSelected;
>>>>         }
>>>>
>>>>         override public function clone():Event{
>>>>             return new MyCheckBoxEvent(type, this.itemRenderer,
>>>> this.isSelected);
>>>>         }
>>>>     }
>>>> }
>>>>
>>>>
>>>> no click do meu checkbox dentro do itemrenderer coloquei isso:
>>>>
>>>>                 var evt:MyCheckBoxEvent = new
>>>> MyCheckBoxEvent(MyCheckBoxEvent.SELECTED_CHANGED, this, cb.selected);
>>>>                 owner.dispatchEvent(evt); //Dispatch event from the
>>>> List component, not from the item renderer
>>>>
>>>> ai no meu list coloquei assim:
>>>>
>>>> list.addEventListener('selectedChanged',clickCheck);
>>>>
>>>> e minha funcao:
>>>>
>>>>
>>>> public function clickCheck(event:Event):void
>>>>             {
>>>>                 var e:MyCheckBoxEvent = event as MyCheckBoxEvent;
>>>>                 Alert.show("Cliquei: " +
>>>> e.itemRenderer.labelDisplay.text);
>>>>             }
>>>>
>>>>
>>>> fonte: http://nwebb.co.uk/blog/?p=47
>>>>
>>>>
>>>>
>>>> Em 11/01/2012 01:58, Cristian Göhl escreveu:
>>>>
>>>>  Boa madrugada hehe,
>>>>
>>>> Eu uso *override no set data** *para os meus IR, indiferente de
>>>> criados via MXML ou AS.
>>>>
>>>> override public function set data(value:Object):void
>>>>         {
>>>>             super.data = value;
>>>>             if(value != null)
>>>>             {
>>>>                 // bla bla bla acessa os dados de
>>>> data[column.dataField] ou não e faz o que precisar com outros comps(cb,
>>>> label,etc);
>>>>             }
>>>>         }
>>>>
>>>> Ai, meio que esqueci, acho que cria o change do CB no IR, e manda
>>>> atualizar os dados originais(ex. data[column.dataField]);
>>>>
>>>> Dependendo o que você precisar, também pode disparar eventos do IR e
>>>> escutar no form, então fazer algo.
>>>>
>>>> Abraço.
>>>>
>>>>  *From:* Julio Cesar <[email protected]>
>>>> *Sent:* Tuesday, January 10, 2012 4:33 PM
>>>> *To:* [email protected]
>>>> *Subject:* Re: [flexdev] Re: Como acessar um itemrenderer de um list ??
>>>>
>>>> Outra coisa, meu itemrenderer não é só um checkbox, é um checkbox, um
>>>> label, e um textinput, pq qdo clico 2x em cima dele, consigo renomeá-lo.
>>>>
>>>> Em 10/01/2012 14:47, Julio Cesar escreveu:
>>>>
>>>> Assim, estou montando um list dinamicamente:
>>>>
>>>> var lista:List = new List();
>>>>        lista.width = 100;
>>>>       e vou setando as confs dele (tamanho, cor, etc...)
>>>>
>>>> depois eu digo que cada linha será um checkbox, a forma que eu achei
>>>> dinamicamente foi com ClassFactory, desssa forma:
>>>>
>>>>                     var customItemRenderer:ClassFactory = new
>>>> ClassFactory(checkRenderer);
>>>>                     lista.itemRenderer = customItemRenderer;
>>>>
>>>> depois eu preencho o dataprovider dele com meu arraycollection
>>>>
>>>> depois eu adiciono na tela:
>>>> panel_listas.addElement(lista);
>>>>
>>>>
>>>> tudo isso dinamicamente, até ai blz, gera legal, ai eu quero acessar
>>>> alguma linha e dar um selected no checkbox, ou até mesmo selecionaar todos
>>>> os checks ao msm tempo, é ai q eu enrosco.
>>>>
>>>> erictonussi
>>>> eu quero pq eu quero saber quais estão marcados
>>>>
>>>> helio.afsilva
>>>> não sei se da para pegar o array bindado pq toda hora muda ele
>>>>
>>>> leonardoc.oliveira
>>>> gostei do seu link hehe
>>>>
>>>> Em 10/01/2012 13:36, Eric Tonussi escreveu:
>>>>
>>>> Explica melhor o que exatamente você quer fazer. Para que você quer
>>>> acessar este item render?
>>>>
>>>> Em 10 de janeiro de 2012 13:25, Julio Cesar <[email protected]>escreveu:
>>>>
>>>>> Cara difícil isso, coloquei um breakpoint nas linhas abaixo (na vdd
>>>>> não manjo mto debugar) to tentando aprender
>>>>>
>>>>> var customItemRenderer:ClassFactory = new ClassFactory(checkRenderer);
>>>>> lista.itemRenderer = customItemRenderer;
>>>>>
>>>>> lista.dataProvider = ac_colunas;
>>>>>
>>>>> dentro de checkRenderer tem um combobox chamado cb que recebe
>>>>> 'selected'
>>>>>
>>>>> mas não consegui identificar ainda
>>>>>
>>>>>
>>>>> Em 10/01/2012 12:47, Leonardo Oliveira escreveu:
>>>>>
>>>>>> Julio, use o modo debug. Coloque um breakpoint onde vc quiser,
>>>>>>
>>>>>> adicione uma expressão watch ao seu itemRenderer e veja na aba
>>>>>> Expressions. Tudo que vc precisa está lá.
>>>>>>
>>>>>> On 10 jan, 11:05, Julio Cesar<[email protected]>  wrote:
>>>>>>
>>>>>>> Boa tarde pessoal
>>>>>>>
>>>>>>> Tenho um list com itemrenderer de um combobox
>>>>>>>
>>>>>>> Gostaria de saber se tem como acessar este item renderer
>>>>>>>
>>>>>>> valeu
>>>>>>>
>>>>>>
>>>>> --
>>>>> 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
>>>>
>>>>
>>>>  --
>>>> 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
>>
>>
>> --
>> 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
>>
>
>
>
> --
> *Hélio Antonio Francisco Silva*
> Desenvolvedor web
> Certificado Flash developer
> Certificado Flash Design
> Certificado web developer
> Consultor Microsiga / Totvs
> Desenvolvedor ADVPL / ASP
> Analista de sistemas e ERP Sênior.
>
>  --
> 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

Responder a