﻿//version:1.0
//published by:Microsoft
//company:http://www.microsoft.com
//description:OOB While Activity
//assembly:System.Workflow.Activities.dll

function WhileActivity(element) {
	this.element = element	
	var innerBar=document.createElement("DIV")
	innerBar.className="bar"
	innerBar.style["width"]=100+"%"
	innerBar.style["heigth"]=28+"px"
	//innerBar.innerHTML = "<p>"+item.id+"</p>"
    innerBar.innerHTML = "<DIV id='"+element.id+"_id' class='idlabel'>"+element.id+"</DIV>"
    element.appendChild(innerBar)
    this.group = Quanticks.drag().createSimpleActivity(element, innerBar)
    this.Properties = new Array()
	this.RegisteredProperties = new Array()
	this.RegisteredProperties[0] = "Name"
	this.RegisteredProperties[1] = "Description"
	this.RegisteredProperties[2] = "Enabled"	
	this.RegisteredProperties[3] = "Condition"		
	this.ConditionProperties = new Array()
	this.ConditionProperties[0] = "Condition"		
    //composite resize handling
	this.element.onresize=CompositeResize
	this.ActWidth = 160
	this.BlockWidth = 160
	this.noResizeFlag = false
}

WhileActivity.GetToolboxIcon = function()
{
    return "http://netfxlive.com/images/while.GIF";
}

WhileActivity.prototype = {
    Initialize : function()
    {
		var innerConnector=document.createElement("DIV")
	    innerConnector.className="connector"
	    var innerImg=document.createElement("IMG")
	    innerImg.src="http://netfxlive.com/images/connector.gif"
        innerConnector.appendChild(innerImg);
	    connectors[connectors.length] = innerConnector
	    this.element.appendChild(innerConnector)
    },
    Serialize : function()
    {
        var activityFactory = Quanticks.activityFactory()
        var result = "";
        result += "<WhileActivity x:Name=\""+this.Properties["Name"]+"\"" 
        result += ">\n"   
        if (this.Properties["Condition"]!=null)
        {
             		result += "<WhileActivity.Condition>";
			        result += "<RuleConditionReference ConditionName=\""+this.Properties["Condition"]+"\" />";
		            result += "</WhileActivity.Condition>";
        }                
        for(var ch=0;ch<this.element.children.length;ch++)
        {
            var childActivity = activityFactory.getActivity(this.element.children[ch])
            if (childActivity!=null)
            {
                result += childActivity.Serialize()
            }
        }
        result += "</WhileActivity>\n"
        return result
    },
    Deserialize: function(node,connector)
    {
        this.Initialize();
        for(var ab=node.childNodes.length-1; ab>=0; ab--)
        {
            if (node.childNodes[ab].tagName.indexOf(".Condition")>0)
            {
                var condition = node.childNodes[ab].childNodes[0].getAttribute("ConditionName");
                setProperty(node.getAttribute("x:Name"), "Condition", condition )
            }
            else
            {
                addNode(node.childNodes[ab],connector);
            }
        }           
    }    

}

