2
|
1 const Cc = Components.classes;
|
|
2 const Ci = Components.interfaces;
|
|
3 const Cr = Components.results;
|
|
4
|
|
5 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
6
|
|
7 const xulns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
|
8
|
|
9 var sidebar = {
|
|
10
|
|
11 db: null,
|
|
12
|
|
13 init: function()
|
|
14 {
|
|
15 var service = Cc["@blueprintit.co.uk/breakpad;1"].
|
|
16 getService(Ci.nttIBreakpadService);
|
|
17
|
|
18 service.loadDatabase();
|
|
19 service.addProgressListener(sidebar);
|
|
20 },
|
|
21
|
|
22 onDatabaseLoaded: function()
|
|
23 {
|
|
24 var service = Cc["@blueprintit.co.uk/breakpad;1"].
|
|
25 getService(Ci.nttIBreakpadService);
|
|
26
|
|
27 var tree = document.getElementById("tree");
|
|
28 tree.view = service.getTreeView();
|
|
29
|
|
30 document.getElementById("loading").hidden=true;
|
|
31 tree.hidden=false;
|
|
32 },
|
|
33
|
|
34 copy: function(event)
|
|
35 {
|
|
36 var tree = document.getElementById("tree");
|
|
37 var id = tree.view.getCellText(tree.currentIndex, tree.columns.getNamedColumn("incidentID"));
|
|
38 var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].
|
|
39 getService(Ci.nsIClipboardHelper);
|
|
40 clipboard.copyString(id);
|
|
41 },
|
|
42
|
|
43 command: function(tree, event, row)
|
|
44 {
|
|
45 var prefservice = Cc['@mozilla.org/preferences-service;1'].
|
|
46 getService(Ci.nsIPrefBranch);
|
|
47 var url = prefservice.getCharPref("nightly.breakpad.searchurl");
|
|
48 var id = tree.view.getCellText(row, tree.columns.getNamedColumn("incidentID")).substring(3);
|
|
49 window.parent.openUILink(url+id, event, false, true);
|
|
50 },
|
|
51
|
|
52 selectedCommand: function(event)
|
|
53 {
|
|
54 var tree = document.getElementById("tree");
|
|
55 sidebar.command(tree, event, tree.currentIndex);
|
|
56 },
|
|
57
|
|
58 clickCommand: function(event)
|
|
59 {
|
|
60 var tree = document.getElementById("tree");
|
|
61 var row = {}, col = {};
|
|
62 tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, {});
|
|
63 sidebar.command(tree, event, row.value);
|
|
64 },
|
|
65
|
|
66 checkPopup: function(event)
|
|
67 {
|
|
68 var tree = document.getElementById("tree");
|
|
69 var type = tree.view.getCellText(tree.currentIndex, tree.columns.getNamedColumn("type"));
|
|
70 return type=="incident";
|
|
71 },
|
|
72
|
|
73 QueryInterface: XPCOMUtils.generateQI([Ci.nttIBreakpadProgressListener])
|
|
74 }
|