Você está na página 1de 4

[flexdev] Re: Mudar imagem itemRenderer em tempo de execucao

Ricardo Ramires
Thu, 05 Jun 2008 03:37:34 -0700
Fiz um component para usar como itemrenderer para trocar as 4 imagens
de status da lista de usuarios de um chat onde usei um datagrid
"embedando" as imagens:
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml";
horizontalAlign="center"
verticalAlign="middle"
implements="mx.controls.listClasses.IDropInListItemRenderer" >
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.events.FlexEvent;
import mx.controls.listClasses.BaseListData;
import mx.controls.listClasses.IDropInListItemRenderer;
import mx.controls.listClasses.IListItemRenderer;
private var _data:Object = null;

override public function set data(value:Object):void


{
_data = value;
invalidateProperties()
dispatchEvent(new
FlexEvent(FlexEvent.DATA_CHANGE));
}
[Bindable("dataChange")]
override public function get data():Object
{
return _data;
}

[Embed("assets/status_livre.png")]
private var livreIcon:Class;
[Embed("assets/status_ocupado.png")]
private var ocupadoIcon:Class;
[Embed("assets/status_voltologo.png")]
private var voltologoIcon:Class;
[Embed("assets/status_ausente.png")]
private var ausenteIcon:Class;

override protected function commitProperties():void


{
super.commitProperties();
if (_data != null)
{
switch(_data[_listData.dataField])
{
case 0 :
icon_img.source =
livreIcon;
break;
case 1 :
icon_img.source =
ocupadoIcon;
break;
case 2 :
icon_img.source =
voltologoIcon;
break;
case 3 :
icon_img.source =
ausenteIcon;
break;
}
}
}

private var _listData:DataGridListData;


[Bindable("dataChange")]
public function get listData():BaseListData
{
return _listData;
}
public function set listData(value:BaseListData):void
{
_listData = DataGridListData(value);
}

]]>
</mx:Script>
<mx:Image id="icon_img" source="livreIcon" />
</mx:VBox>
Basta vc mudar para [Embed("assets/doc.png")] private var
docIcon:Class;, etc... e no if (_data != null)
{
switch(_data[_listData.dataField])
{
case doc :
icon_img.source =
livreIcon;
break;
etc...
p/ implementar no datagrid
<mx:DataGridColumn dataField="id_status" headerText=""
itemRenderer="caminhonasuaapp.StatusChat" />
[ ]'s
Ricardo

On Jun 5, 7:21 am, "Elvis Fernandes" <[EMAIL PROTECTED]> wrote:


> Como essa informação vem do banco? Formato texto?
>
> Bom, de qualquer forma o que você pode fazer é definir a propriedade
> source={suaFuncao(data)}, onde suaFuncao() é uma função [Bindable] que
> recebe o objeto data do dataProvider e verifica qual imagem deve ser
> mostrada, retornando a imagem apropriada.
>
> Espero ter sido claro. =)
>
> Elvis Fernandeshttp://www.elvis.eti.br
>
> 2008/6/4 Lorenzi <[EMAIL PROTECTED]>:
>
>
>
>
>
>
>
> > Pessoal preciso de uma ideia, como faço pra mudar a imagem em tempo de
> > excucao, tipo se o dataFiled extensao for doc mostra a imagem do word
> > se for xls mostra do excel. Estes dados vem do banco.
>
> > <mx:DataGrid x="10" y="43" width="550" id="gridDcto" height="198"
> > dataProvider="{populaGrid}">
> > <mx:columns>
> > <mx:DataGridColumn headerText="Numero"
> > dataField="numero_dcto"/>
> > <mx:DataGridColumn headerText="Nome"
> > dataField="nome_dcto"/>
> > <mx:DataGridColumn headerText="Extensao"
> > dataField="extensao"/>
> > <mx:DataGridColumn dataField="image"
> > headerText="EXT" width="50" editable="false"
> > sortable="false" resizable="false">
> > <mx:itemRenderer>
> > <mx:Component id="ImageRenderer">
> > <mx:VBox horizontalAlign="center"
> > verticalAlign="middle">
> > <mx:Image verticalAlign="middle" source="{../
> > excel.jpg}"/>
> > </mx:VBox>
> > </mx:Component>
> > </mx:itemRenderer>
> > </mx:DataGridColumn>
> > </mx:columns>
> > </mx:DataGrid>
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Você também pode gostar