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

source: chrome/content/v_identity/vI_statusmenu.js @ aac9e6

lite_0.1multiEditng_0.6ng_0.6_helpng_0.8ng_0.9
Last change on this file since aac9e6 was 67ba6a, checked in by rene <rene@…>, 14 years ago

some bugfixes, updates

  • Property mode set to 100644
File size: 6.9 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
25var vI_statusmenu = {
26    prefroot : Components.classes["@mozilla.org/preferences-service;1"]
27        .getService(Components.interfaces.nsIPrefService)
28        .getBranch(null),
29
30    objStatusMenu : null,
31    objSaveBaseIDMenuItem : null,
32    objStorageSaveMenuItem : null,
33    objStatusMenuSeparator : null,
34    objSaveSwitch : null,
35    objStatusText : null,
36   
37    observe: function(subject, topic, data) {
38        switch (data) {
39            case "extensions.virtualIdentity.storage_show_switch":
40                vI_statusmenu.objSaveSwitch.setAttribute("hidden", !vI_statusmenu.prefroot.getBoolPref(data));
41                // no break, continue like with storedefault
42            case "extensions.virtualIdentity.storage_storedefault":
43                vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage_storedefault"));
44                break;
45            case "extensions.virtualIdentity.storage_store_base_id":
46                vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref(data));
47                break;
48            case "extensions.virtualIdentity.storage":
49                if (vI_statusmenu.prefroot.getBoolPref(data)) {
50                    vI_statusmenu.objStorageSaveMenuItem.removeAttribute("hidden");
51                    vI_statusmenu.objSaveBaseIDMenuItem.removeAttribute("hidden");
52                    vI_statusmenu.objStatusMenuSeparator.removeAttribute("hidden");
53                }
54                else {
55                    vI_statusmenu.objStorageSaveMenuItem.setAttribute("hidden", "true");
56                    vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("hidden", "true");
57                    vI_statusmenu.objStatusMenuSeparator.setAttribute("hidden", "true");
58                }
59                break;
60        }
61        vI_statusmenu.menuConstraint(vI_statusmenu.objStorageSaveMenuItem);
62    },
63   
64    addObserver: function() {
65        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage", vI_statusmenu, false);
66        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_switch", vI_statusmenu, false);
67        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_storedefault", vI_statusmenu, false);   
68        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_store_base_id", vI_statusmenu, false);   
69    },
70   
71    removeObserver: function() {
72        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage", vI_statusmenu);
73        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_switch", vI_statusmenu);
74        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_storedefault", vI_statusmenu);
75        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_store_base_id", vI_statusmenu);
76    },
77   
78    init : function () {
79        vI_statusmenu.prefroot.QueryInterface(Components.interfaces.nsIPrefBranch2);
80
81        vI_statusmenu.objStatusMenu = document.getElementById("vI-status-menu");
82        vI_statusmenu.objSaveBaseIDMenuItem = document.getElementById("vI_statusMenu_storage_saveBaseID");
83        vI_statusmenu.objStorageSaveMenuItem = document.getElementById("vI_statusMenu_storage_save");
84        vI_statusmenu.objStatusMenuSeparator = document.getElementById("vI_statusMenu_separator");
85        vI_statusmenu.objSaveSwitch = document.getElementById("storage_save");
86        vI_statusmenu.objStatusText = document.getElementById("statusText");
87        vI_statusmenu.objStatusTooltipLine1 = document.getElementById("vI_statusMenuTooltip_StatusValueLine1");
88        vI_statusmenu.objStatusTooltipLine2 = document.getElementById("vI_statusMenuTooltip_StatusValueLine2");
89
90        vI_statusmenu.addObserver();
91        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_switch");
92        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_base_id");
93        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage");
94    },
95   
96    saveBaseIDClicked : function () {
97        vI_statusmenu.menuConstraint(vI_statusmenu.objStorageSaveMenuItem);
98    },
99
100    __timeout : 5,  // timeout for status messages in seconds
101    __addStatusMessage : function(save) {
102        var messageLine1 = vI.elements.strings.getString("vident.statusText.save." + save + ".line1");
103        var messageLine2 = vI.elements.strings.getString("vident.statusText.save." + save + ".line2");
104        if (!messageLine2) {
105            vI_statusmenu.objStatusText.setAttribute("label", messageLine1);
106            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
107            vI_statusmenu.objStatusTooltipLine2.setAttribute("hidden", "true");
108        }   
109        else {
110            vI_statusmenu.objStatusText.setAttribute("label", messageLine1 + " " + messageLine2);
111            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
112            vI_statusmenu.objStatusTooltipLine2.setAttribute("value", messageLine2);
113            vI_statusmenu.objStatusTooltipLine2.removeAttribute("hidden");
114        }
115        window.setTimeout(vI_statusmenu.__clearStatusMessage, vI_statusmenu.__timeout * 1000);
116    },
117
118    __clearStatusMessage : function() {
119        vI_statusmenu.objStatusText.setAttribute("label", "");
120    },
121
122    menuConstraint : function (elem) {
123        var save = "off";
124        if (vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage") &&
125            elem.getAttribute("checked") == "true") {
126            if (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true")
127                save = "base";
128            else save = "ok";
129        }
130        vI_statusmenu.objStatusMenu.setAttribute("save", save);
131        vI_statusmenu.__addStatusMessage(save);
132    },
133
134    clicked : function (button) {
135        if (button != 0) return; // only react on left mouse button
136        if (!vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) return;
137
138        var curSaveStatus = (vI_statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true");
139        var curSaveBaseIDStatus = (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true");
140        var newSaveStatus = ((!curSaveStatus) || (curSaveStatus && !curSaveBaseIDStatus))
141        var newSaveBaseIDStatus = (!curSaveBaseIDStatus && curSaveStatus)
142        vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", newSaveStatus)
143        vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", newSaveBaseIDStatus)
144
145        var elem = vI_statusmenu.objStorageSaveMenuItem;
146        vI_statusmenu.menuConstraint(elem);
147    }
148}
Note: See TracBrowser for help on using the repository browser.