!import
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
1 //@line 38 "/home/visbrero/mnt/roisin/rev_control/hg/mozilla/mail/components/preferences/display.js"
2
3 var gDisplayPane = {
4 mInitialized: false,
5 mTagListBox: null,
6
init
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
7 init: function ()
8 {
9 var preference = document.getElementById("mail.preferences.display.selectedTabIndex");
10 if (preference.value)
11 document.getElementById("displayPrefs").selectedIndex = preference.value;
12
13 this.mInitialized = true;
14
15 this.mTagListBox = document.getElementById('tagList');
16 this.buildTagList();
17 },
18
tabSelectionChanged
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
19 tabSelectionChanged: function ()
20 {
21 if (this.mInitialized)
22 document.getElementById("mail.preferences.display.selectedTabIndex")
23 .valueFromPreferences = document.getElementById("displayPrefs").selectedIndex;
24 },
25
fontOptionsDialog
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
26 fontOptionsDialog: function()
27 {
28 document.documentElement.openSubDialog("chrome://messenger/content/preferences/fonts.xul", "", null);
29 },
30
31 // appends the tag to the tag list box
appendTagItem
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
32 appendTagItem: function(aTagName, aKey, aColor)
33 {
34 var item = this.mTagListBox.appendItem(aTagName, aKey);
35 item.style.color = aColor;
36 return item;
37 },
38
buildTagList
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
39 buildTagList: function()
40 {
41 var tagService = Components.classes["@mozilla.org/messenger/tagservice;1"]
42 .getService(Components.interfaces.nsIMsgTagService);
43 var tagArray = tagService.getAllTags({});
44 for (var i = 0; i < tagArray.length; ++i)
45 {
46 var taginfo = tagArray[i];
47 this.appendTagItem(taginfo.tag, taginfo.key, taginfo.color);
48 }
49 },
50
removeTag
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
51 removeTag: function()
52 {
53 var index = this.mTagListBox.selectedIndex;
54 if (index >= 0)
55 {
56 var itemToRemove = this.mTagListBox.getItemAtIndex(index);
57 var tagService = Components.classes["@mozilla.org/messenger/tagservice;1"].getService(Components.interfaces.nsIMsgTagService);
58 tagService.deleteKey(itemToRemove.getAttribute("value"));
59 this.mTagListBox.removeItemAt(index);
60 var numItemsInListBox = this.mTagListBox.getRowCount();
61 this.mTagListBox.selectedIndex = index < numItemsInListBox ? index : numItemsInListBox - 1;
62 }
63 },
64
65 /**
66 * Open the edit tag dialog
67 */
editTag
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
68 editTag: function()
69 {
70 var index = this.mTagListBox.selectedIndex;
71 if (index >= 0)
72 {
73 var tagElToEdit = this.mTagListBox.getItemAtIndex(index);
74 var args = {result: "", keyToEdit: tagElToEdit.getAttribute("value"), okCallback: editTagCallback};
75 var dialog = window.openDialog(
76 "chrome://messenger/content/newTagDialog.xul",
77 "",
78 "chrome,titlebar,modal",
79 args);
80 }
81 },
82
addTag
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
83 addTag: function()
84 {
85 var args = {result: "", okCallback: addTagCallback};
86 var dialog = window.openDialog(
87 "chrome://messenger/content/newTagDialog.xul",
88 "",
89 "chrome,titlebar,modal",
90 args);
91 }
92 };
93
addTagCallback
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
94 function addTagCallback(aName, aColor)
95 {
96 var tagService = Components.classes["@mozilla.org/messenger/tagservice;1"]
97 .getService(Components.interfaces.nsIMsgTagService);
98 tagService.addTag(aName, aColor, '');
99
100 var item = gDisplayPane.appendTagItem(aName, tagService.getKeyForTag(aName), aColor);
101 var tagListBox = document.getElementById('tagList');
102 tagListBox.ensureElementIsVisible(item);
103 tagListBox.selectItem(item);
104 tagListBox.focus();
105 }
106
editTagCallback
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
107 function editTagCallback()
108 {
109 // update the values of the selected item
110 var tagListEl = document.getElementById('tagList');
111 var index = tagListEl.selectedIndex;
112 if (index >= 0)
113 {
114 var tagElToEdit = tagListEl.getItemAtIndex(index);
115 var key = tagElToEdit.getAttribute("value");
116 var tagService = Components.classes["@mozilla.org/messenger/tagservice;1"]
117 .getService(Components.interfaces.nsIMsgTagService);
118 // update the color and label elements
119 tagElToEdit.setAttribute("label", tagService.getTagForKey(key));
120 tagElToEdit.style.color = tagService.getColorForKey(key);
121 }
122 }