!import
1 /*
2 //@line 38 "/home/visbrero/mnt/roisin/rev_control/hg/mozilla/mailnews/base/resources/content/shutdownWindow.js"
3 */
4
5 var curTaskIndex = 0;
6 var numTasks = 0;
7 var stringBundle;
8
9 var msgShutdownService = Components.classes["@mozilla.org/messenger/msgshutdownservice;1"]
10 .getService(Components.interfaces.nsIMsgShutdownService);
11
onLoad
12 function onLoad()
13 {
14 numTasks = msgShutdownService.getNumTasks();
15
16 stringBundle = document.getElementById("bundle_shutdown");
17 document.title = stringBundle.getString("shutdownDialogTitle");
18
19 updateTaskProgressLabel(1);
20 updateProgressMeter(0);
21
22 moveToAlertPosition();
23
24 msgShutdownService.startShutdownTasks();
25 }
26
updateProgressLabel
27 function updateProgressLabel(inTaskName)
28 {
29 var curTaskLabel = document.getElementById("shutdownStatus_label");
30 curTaskLabel.value = inTaskName;
31 }
32
updateTaskProgressLabel
33 function updateTaskProgressLabel(inCurTaskNum)
34 {
35 var taskProgressLabel = document.getElementById("shutdownTask_label");
36 taskProgressLabel.value = stringBundle.getFormattedString("taskProgress", [inCurTaskNum, numTasks]);
37 }
38
updateProgressMeter
39 function updateProgressMeter(inPercent)
40 {
41 var taskProgressmeter = document.getElementById('shutdown_progressmeter');
42 taskProgressmeter.value = inPercent;
43 }
44
onCancel
45 function onCancel()
46 {
47 msgShutdownService.cancelShutdownTasks();
48 }
49
nsMsgShutdownTaskListener
50 function nsMsgShutdownTaskListener()
51 {
52 msgShutdownService.setShutdownListener(this);
53 }
54
55 nsMsgShutdownTaskListener.prototype =
56 {
QueryInterface
57 QueryInterface : function(iid)
58 {
59 if (iid.equals(Components.interfaces.nsIWebProgressListener) ||
60 iid.equals(Components.interfaces.nsISupportsWeakReference) ||
61 iid.equals(Components.interfaces.nsISupports))
62 return this;
63
64 throw Components.results.NS_NOINTERFACE;
65 },
66
onStateChange
67 onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus)
68 {
69 if (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_STOP)
70 {
71 window.close();
72 }
73 },
74
onProgressChange
75 onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress)
76 {
77 updateProgressMeter(((aCurTotalProgress / aMaxTotalProgress) * 100));
78 updateTaskProgressLabel(aCurTotalProgress + 1);
79 },
80
onLocationChange
81 onLocationChange: function(aWebProgress, aRequest, aLocation)
82 {
83 // we can ignore this notification
84 },
85
onStatusChange
86 onStatusChange: function(aWebProgress, aRequest, aStatus, aMessage)
87 {
88 if (aMessage)
89 updateProgressLabel(aMessage);
90 },
91
onSecurityChange
92 onSecurityChange: function(aWebProgress, aRequest, state)
93 {
94 // we can ignore this notification
95 }
96 }
97
98 var MsgShutdownTaskListener = new nsMsgShutdownTaskListener();