Después de largo rato y gracias a la ayuda de Eldervaz, pude enviar un parámetro a la función que llama toolTipCreate, implementando Singleton, ya que lo que estaba dentro del ámbito del renderer no veía nada del exterior. Ahora bien, el array que proveía de datos a mi Tooltip era siempre el mismo, y ahí está el problema, necesito que de algún modo pueda filtrar los datos.
Para que se entienda mejor, dejo una captura de pantalla, un XML (que luego parseo a ArrayCollection) y algo de código que estoy utilizando.

Código :
<?xml version="1.0"?> <WSMCD> <Resultado> <Clientes> <Cliente IdCliente="1" Entidad="Felipe Almirall" Cuenta="0" IdPais="0002" Pais="DINAMARCA" Categoria="COMPAÑIA DE SEGUROS" IdCategoria="2" Vigente="S"> <ContactosCliente> <Contacto IdContacto="1" Nombre="Contacto Cliente 1" Telefono1="1111111" Telefono2="12121212" Email="[email protected]" TipoContacto="Comercial"/> <Contacto IdContacto="2" Nombre="Contacto Cliente 2" Telefono1="2222222" Telefono2="13131313" Email="[email protected]" TipoContacto="Comercial"/> <Contacto IdContacto="3" Nombre="Contacto Cliente 3" Telefono1="5555555" Telefono2="14141414" Email="[email protected]" TipoContacto="BackOffice"/> <Contacto IdContacto="6" Nombre="Contacto Cliente 6" Telefono1="6666666" Telefono2="15151515" Email="[email protected]" TipoContacto="Comercial"/> </ContactosCliente> <ContactosClienteCustodio> <Custodio IdCustodio="1" NombreCustodio="Custodio 1" IdPais="0001" Pais="CHILE"> <Contactos/> <Cuentas> <Cuenta NumCuenta="3000003033" Comentario="0" IdCta="1" NombreCta="cuenta 000001"/> </Cuentas> </Custodio> <Custodio IdCustodio="2" NombreCustodio="Custodio 2" IdPais="0001" Pais="CHILE"> <Contactos> <Contacto IdContacto="1" NombreContacto="Contacto Custodio 1" Telefono1="1111111" Telefono2="" Email="[email protected]" TipoContacto="Comercial"/> </Contactos> <Cuentas/> </Custodio> <Custodio IdCustodio="3" NombreCustodio="Custodio 3" IdPais="0002" Pais="DINAMARCA"> <Contactos> <Contacto IdContacto="2" NombreContacto="Contacto Custodio 2" Telefono1="2222222" Telefono2="" Email="[email protected]" TipoContacto="BackOffice"/> <Contacto IdContacto="7" NombreContacto="Contacto Custodio 7" Telefono1="7777777" Telefono2="" Email="[email protected]" TipoContacto="BackOffice"/> </Contactos> <Cuentas/> </Custodio> <Custodio IdCustodio="5" NombreCustodio="Custodio 5" IdPais="0003" Pais="PORTUGAL"> <Contactos> <Contacto IdContacto="4" NombreContacto="Contacto Custodio 4" Telefono1="4444444" Telefono2="" Email="[email protected]" TipoContacto="Comercial"/> </Contactos> <Cuentas/> </Custodio> </ContactosClienteCustodio> </Cliente> <Cliente IdCliente="2" Entidad="Annette Bencomo" Cuenta="1" IdPais="0003" Pais="PORTUGAL" Categoria="FONDOS MUTUOS" IdCategoria="1" Vigente="S"> <ContactosCliente> <Contacto IdContacto="4" Nombre="Contacto Cliente 4" Telefono1="5555555" Telefono2="16161616" Email="[email protected]" TipoContacto="Comercial"/> <Contacto IdContacto="5" Nombre="Contacto Cliente 5" Telefono1="5555555" Telefono2="17171717" Email="[email protected]" TipoContacto="BackOffice"/> </ContactosCliente> <ContactosClienteCustodio> <Custodio IdCustodio="2" NombreCustodio="Custodio 2" IdPais="0001" Pais="CHILE"> <Contactos/> <Cuentas> <Cuenta NumCuenta="1000001011" Comentario="0" IdCta="2" NombreCta="cuenta 000002"/> </Cuentas> </Custodio> <Custodio IdCustodio="3" NombreCustodio="Custodio 3" IdPais="0002" Pais="DINAMARCA"> <Contactos/> <Cuentas> <Cuenta NumCuenta="2000002022" Comentario="0" IdCta="1" NombreCta="cuenta 000001"/> </Cuentas> </Custodio> <Custodio IdCustodio="4" NombreCustodio="Custodio 4" IdPais="0001" Pais="CHILE"> <Contactos> <Contacto IdContacto="6" NombreContacto="Contacto Custodio 6" Telefono1="6666666" Telefono2="" Email="[email protected]" TipoContacto="BackOffice"/> </Contactos> <Cuentas> <Cuenta NumCuenta="25690044580" Comentario="0" IdCta="1" NombreCta="cuenta 000001"/> <Cuenta NumCuenta="25690044580" Comentario="0" IdCta="3" NombreCta="cuenta 000003"/> </Cuentas> </Custodio> <Custodio IdCustodio="5" NombreCustodio="Custodio 5" IdPais="0003" Pais="PORTUGAL"> <Contactos> <Contacto IdContacto="8" NombreContacto="Contacto Custodio 8" Telefono1="8888888" Telefono2="" Email="[email protected]" TipoContacto="Comercial"/> <Contacto IdContacto="5" NombreContacto="Contacto Custodio 5" Telefono1="5555555" Telefono2="" Email="[email protected]" TipoContacto="Comercial"/> <Contacto IdContacto="3" NombreContacto="Contacto Custodio 3" Telefono1="3333333" Telefono2="" Email="[email protected]" TipoContacto="BackOffice"/> </Contactos> <Cuentas> <Cuenta NumCuenta="25690044580" Comentario="0" IdCta="1" NombreCta="cuenta 000001"/> </Cuentas> </Custodio> </ContactosClienteCustodio> </Cliente> </Clientes> </Resultado> <Error Status="0"/> </WSMCD>
Acá creo el ArrayCollection:
Código :
private function initToolTipData():void{
// Por cada nodo, crea un nuevo Object, añade los atributos de acuerdo
// al XML e inserta en un Array Collection
var oElemento:Object;
for each ( var element:XML in xmlDataGridClientes.Resultado.Clientes.Cliente.ContactosCliente.Contacto){
oElemento = new Object();
oElemento.idContacto = element.@idContacto;
oElemento.infoContacto = element.@Nombre + " | " + element.@Telefono1 + " | " + element.@Telefono2 + " | " + element.@Email;
miArrayCollection.addItem(oElemento);
}
var mySingleton:Singleton = Singleton.getInstance();
mySingleton.arrContactos = miArrayCollection;
}
Acá el DataGrid en cuestión:
Código :
<mx:DataGrid width="100%" height="90%" id="dgClientes"
dataProvider="{xmlDataGridClientes.Resultado.Clientes.Cliente}">
<mx:columns>
<mx:DataGridColumn headerText="Entidad" dataField="@Entidad"/>
<mx:DataGridColumn headerText="Cuenta" dataField="@Cuenta"/>
<mx:DataGridColumn headerText="País" dataField="@Pais"/>
<mx:DataGridColumn headerText="Categoría" dataField="@Categoria"/>
<mx:DataGridColumn id="Contacto" headerText="Contacto" dataField="@IdCliente" >
<mx:itemRenderer>
<mx:Component>
<itemRenderers:iconToolTipContacto
toolTipCreate="createCustomTip(event)"
toolTipShow="positionTip(event)"
toolTip=" " />
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Clte. Vigente" dataField="@Vigente"/>
</mx:columns>
</mx:DataGrid>
Y por último, el DataGrid que tengo dentro del ToolTip, que recibe el ArrayCollection que formé antes:
Código :
<mx:DataGrid dataProvider="{_arrContactos}" width="100%"
backgroundColor="#FFFFCC" borderStyle="none" alternatingItemColors="#FFFFCC">
<mx:columns>
<mx:DataGridColumn headerText="Contactos Cliente" dataField="infoContacto"/>
</mx:columns>
</mx:DataGrid>
De ésta forma sobre cada cliente que me paro, me muestra TODOS los contactos, y necesito que me muestre sólo los suyos.
No necesito que me resuelvan el problema codificando porque es tedioso, sólo que me den una idea de como encarar la lógica, que herramientas utilizar.
Saludos y gracias!
