 		/**
 		 * The popup's window.name
 		 */
-		public const windowName:String = StandardLib.replace(UIDUtil.createUID(), '-', '');
-
+		public function get windowName():String
+		{
+			var object:Object = {
+				id: JavaScript.objectID,
+				path: path
+			};
+			
+			var encoder:Base64Encoder = new Base64Encoder();
+			encoder.encode(Compiler.stringify(object));
+			return StandardLib.replace(encoder.drain(), '+', '_p', '/', '_s', '=', '_e');
+		}
+		
+		public function get path():Array
+		{
+			return WeaveAPI.SessionManager.getPath(WeaveAPI.globalHashMap, this);
+		}
+		
 		public function ExternalTool()
 		{
 			super();

*/
package weave.visualization.tools
{
	import mx.utils.UIDUtil;
	
	import weave.api.WeaveAPI;
	import weave.api.data.IAttributeColumn;
	import weave.api.reportError;
	import weave.api.ui.IObjectWithSelectableAttributes;
	import weave.compiler.StandardLib;
	import weave.core.LinkableHashMap;
	import weave.core.LinkableString;

					"url": toolUrl.value,
					"windowName": windowName,
					"features": "menubar=no,status=no,toolbar=no",
					"path": path
				},
				'if (!window[WEAVE_EXTERNAL_TOOLS])',
				'    window[WEAVE_EXTERNAL_TOOLS] = {};',
