| 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); |
| } |
| |
| }; |