var profileCore = ""; var selected = null; var currProfile = ""; function CreateProfile() { // Need to call CreateNewProfile xuls // var win = window.openDialog('resource://res/profile/cpwManager.xul', 'Creator', 'chrome'); dump("\ngot here\n"); //this.location.replace(this.location); //this.location.replace("resource:/res/profile/cpwManager.xul"); this.location.href = "resource:/res/profile/cpwManager.xul"; //this.location = "resource:/res/profile/cpwManager.xul"; } function MigrateProfile(override) { // Hack to avoid writing two copies of this if (override) selected = override; if (!selected) { dump("Select a profile to migrate.\n"); return; } var name = selected.getAttribute("rowName"); var migrate = selected.getAttribute("rowMigrate"); if (migrate != "true") { dump("This profile doesn't need migration.\n"); return; } profileCore.MigrateProfile(name); //this.location.replace(this.location); //this.location.href = this.location; this.location.href = "resource:/res/profile/pm.xul"; } function MigrateAllProfiles() { var body = document.getElementById("theTreeBody"); var child = body.firstChild; while (child) { if (child.getAttribute("rowMigrate") == "true") { MigrateProfile(child); } child = child.nextSibling; } } function RenameProfile(w) { if (!selected) { dump("Select a profile to migrate.\n"); return; } var newName = w.document.getElementById("NewName").value; var oldName = selected.getAttribute("rowName"); var migrate = selected.getAttribute("rowMigrate"); if (migrate == "true") { dump("Migrate this profile before renaming it.\n"); return; } //dump("RenameProfile : " + oldName + " to " + newName + "\n"); profileCore.RenameProfile(oldName, newName); //this.location.replace(this.location); this.location.href = "resource:/res/profile/pm.xul"; } function DeleteProfile(deleteFilesFlag) { if (!selected) { dump("Select a profile to delete.\n"); return; } var migrate = selected.getAttribute("rowMigrate"); var name = selected.getAttribute("rowName"); //dump("Delete '" + name + "'\n"); profileCore.DeleteProfile(name, deleteFilesFlag); //this.location.replace(this.location); //this.location.href = this.location; this.location.href = "resource:/res/profile/pm.xul"; } function StartCommunicator() { dump("************Inside Start Communicator prof\n"); if (!selected) { dump("Select a profile to migrate.\n"); return; } var migrate = selected.getAttribute("rowMigrate"); var name = selected.getAttribute("rowName"); if (migrate == "true") { profileCore.MigrateProfile(name); } dump("************name: "+name+"\n"); profileCore.StartCommunicator(name); ExitApp(); } function ExitApp() { var toolkitCore = XPAppCoresManager.Find("toolkitCore"); if (!toolkitCore) { toolkitCore = new ToolkitCore(); if (toolkitCore) { toolkitCore.Init("toolkitCore"); } } if (toolkitCore) { toolkitCore.CloseWindow(parent); } } function showSelection(node) { dump("************** In showSelection routine!!!!!!!!! \n"); // (see tree's onclick definition) // Tree events originate in the smallest clickable object which is the cell. The object // originating the event is available as event.target. We want the cell's row, so we go // one further and get event.target.parentNode. selected = node; var num = node.getAttribute("rowNum"); dump("num: "+num+"\n"); var name = node.getAttribute("rowName"); dump("name: "+name+"\n"); //dump("Selected " + num + " : " + name + "\n"); } function addTreeItem(num, name, migrate) { dump("Adding element " + num + " : " + name + "\n"); var body = document.getElementById("theTreeBody"); var newitem = document.createElement('treeitem'); var newrow = document.createElement('treerow'); newrow.setAttribute("rowNum", num); newrow.setAttribute("rowName", name); newrow.setAttribute("rowMigrate", migrate); var elem = document.createElement('treecell'); // Hack in a differentation for migration if (migrate) var text = document.createTextNode('Migrate'); else var text = document.createTextNode(''); elem.appendChild(text); newrow.appendChild(elem); var elem = document.createElement('treecell'); var text = document.createTextNode(name); elem.appendChild(text); newrow.appendChild(elem); newitem.appendChild(newrow); body.appendChild(newitem); } function loadElements() { dump("****************hacked onload handler adds elements to tree widget\n"); var profileList = ""; profileCore = Components.classes["component://netscape/profile/profile-services"].createInstance(); profileCore = profileCore.QueryInterface(Components.interfaces.nsIProfileServices); dump("profile = " + profileCore + "\n"); profileList = profileCore.GetProfileList(); //dump("Got profile list of '" + profileList + "'\n"); profileList = profileList.split(","); currProfile = profileCore.GetCurrentProfile(); for (var i=0; i < profileList.length; i++) { var pvals = profileList[i].split(" - "); addTreeItem(i, pvals[0], (pvals[1] == "migrate")); } } function openRename() { if (!selected) dump("Select a profile to rename.\n"); else { var migrate = selected.getAttribute("rowMigrate"); if (migrate == "true") dump("Migrate the profile before renaming it.\n"); else var win = window.openDialog('pmrename.xul', 'Renamer', 'chrome'); } } function ConfirmDelete() { if (!selected) { dump("Select a profile to delete.\n"); return; } var migrate = selected.getAttribute("rowMigrate"); var name = selected.getAttribute("rowName"); if (migrate == "true") { dump("Migrate this profile before deleting it.\n"); return; } var win = window.openDialog('pmDelete.xul', 'Deleter', 'chrome'); return win; } function ConfirmMigrateAll() { var win = window.openDialog('pmMigrateAll.xul', 'MigrateAll', 'chrome'); return win; } // -------------------------------------------- begin Hack for OnLoad handling setTimeout('loadElements()', 0); // -------------------------------------------- end Hack for OnLoad handling