Hi folks,

I have a custom item renderer (see code attached below) that looks at a data 
subset and determines whether there exist a URL in it or not.  If there does 
exist a URL, the item renderer sets a new bg color style for itself.

The item renderer is assigned to a list.  Issue is when the dataprovider to the 
list is modified and refresh, seems like the formatting sticks to the same cell 
but new information is in the cell.  

Is there a clenup function i should be running on the list or itemrenderers 
after my dataprovider is refreshed?

Thanks,

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"; cornerRadius="0" 
width="375" height="89" borderStyle="solid" backgroundColor="#3E3E3E" 
borderColor="#000000" creationComplete="{determineURL(data._itemTitle)}">
        <mx:Style>
                .hrRule 
                        {
                                border-bottom: dashed 2px #0066cc;
                        }
                .twBody 
                        {
                                font-family: Arial, sans-serif;
                                font-size: 11px;
                                line-height: 18px;
                                
                        }
                        
                .twSig 
                        {
                                font-family: Arial, sans-serif;
                                font-size: 10px;
                                font-style: italic;
                                line-height: 18px;
                        }
        </mx:Style>
        <mx:Script>
                <![CDATA[
                        private var _msInMinute:Number = 1000 * 60;
                        [Bindable]
                        public var _itemTitle:String;
                        [Bindable]
                        public var _itemInfo:String;
                        [Bindable]
                        public var _itemtimeStamp:String;                       
                        [Bindable]
                        public var _itemThumb:String;
                        [Bindable]
                        public var _itemAuthor:String;
                        [Bindable]
                        public var _itemID:Number;
                        [Bindable]
                        public var _itemType:String;
                        
                        //  Regular Expression
                        private var urlMatch:RegExp = 
/[^"|^>](http:\/\/+[\S]*)/gi;
                        private var twitPicMatch:RegExp = 
/[^"|^>](http:\/\/twitpic.com+[\S]*)/gi;
                        
                        public function determineURL(itemTitle:String):void {
                                trace("FIGURING OUT IF ITS A URL");
                                if (itemTitle.search(urlMatch) >= 0) {
                                        //newURL = "URL IS HERE";
                                        this.setStyle("backgroundColor", 
"0x687B8C");
                                        //this.height = 249;
                                } else if (itemTitle.search(twitPicMatch) >= 0) 
{
                                        //newURL = "URL IS HERE";
                                        this.setStyle("backgroundColor", 
"0x687EEE");
                                        //this.height = 249;
                                } else {
                                        this.setStyle("backgroundColor", 
"0x3E3E3E");
                                }
                                /*
                                if (itemTitle.search(urlMatch) >= 0) {
                                        //newURL = "URL IS HERE";
                                        this.setStyle("backgroundColor", 
"0x687B8C");
                                        //this.height = 249;
                                }*/ 
                                //itemTitle = itemTitle + " " + newURL;
                        }
                        
                        public function determineHowLong(targetDate:Number, 
sourceDate:Number):void 
                        {
                                trace(">>determineHowLong");
                                var howLong:String = new String("n/a");
                                var MSdifference:Number = sourceDate - 
targetDate;
                                this._itemInfo = determineMinutes(MSdifference) 
+ " minutes ago";
                                //return howLong;       
                        }
                        
                        private function tellTime(epochTime:Number):String {
                                var time:String = "";
                                var tempDate:Date = new Date(epochTime);
                                time = tempDate.getHours() + ":" + 
tempDate.getSeconds();
                                trace(">>tellTime " + time);
                                return time;
                        }
                        
                        private function msgType(type:String):String {
                                var msg:String = "";
                                switch(type) {
                                        case "timeline":
                                                msg = "G";
                                        break;
                                        case "dm":
                                                msg = "D";
                                        break;
                                        case "search":
                                                msg = "S";
                                        break;
                                }
                                return msg;
                        }
                        
                        private function 
determineMinutes(miliSecs:Number):Number {
                                trace(">>determineMinutes");
                                var minuteDiff:Number = 0;
                                minuteDiff = Math.round(miliSecs / _msInMinute);
                                return minuteDiff
                        }
                        
                ]]>
        </mx:Script>
        
        <!--<mx:Label id="itemTitle_lbl" x="10" y="10" width="350" 
color="#EDEAEA" text="{itemTitle}" height="46" fontFamily="Arial" fontSize="11" 
/>-->
        <mx:Text x="40" y="0" width="323" height="57" color="#F3F4F4" 
fontFamily="Arial" fontSize="11" htmlText="{data._itemTitle}" 
styleName="twBody" id="itemtit"/>
        <mx:Text x="40" y="55" width="325" height="18" color="#E3E6E6" 
fontFamily="Arial" fontSize="10" text="ago by {data._itemAuthor}" 
textAlign="right"/>
        <mx:Text x="10" y="13" width="22" id="_typed" 
text="{msgType(data._itemType)}"/>
</mx:Canvas>


Reply via email to