﻿package TableWidget{
	

	import flash.display.MovieClip;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import fl.containers.ScrollPane;
	import flash.events.MouseEvent;
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.xml.XMLNode;
	/**
	* This class is used to create Column heading and keep count of them.
	* @author Devender Gupta
	*/
	public class ColumnHeaderStack extends EventDispatcher{
		
		private var arrHeadings = new Array();
		private var currentIndex:int = 0;
		private var arrdeletedHeadings:Array = new Array();
		private static var instance:ColumnHeaderStack;
		public function ColumnHeaderStack(){
		}
		
		public static function getInstance():ColumnHeaderStack{
			if(instance == null){
				instance =  new ColumnHeaderStack();
			}
			return instance;
		}
		
		public function killSingleton(){
			instance = null;
		}
		public function drawNext():String{
			var nextName = "";
			if(arrdeletedHeadings.length > 0){
				nextName = arrdeletedHeadings.pop()
			}else{
				currentIndex = currentIndex+1;
				nextName = "Column "+ currentIndex
				arrHeadings.push(nextName);
			}
			return nextName;
		}
		
		public function putBack(columnHeading:String){
			if(columnHeading.indexOf("Column") != -1){
				var num = int(columnHeading.split("olumn ")[1]);
				if(num == currentIndex){
					currentIndex--;
					arrHeadings.pop();
				}/*else{
					arrdeletedHeadings.unshift(columnHeading);
				}*/
				
			}
		}
		
	}
}
