Here is the code for GridImageRenderer which I'm using.  The code is a
little messy because of its complex use, sorry for that.


<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"; width="100"
height="115"
     creationComplete="initCanvus()">

     <mx:Metadata>
           [Event(name="imagePreview",type="desktopclient.PreviewEvent")]
     </mx:Metadata>
     <mx:Script>
         <![CDATA[
             import mx.formatters.DateFormatter;
             import mx.controls.Image;
             import mx.controls.Alert;

             private var srcPrefix:String = "";
             private var imagesLoaded:Boolean = false;

             public var result:Object;

             private function initCanvus():void
             {
                 if (!imagesLoaded) {
                     this.data = super.data;
                     imagesLoaded = true;
                 }
             }

             // Override the set method for the data property.
             override public function set data(value:Object):void
             {
                     super.data = value;
                     imagesLoaded = true;

                     if(Capabilities.os.search("Mac") >= 0){
                         srcPrefix = "File://";
                     }

                     if (value != null)
                     {
                         if (XMLComboData.isVideoType(data.extension)) {
                             imgBig.source =
File.applicationDirectory.nativePath + ImageHelper.pathDelim + "icons" +
ImageHelper.pathDelim + "video-icon.jpg";
                             imgBig.width = 100;
                             imgBig.height = 100;
                             imgBig.x = 0;
                             imgBig.y = 0;
                             imgBig.setConstraintValue("horizontalAlign",
"center");
                             imgBig.setConstraintValue("verticalAlign",
"middle");
                             imgSmall.visible = false;
                         } else {

                             imgBig.source = srcPrefix +
data.getSource().replace(".", "_thumb.");

                              if (data.paired) {
                                 imgBig.width = 70;
                                 imgBig.height = 70;
                                 imgBig.x = 5;
                                 imgBig.y = 5;
                                
imgBig.setConstraintValue("horizontalAlign", "left");
                                
imgBig.setConstraintValue("verticalAlign", "top");

                                  imgSmall.source = srcPrefix +
data.otherElem.getSource().replace(".", "_thumb.");
                                 imgSmall.visible = true;

                             } else {
                                
imgBig.setConstraintValue("horizontalAlign", "center");
                                
imgBig.setConstraintValue("verticalAlign", "middle");

                                 imgBig.width = 100;
                                 imgBig.height = 100;
                                 imgBig.x = 0;
                                 imgBig.y = 0;
                                 imgSmall.visible = false;
                             }
                         }

                         doDrawTextIndicators();
                     }
                 } else {
                     imagesLoaded = false;
                 }
             }

             private function onRollOver(event:Event):void
             {
                 event.target.toolTip = generateToolTip();
             }

             private function generateToolTip():String
             {
                 var retStr:String = "";
                 if (data.copied) {
                     var cd:Date = new Date(data.lastCopiedAt);
                     var df:DateFormatter = new DateFormatter();
                     df.formatString = "MMM DD, YYYY - JJ:NN:SS";
                        retStr = "Last copied to Hot folder: " +
df.format(cd);
                 }
                 return retStr;
             }

             public function doDrawTextIndicators():void
             {
                 if (data.copied) {
                         lblBottom.text = "Copied";
                 } else {
                         lblBottom.text = "";
                 }
             }

             public function doOnImageClick(event:MouseEvent):void
             {
                 var imgSrc:String =
Image(event.target.parent).source.toString();
                 if (imgSrc.indexOf("thumb") >= 0) {
                     imgSrc = imgSrc.replace("_thumb.", ".");
                 }
                 if (XMLComboData.isVideoType(data.extension)) {
                     dispatchEvent(new PreviewEvent(imgSrc,
data.getSource(), "imagePreview", true));
                 } else {
                     dispatchEvent(new PreviewEvent(imgSrc, imgSrc,
"imagePreview", true));
                 }
             }

         ]]>
     </mx:Script>
         <mx:Image x="45" y="45" id="imgSmall" scaleContent="true"
width="50" height="50"
             horizontalAlign="right" verticalAlign="bottom"
doubleClickEnabled="true" maintainAspectRatio="true"
             doubleClick="doOnImageClick(event)"/>
         <mx:Image id="imgBig" scaleContent="true" width="100"
height="100" x="0" y="0"
             horizontalAlign="center" verticalAlign="middle"
doubleClickEnabled="true" maintainAspectRatio="true"
             doubleClick="doOnImageClick(event)"/>
         <mx:Label id="lblBottom" color="#414141" fontWeight="bold"
bottom="0" horizontalCenter="0" rollOver="onRollOver(event)"/>

</mx:Canvas>



Regards,
~ Arif


Reply via email to