This is just some static backup of the original site, don't expect every link to work!

source: content/vI_statusmenu.js @ 184c6c

ng_0.9
Last change on this file since 184c6c was 184c6c, checked in by rene <rene@…>, 11 years ago

rearranged tree structure / added build-script

  • Property mode set to 100644
File size: 11.7 KB
Line 
1/* ***** BEGIN LICENSE BLOCK *****
2    This program is free software; you can redistribute it and/or modify
3    it under the terms of the GNU General Public License as published by
4    the Free Software Foundation; either version 2 of the License, or
5    (at your option) any later version.
6
7    This program is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10    GNU General Public License for more details.
11
12    You should have received a copy of the GNU General Public License
13    along with this program; if not, write to the Free Software
14    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
15
16    The Original Code is the Virtual Identity Extension.
17
18    The Initial Developer of the Original Code is Rene Ejury.
19    Portions created by the Initial Developer are Copyright (C) 2007
20    the Initial Developer. All Rights Reserved.
21
22    Contributor(s):
23 * ***** END LICENSE BLOCK ***** */
24
25virtualIdentityExtension.ns(function() { with (virtualIdentityExtension.LIB) {
26var statusmenu = {
27    prefroot : Components.classes["@mozilla.org/preferences-service;1"]
28        .getService(Components.interfaces.nsIPrefService)
29        .getBranch(null),
30
31    objStatusMenu : null,
32    objSaveBaseIDMenuItem : null,
33    objStorageSaveMenuItem : null,
34    objStatusMenuSeparator : null,
35    objSaveSwitch : null,
36    objSaveBaseIDSwitch : null,
37    objSaveSMTPSwitch : null,
38    objFccSwitch : null,
39    objStatusText : null,
40   
41    observe: function(subject, topic, data) {
42        switch (data) {
43            case "extensions.virtualIdentity.fcc_show_switch":
44                statusmenu.objFccSwitch.setAttribute("hidden", !statusmenu.prefroot.getBoolPref(data));
45                // no break, continue like with doFcc           
46            case "extensions.virtualIdentity.doFcc":
47                statusmenu.objFccSwitch.setAttribute("checked", statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.doFcc"));
48                break;
49            case "extensions.virtualIdentity.storage_show_switch":
50                statusmenu.objSaveSwitch.setAttribute("hidden", !statusmenu.prefroot.getBoolPref(data));
51                break;
52            case "extensions.virtualIdentity.storage_show_baseID_switch":
53                statusmenu.objSaveBaseIDSwitch.setAttribute("hidden", !statusmenu.prefroot.getBoolPref(data));
54                break;
55            case "extensions.virtualIdentity.storage_show_SMTP_switch":
56                statusmenu.objSaveSMTPSwitch.setAttribute("hidden", !statusmenu.prefroot.getBoolPref(data));
57                break;
58            case "extensions.virtualIdentity.storage_storedefault":
59                statusmenu.objStorageSaveMenuItem.setAttribute("checked", statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage_storedefault"));
60                break;
61            case "extensions.virtualIdentity.storage_store_base_id":
62                statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", statusmenu.prefroot.getBoolPref(data));
63                break;
64            case "extensions.virtualIdentity.storage_store_SMTP":
65                statusmenu.objSaveSMTPMenuItem.setAttribute("checked", statusmenu.prefroot.getBoolPref(data));
66                break;
67            case "extensions.virtualIdentity.storage_colorIndication":
68                document.getElementById("identityHbox").setAttribute("colorize", statusmenu.prefroot.getBoolPref(data))
69                document.getElementById("baseIDHbox").setAttribute("colorize", statusmenu.prefroot.getBoolPref(data))
70                document.getElementById("smtpServerHbox").setAttribute("colorize", statusmenu.prefroot.getBoolPref(data))
71                break;
72            case "extensions.virtualIdentity.storage":
73                if (statusmenu.prefroot.getBoolPref(data)) {
74                    statusmenu.objStorageSaveMenuItem.removeAttribute("hidden");
75                    statusmenu.objSaveBaseIDMenuItem.removeAttribute("hidden");
76                    statusmenu.objSaveSMTPMenuItem.removeAttribute("hidden");
77                    statusmenu.objStatusMenuSeparator.removeAttribute("hidden");
78                }
79                else {
80                    statusmenu.objStorageSaveMenuItem.setAttribute("hidden", "true");
81                    statusmenu.objSaveBaseIDMenuItem.setAttribute("hidden", "true");
82                    statusmenu.objSaveSMTPMenuItem.setAttribute("hidden", "true");
83                    statusmenu.objStatusMenuSeparator.setAttribute("hidden", "true");
84                }
85                break;
86        }
87        statusmenu.menuConstraint(statusmenu.objStorageSaveMenuItem);
88    },
89   
90    addObserver: function() {
91        statusmenu.prefroot.addObserver("extensions.virtualIdentity.fcc_show_switch", statusmenu, false);
92        statusmenu.prefroot.addObserver("extensions.virtualIdentity.doFcc", statusmenu, false);
93        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage", statusmenu, false);
94        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_switch", statusmenu, false);
95        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_baseID_switch", statusmenu, false);
96        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_SMTP_switch", statusmenu, false);
97        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_colorIndication", statusmenu, false);
98        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_storedefault", statusmenu, false);
99        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_store_base_id", statusmenu, false);
100        statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_store_SMTP", statusmenu, false);
101    },
102   
103    removeObserver: function() {
104        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.fcc_show_switch", statusmenu);
105        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.doFcc", statusmenu);
106        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage", statusmenu);
107        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_switch", statusmenu);
108        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_baseID_switch", statusmenu);
109        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_SMTP_switch", statusmenu);
110        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_colorIndication", statusmenu);
111        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_storedefault", statusmenu);
112        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_store_base_id", statusmenu);
113        statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_store_SMTP", statusmenu);
114    },
115   
116    init : function () {
117        statusmenu.prefroot.QueryInterface(Components.interfaces.nsIPrefBranch2);
118
119        statusmenu.objStatusMenu = document.getElementById("vI-status-menu");
120        statusmenu.objSaveBaseIDMenuItem = document.getElementById("virtualIdentityExtension_statusMenu_storage_saveBaseID");
121        statusmenu.objSaveSMTPMenuItem = document.getElementById("virtualIdentityExtension_statusMenu_storage_saveSMTP");
122        statusmenu.objStorageSaveMenuItem = document.getElementById("virtualIdentityExtension_statusMenu_storage_save");
123        statusmenu.objStatusMenuSeparator = document.getElementById("virtualIdentityExtension_statusMenu_separator");
124        statusmenu.objSaveSwitch = document.getElementById("saveSwitch");
125        statusmenu.objSaveBaseIDSwitch = document.getElementById("saveBaseIDSwitch");
126        statusmenu.objSaveSMTPSwitch = document.getElementById("saveSMTPSwitch");
127        statusmenu.objFccSwitch = document.getElementById("fcc_switch");
128        statusmenu.objStatusText = document.getElementById("statusText");
129        statusmenu.objStatusTooltipLine1 = document.getElementById("virtualIdentityExtension_statusMenuTooltip_StatusValueLine1");
130        statusmenu.objStatusTooltipLine2 = document.getElementById("virtualIdentityExtension_statusMenuTooltip_StatusValueLine2");
131
132        statusmenu.addObserver();
133        statusmenu.observe(null, null, "extensions.virtualIdentity.fcc_show_switch");
134        statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_switch");
135        statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_baseID_switch");
136        statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_SMTP_switch");
137        statusmenu.observe(null, null, "extensions.virtualIdentity.storage_colorIndication");
138        statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_base_id");
139        statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_SMTP");
140        statusmenu.observe(null, null, "extensions.virtualIdentity.storage_storedefault");
141        statusmenu.observe(null, null, "extensions.virtualIdentity.storage");
142    },
143   
144    __timeout : 5,  // timeout for status messages in seconds
145    __addStatusMessage : function(save, smtp) {
146        var sourceString = "vident.statusText.save." + save;
147        if (smtp != "off") sourceString = sourceString + ".smtp"
148        var messageLine1 = vI.main.elements.strings.getString(sourceString + ".line1");
149        var messageLine2 = vI.main.elements.strings.getString(sourceString + ".line2");
150        if (!messageLine2) {
151            statusmenu.objStatusText.setAttribute("label", messageLine1);
152            statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
153            statusmenu.objStatusTooltipLine2.setAttribute("hidden", "true");
154        }   
155        else {
156            statusmenu.objStatusText.setAttribute("label", messageLine1 + " " + messageLine2);
157            statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
158            statusmenu.objStatusTooltipLine2.setAttribute("value", messageLine2);
159            statusmenu.objStatusTooltipLine2.removeAttribute("hidden");
160        }
161        window.setTimeout(virtualIdentityExtension.statusmenu.__clearStatusMessage, statusmenu.__timeout * 1000);
162    },
163
164    __clearStatusMessage : function() {
165        statusmenu.objStatusText.setAttribute("label", "");
166    },
167
168    changeSMTPStatus : function (elem) {
169        statusmenu.objSaveSMTPMenuItem.setAttribute("checked", elem.getAttribute("checked"));
170        statusmenu.menuConstraint();
171    },
172
173    changeBaseIDStatus : function (elem) {
174        statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", elem.getAttribute("checked"));
175        statusmenu.menuConstraint();
176    },
177
178    changeSaveStatus : function (elem) {
179        statusmenu.objStorageSaveMenuItem.setAttribute("checked", elem.getAttribute("checked"));
180        statusmenu.menuConstraint();
181    },
182
183    menuConstraint : function () {
184        var save = "off"; var smtp = "off";
185        if (statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true") {
186            statusmenu.objSaveSMTPMenuItem.removeAttribute("disabled");
187            statusmenu.objSaveBaseIDMenuItem.removeAttribute("disabled");
188            if (statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) {
189                if (statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true") save = "base";
190                else save = "ok";
191                if (statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true") smtp = "save";
192            }
193        }
194        else {
195            statusmenu.objSaveSMTPMenuItem.setAttribute("disabled", "true");
196            statusmenu.objSaveBaseIDMenuItem.setAttribute("disabled", "true");
197        }
198        statusmenu.objStatusMenu.setAttribute("save", save);
199        statusmenu.objStatusMenu.setAttribute("smtp", smtp);
200        statusmenu.__addStatusMessage(save, smtp);
201    },
202
203    clicked : function (button) {
204        if (button != 0) return; // only react on left mouse button
205        if (!statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) return;
206
207        var curSaveStatus = (statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true");
208        var curSaveSMTPStatus = (statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true");
209        var curSaveBaseIDStatus = (statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true");
210        var newSaveStatus = ((!curSaveStatus) || (curSaveStatus && !curSaveSMTPStatus) || (curSaveStatus && !curSaveBaseIDStatus))
211        var newSaveSMTPStatus = ((!curSaveSMTPStatus && curSaveStatus) || (curSaveBaseIDStatus && !curSaveSMTPStatus))
212        var newSaveBaseIDStatus = ((curSaveSMTPStatus && curSaveStatus && !curSaveBaseIDStatus) || (curSaveBaseIDStatus && !curSaveSMTPStatus))
213        statusmenu.objStorageSaveMenuItem.setAttribute("checked", newSaveStatus)
214        statusmenu.objSaveSMTPMenuItem.setAttribute("checked", newSaveSMTPStatus)
215        statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", newSaveBaseIDStatus)
216       
217        statusmenu.menuConstraint();
218    }
219}
220vI.statusmenu = statusmenu;
221}});
Note: See TracBrowser for help on using the repository browser.