src/it/ht/rcs/console/entities/view/renderers/ContactListRenderer.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true"
dataChange="init()">
<fx:Script>
<![CDATA[
import it.ht.rcs.console.entities.model.Contact;
import it.ht.rcs.console.monitor.controller.LicenseManager;
import it.ht.rcs.console.operations.view.evidences.renderers.ChatIcons;
import locale.R;
[Bindable]
private var ImageClass:Class;
[Bindable]
private var bgColor:uint;
[Embed('/img/NEW/entity_16.png')]
private static const icon:Class;
private function init():void
{
if (data)
{
ImageClass=ChatIcons[data.type.toLowerCase()] || ChatIcons.defaultIcon
switch (data.type)
{
case "facebook":
bgColor=0x00CCFF;
break;
case "whatsapp":
bgColor=0x66FF99;
break;
case "twitter":
bgColor=0x66FFFF;
break;
case "call":
bgColor=0xFFCC00;
break;
case "skype":
bgColor=0x66CCFF;
break;
case "telegram":
bgColor=0x66CCFF;
break;
case "sms":
bgColor=0xFFCC00;
break;
case "phone":
bgColor=0xFFCC00;
break;
default:
bgColor=0xFFFFFF;
break;
}
}
}
private function formatPerc(perc:String):String
{
if (perc != "" && perc != null)
{
return perc + " %";
}
return "";
}
private function formatPeer(data:Object):String
{
var contact:Contact=data as Contact;
if (contact.peer_name == null || contact.peer_name == "")
return contact.peer;
return contact.peer_name + " (" + contact.peer + ")";
}
private function addAsEntity(e:MouseEvent):void
{
e.stopImmediatePropagation();
owner.dispatchEvent(new Event("entityAdd"));
}
]]>
</fx:Script>
<s:VGroup paddingBottom="0"
paddingTop="0"
gap="0"
width="100%">
<s:BorderContainer width="100%"
height="100%"
backgroundColor="{bgColor}"
backgroundAlpha="0.15"
borderVisible="false"
id="bg">
<s:HGroup paddingBottom="5"
paddingLeft="5"
paddingRight="5"
paddingTop="5"
verticalAlign="middle"
width="100%">
<s:Image source="{ImageClass}"
width="16"
height="16"
smooth="true"
toolTip="{data.type}"/>
<s:Label text="{formatPeer(data)}"/>
<s:Spacer width="100%"/>
<s:HGroup paddingBottom="0"
paddingLeft="0"
paddingRight="0"
paddingTop="0"
width="30">
<s:Label text="{data.size}"
visible="false"/>
</s:HGroup>
<s:HGroup paddingBottom="0"
paddingLeft="0"
paddingRight="0"
paddingTop="0"
width="30"
horizontalAlign="right"
toolTip="count">
<s:Label text="{data.count}"
textAlign="right"/>
</s:HGroup>
<s:HGroup paddingBottom="0"
paddingLeft="0"
paddingRight="0"
paddingTop="0"
width="50"
horizontalAlign="right"
toolTip="percent">
<s:Label text="{formatPerc(data.percent) || ''}"
fontWeight="bold"
textAlign="right"/>
</s:HGroup>
<s:HGroup paddingBottom="0"
paddingLeft="0"
paddingRight="0"
paddingTop="0"
horizontalAlign="center">
<s:Image source="{icon}"
toolTip="{R.get('ENTITY_ADD_AS')}"
buttonMode="true"
useHandCursor="true" click="addAsEntity(event)" visible="{LicenseManager.instance.intelligence}" includeInLayout="{LicenseManager.instance.intelligence}" enabled="{Console.currentSession.user.is_view_profiles()}"/>
</s:HGroup>
</s:HGroup>
<s:Line width="100%">
<s:stroke>
<s:SolidColorStroke color="0xCCCCCC"/>
</s:stroke>
</s:Line>
</s:BorderContainer>
</s:VGroup>
</s:ItemRenderer>