hackedteam/rcs-console

View on GitHub
src/it/ht/rcs/console/entities/view/renderers/ContactListRenderer.mxml

Summary

Maintainability
Test Coverage
<?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>