Thursday, March 1, 2012

JavaScript closure learn

function verifyUpdate(thumbUri, loopName, functionObject){
   
    return (function(){
       
                $.writeln ("verifyUpdate:"+thumbUri);
                var thumbnail = new Thumbnail(thumbUri);
                var status = thumbnail.AdobeDriveExtension.common.statusText;
                if( status == "Up-To-Date"){
                        $.writeln ("verifyUpdate successfully:"+thumbUri);
                        //functionObject();
                         loopWait(functionObject);
                    }
       
                else
                {
                    loop(loopName);
                 }
        }
    );
 }
function checkoutFile(thumbUri,loopName, functionObject){
      return (function(){
            $.writeln ("checkoutFile");
            thumb = new Thumbnail(thumbUri);
            app.document.select(thumb);
            app.document.chooseMenuItem ("CheckOutTools");
            //functionObject();
             loopWait(functionObject);
        }
    );
 }
function verifyCheckedout(thumbUri, loopName,functionObject){
   
    return (function(){
       
                $.writeln ("verifyCheckedout:"+thumbUri);
                var thumbnail = new Thumbnail(thumbUri);
                var status = thumbnail.AdobeDriveExtension.common.statusText;

                if( status == "Checked out by me"){
                         $.writeln ("verifyCheckedout successfully");
                        //functionObject();                  
                        loopWait(functionObject);
                    }
                else
                {
                    loop(loopName);
                 }
        }
    );
 }
function a()
{
    $.writeln ("END");
 }
var loopFunction="verifyUpdateF()";

function loopWait(loopName){
    $.writeln ("loopWait:"+loopName);
    app.scheduleTask(loopName, 3, false);
}

function loop(loopName){
    $.writeln ("loop:"+loopName);
    app.scheduleTask(loopName, 3, false);
}