| var GwtDeveloperPlugin = { | |
| // Add a new entry when the Add Entry button is clicked. | |
| addEntry: function() { | |
| var prefs = this.getAccessList(); | |
| var hostname = document.getElementById("hostname").value; | |
| if (!hostname || hostname.length == 0) { | |
| alert("No host name provided"); | |
| return; | |
| } | |
| if (hostname.indexOf(",") >=0 || hostname.indexOf("!") >= 0) { | |
| alert("Host name must not contain ',' or '!'"); | |
| return; | |
| } | |
| var exclude = document.getElementById("exclude"); | |
| var incText; | |
| var prefix = ""; | |
| if (exclude.selected) { | |
| incText = "Exclude"; | |
| prefix = "!"; | |
| } else { | |
| incText = "Include"; | |
| } | |
| var listboxEntry = this.makeLBE(incText, hostname); | |
| var prefsEntry = prefix + hostname; | |
| var listbox = document.getElementById("accessListListbox"); | |
| listbox.appendChild(listboxEntry); | |
| prefs.push(prefsEntry.toString()); | |
| this.saveAccessList(prefs); | |
| }, | |
| // Remove the selected entry when the Remove Entry button is clicked. | |
| removeEntry: function() { | |
| var listbox = document.getElementById("accessListListbox"); | |
| var idx = listbox.selectedIndex; | |
| if (idx >= 0) { | |
| listbox.removeItemAt(idx); | |
| var prefs = this.getAccessList(); | |
| prefs.splice(idx, 1); | |
| this.saveAccessList(prefs); | |
| } | |
| }, | |
| // Populate the listbox when the dialog window is loaded | |
| onload: function() { | |
| var listbox = document.getElementById("accessListListbox"); | |
| var prefs = this.getAccessList(); | |
| for (var i = 0 ; i < prefs.length; ++i) { | |
| var pref = prefs[i]; | |
| var hostname = pref; | |
| var incexc = "Include"; | |
| if (pref.length > 0 && pref.charAt(0) == "!") { | |
| hostname = hostname.substr(1); | |
| incexc = "Exclude"; | |
| } | |
| var listboxEntry = this.makeLBE(incexc, hostname); | |
| listbox.appendChild(listboxEntry); | |
| } | |
| }, | |
| // Internal - create a entry for the list box | |
| makeLBE: function(inc, hostname) { | |
| var listboxEntry = document.createElement("listitem"); | |
| var lbeInc = document.createElement("listcell"); | |
| lbeInc.setAttribute("label", inc); | |
| listboxEntry.appendChild(lbeInc); | |
| var lbeHost = document.createElement("listcell"); | |
| lbeHost.setAttribute("label", hostname); | |
| listboxEntry.appendChild(lbeHost); | |
| return listboxEntry; | |
| }, | |
| // Internal - load the access list from the gwt-dev-plugin.accessList | |
| // preference | |
| getAccessList: function() { | |
| var prefServ = Components.classes["@mozilla.org/preferences-service;1"] | |
| .getService(Components.interfaces.nsIPrefService); | |
| var prefs = prefServ.getBranch("gwt-dev-plugin."); | |
| var pref = prefs.getCharPref("accessList"); | |
| if (!pref) { | |
| return []; | |
| } | |
| return pref.split(","); | |
| }, | |
| // Internal - save the access list to the gwt-dev-plugin.accessList | |
| // preference | |
| saveAccessList: function(list) { | |
| var prefServ = Components.classes["@mozilla.org/preferences-service;1"] | |
| .getService(Components.interfaces.nsIPrefService); | |
| var prefs = prefServ.getBranch("gwt-dev-plugin."); | |
| prefs.setCharPref("accessList", list.join(",")); | |
| prefServ.savePrefFile(null); | |
| } | |
| }; |