diff chrome/content/crashreports/sidebar.js @ 2:472a16863ecc

expanded nightly.jar
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Tue, 02 Dec 2008 20:38:20 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/chrome/content/crashreports/sidebar.js	Tue Dec 02 20:38:20 2008 +0900
@@ -0,0 +1,74 @@
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cr = Components.results;
+
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+
+const xulns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+
+var sidebar = {
+
+db: null,
+
+init: function()
+{
+  var service = Cc["@blueprintit.co.uk/breakpad;1"].
+                getService(Ci.nttIBreakpadService);
+  
+  service.loadDatabase();
+  service.addProgressListener(sidebar);
+},
+
+onDatabaseLoaded: function()
+{
+  var service = Cc["@blueprintit.co.uk/breakpad;1"].
+                getService(Ci.nttIBreakpadService);
+
+  var tree = document.getElementById("tree");
+  tree.view = service.getTreeView();
+  
+  document.getElementById("loading").hidden=true;
+  tree.hidden=false;
+},
+
+copy: function(event)
+{
+  var tree = document.getElementById("tree");
+  var id = tree.view.getCellText(tree.currentIndex, tree.columns.getNamedColumn("incidentID"));
+  var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].
+                  getService(Ci.nsIClipboardHelper);
+  clipboard.copyString(id);
+},
+
+command: function(tree, event, row)
+{
+  var prefservice = Cc['@mozilla.org/preferences-service;1'].
+                    getService(Ci.nsIPrefBranch);
+  var url = prefservice.getCharPref("nightly.breakpad.searchurl");
+  var id = tree.view.getCellText(row, tree.columns.getNamedColumn("incidentID")).substring(3);
+  window.parent.openUILink(url+id, event, false, true);
+},
+
+selectedCommand: function(event)
+{
+  var tree = document.getElementById("tree");
+  sidebar.command(tree, event, tree.currentIndex);
+},
+
+clickCommand: function(event)
+{
+  var tree = document.getElementById("tree");
+  var row = {}, col = {};
+  tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, {});
+  sidebar.command(tree, event, row.value);
+},
+
+checkPopup: function(event)
+{
+  var tree = document.getElementById("tree");
+  var type = tree.view.getCellText(tree.currentIndex, tree.columns.getNamedColumn("type"));
+  return type=="incident";
+},
+
+QueryInterface: XPCOMUtils.generateQI([Ci.nttIBreakpadProgressListener])
+}