Legal, estava fazendo uns teste mas nao consegui fazer uma coisa?

Tipo tenho um itemrenderer que é um Button, ate ai ok mostra legal,
mas como fazer com que no clique do botão execute uma funcao na minha
app ou seja na app que esta o grid?



On Dec 28, 1:08 pm, Helio Antonio Francisco Silva
<helio.afsi...@gmail.com> wrote:
> nossa nao sabia dessa reciclagem...
>
> deu pra ter uma ideia legal.
>
> valeu Mario.
>
> 2010/12/28 Mário Júnior <juninho...@gmail.com>
>
>
>
>
>
>
>
>
>
> > Acontece que os componentes baseados em lista (ListBased) possuem uma
> > arquitetura interessante onde eles reaproveitam os itemRenderers,
> > reciclando-os.
>
> > Explicando de forma bem rapida:
> > - Se vc possue um grid com 1000 linhas, mas somente 10 estão exibidas, o
> > datagrid (ou qualquer outro list-based) irá criar só 12 renderers, e não os
> > 1000. Isso faz com q a performance do componente seja melhorada, afinal pra
> > q criar 988 renderers q nao sao exibidos???
>
> > - Agora vc me pergunta: "Mas pq criou 12 se só exibe 10?" Acontece q o
> > componente cria um renderer a mais "para baixo" e outro a mais "para cima"
> > para q o efeito de rolagem não fique prejudicado.
>
> > - E como os outros 988 registros são mostrados?
> > R: É aí q entra a "reciclagem de componentes". A cada vez q o componente
> > sofre uma rolagem, ele pega o objeto do data provider e seta no ultimo
> > renderer, e a partir do penultimo ele re-seta o item anterior no renderer de
> > cima. (ou de baixo qnd a rolagem é pra cima).
> > É uma "dança das cadeiras", onde o objeto do renderer 10 passa para o 9, o
> > do 9 passa para o 8, o do 8 passa para o 7... e assim respectivamente.
>
> > É nessa hora q vc entende o porquê de sobrescrever o set data, pois nessa
> > 'dança das cadeiras' é q o set data é invocado para passar o novo item para
> > um renderer já criado, sucessivamente.
>
> > Tudo isso é feito diretamente pelo componente baseado em lista q usa os
> > renderers (todos q extendem de ListBased -  datagrid, list, hosrizontallist,
> > etc...), mas isso no Flex 3.x
>
> > Já no Flex 4.x SDK isso não é mais responsabilidade do componente
> > list-based, mas do Layout que o componente usa, isso qnd se ativa a opção
> > useVirtualLayout=true, onde a "mecânica" é um pouquinho mais complexa q a já
> > existente, mas muda de lugar.
> > Detalhe q no Flex4, para se ter uma "lista" com dados complexos, precisa
> > usar o DataGroup com o Layout apropriado, e não esquecer de usar
> > DefaultComplexItemRenderer como classe renderer.
>
> > Espero ter compreendido :)
>
> > []'s
>
> > Em 28 de dezembro de 2010 11:18, Pablo Souza <pablo...@gmail.com>escreveu:
>
> > Olá Helio!
>
> >> Todas as classes que implementam a interface mx.core.IDataRenderer
> >> suportam essa propriedade.
>
> >> No caso do exemplo que te enviei, a classe é a MXItemRenderer e você
> >> verá essa relação da seguinte forma:
> >> MXItemRenderer EXTENDS DataRenderer EXNTEDS DataRenderer IMPLEMENTS
> >> IDataRenderer.
>
> >> Caso você precise criar um item renderer ou item editor customizado
> >> basta fazer com que seu componente implemente a interface
> >> IDataRenderer.
>
> >> A propriedade data contêm todo o dataprovider da linha e não somente o
> >> valor para aquela coluna que você setou o item renderer.
>
> >> Abs!
>
> >> ------
> >> Pablo Souza
> >>http://rectius.com.br
> >> @pablo_souza
>
> >> On Dec 28, 10:54 am, Helio Antonio Francisco Silva
> >> <helio.afsi...@gmail.com> wrote:
> >> > A unica diferença desse seu exemplo pro meu foi isso aqui
>
> >> > *
>
> >> > override* *public* *function* *set* data
> >> > Colocando essa funcao os valores aparecem, sem ela os valores vem
> >> nulos...
> >> > poderia me explicar o por que disso ?
>
> >> > 2010/12/27 pablo.souza <pablo...@gmail.com>
>
> >> > > Crie seu componente com a classe MXDataGridItemRenderer, que perrmite
> >> > > você use componentes Spark como itemrenderes do mx DataGrid.
>
> >> > > <s:MXDataGridItemRenderer
> >> > > xmlns:fx="http://ns.adobe.com/mxml/2009";
> >> > > xmlns:s="library://ns.adobe.com/flex/spark"
> >> > > xmlns:mx="library://ns.adobe.com/flex/mx"
> >> > > focusEnabled="true">
> >> > >        <fx:Script>
> >> > >                <![CDATA[
>
> >> > >                        override public function set
> >> data(value:Object):void
> >> > >                        {
> >> > >                                super.data = value;
> >> > >                        }
>
> >> > >                ]]>
> >> > >        </fx:Script>
>
> >> > >        <s:BorderContainer
> >> > >                id="statusBorder"
> >> > >                horizontalCenter="0" verticalCenter="0"
> >> > >                width="8" height="8" cornerRadius="18"
> >> > >                dropShadowVisible="false"/>
>
> >> > > </s:MXDataGridItemRenderer>
>
> >> > > Abs!
>
> >> > > On Dec 27, 4:42 pm, Helio Antonio Francisco Silva
> >> > >  <helio.afsi...@gmail.com> wrote:
> >> > > > Pessoal estou com uma baita dor de cabeça com o maldito itemrender
> >> no
> >> > > flex4.
> >> > > > To passando certinho como em uns exemplos na net e nao funciona.
>
> >> > > > No flex3 eu fazia assim tambem era muito EASY e no flex 4 to tomando
> >> bola
> >> > > =(
> >> > > > alguem me ajuda por favor.
>
> >> > > > <mx:DataGrid width="744" height="468" paddingRight="2"
> >> id="ContratosDG"
> >> > > > fontFamily="Verdana" fontSize="10" >
>
> >> > > > <mx:columns>
>
> >> > > > <mx:DataGridColumn fontFamily="Verdana"
> >> itemRenderer="components.legend"
> >> > > > fontSize="10" fontWeight="bold" headerText="Status" width="40"
> >> > > dataField="
> >> > > > CSTATUS"/>
>
> >> > > > <mx:DataGridColumn fontFamily="Verdana" fontSize="10"
> >> fontWeight="bold"
> >> > > > headerText="Filial" width="40" dataField="FILIAL"/>
>
> >> > > > <mx:DataGridColumn fontFamily="Verdana" fontSize="10"
> >> fontWeight="bold"
> >> > > > headerText="Contrato" width="60" dataField="CONTRATO"/>
>
> >> > > > <mx:DataGridColumn fontFamily="Verdana" fontSize="10"
> >> fontWeight="bold"
> >> > > > headerText="Cliente" width="60" dataField="CODIGO"/>
>
> >> > > > <mx:DataGridColumn fontFamily="Verdana" fontSize="10"
> >> fontWeight="bold"
> >> > > > headerText="Nome" width="250" dataField="NOME"/>
>
> >> > > > <mx:DataGridColumn fontFamily="Verdana" fontSize="10"
> >> fontWeight="bold"
> >> > > > headerText="Tipo Contrato" width="80" dataField="TIPOCONTRA"/>
>
> >> > > > </mx:columns>
>
> >> > > > </mx:DataGrid>
>
> >> > > > Componente
>
> >> > > > <?xml version="1.0" encoding="utf-8"?>
>
> >> > > > <s:Group 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="400" height="300">
>
> >> > > > <fx:Declarations>
>
> >> > > > <!-- Place non-visual elements (e.g., services, value objects) here
> >> -->
>
> >> > > > </fx:Declarations>
>
> >> > > > <fx:Script>
>
> >> > > > <![CDATA[
>
> >> > > > *public* *var* nome:String = *new* String();
>
> >> > > > ]]>
>
> >> > > > </fx:Script>
>
> >> > > > <mx:Image height="15" width="15" />
>
> >> > > > </s:Group>
>
> >> > > > --
> >> > > > *Hélio Antonio Fransico 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
> >> flexdev@googlegroups.com
> >> > > Para sair da lista, envie um email em branco para
> >> > > flexdev-unsubscr...@googlegroups.com
> >> > > Mais opções estão disponíveis emhttp://
> >> groups.google.com/group/flexdev
>
> >> > --
> >> > *Hélio Antonio Fransico 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.- Hide quoted text -
>
> >> > - Show quoted text -
>
> >> --
> >> 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 emhttp://groups.google.com/group/flexdev
>
> > --
> > Mario Junior
> >http://blog.mariojunior.com/
> > @mariojunior
>
> > --
> > 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 emhttp://groups.google.com/group/flexdev
>
> --
> *Hélio Antonio Fransico 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 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