 
 package weave.visualization.layers
 {
+	import avmplus.getQualifiedClassName;
+	
 	import flash.display.Bitmap;
 	import flash.display.BitmapData;
 	import flash.utils.Dictionary;
 	import flash.utils.getTimer;
 	
 	import mx.utils.ObjectUtil;
+	import mx.utils.StringUtil;
 	
 	import weave.api.WeaveAPI;
 	import weave.api.core.IDisposableObject;

	 */
	public class PlotTask implements IPlotTask, ILinkableObject, IDisposableObject
	{
		public static var debugBusy:Boolean = false;
		public static var debugMouseDownPause:Boolean = false;
		public static var debugIgnoreSpatialIndex:Boolean = false;
		

		
		private function debugTrace(...args):void
		{
			args.unshift(debugId(_plotter),debugId(this),toString());
			$debugTrace.apply(null, args);
		}
		
		public function toString():String
		{
			var type:String = ['subset','selection','probe'][_taskType];
			if (debug)
			{
				var str:String = [
					debugId(_plotter),
					debugId(this),
					type
				].join('-');
				
				if (debug && linkableObjectIsBusy(this))
					str += '(busy)';
				return str;
			}
			return StringUtil.substitute('PlotTask({0}, {1})', type, getQualifiedClassName(_plotter).split(':').pop());
		}
		
		public static const TASK_TYPE_SUBSET:int = 0;
