1 /* See license.txt for terms of usage */
  2 
  3 define([
  4     "firebug/firebug",
  5     "firebug/lib/trace",
  6     "firebug/lib/object",
  7     "firebug/lib/dom",
  8     "firebug/lib/locale",
  9     "firebug/chrome/menu"
 10 ],
 11 function(Firebug, FBTrace, Obj, Dom, Locale, Menu) {
 12 
 13 // ********************************************************************************************* //
 14 // Model implementation
 15 
 16 var SelectorModule = Obj.extend(Firebug.Module,
 17 {
 18     dispatchName: "selectorModule",
 19 
 20     initialize: function()
 21     {
 22         Firebug.NetMonitor.NetInfoBody.addListener(this);
 23         Firebug.registerUIListener(this);
 24     },
 25 
 26     shutdown: function()
 27     {
 28         Firebug.NetMonitor.NetInfoBody.removeListener(this);
 29         Firebug.unregisterUIListener(this);
 30     },
 31 
 32     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 33     // Context Menu
 34 
 35     onContextMenu: function(items, object, target, context, panel, popup)
 36     {
 37         if (panel.name != "stylesheet")
 38             return;
 39 
 40         var cssRule = Dom.getAncestorByClass(target, "cssRule");
 41         if (!cssRule)
 42             return;
 43 
 44         var rule = cssRule.repObject;
 45         if (!rule)
 46             return;
 47 
 48         var panel = context.getPanel("selector");
 49         if (!panel)
 50             return;
 51 
 52         var item = {
 53            id: "fbGetMatchingElements",
 54            nol10n: true,
 55            label: Locale.$STR("css.selector.cmd.getMatchingElements"),
 56            command: Obj.bindFixed(panel.getMatchingElements, panel, rule)
 57         };
 58 
 59         var refreshMenuItem = popup.querySelector("#fbRefresh");
 60         Menu.createMenuItem(popup, item, refreshMenuItem);
 61 
 62         return [];
 63     },
 64 });
 65 
 66 // ********************************************************************************************* //
 67 // Registration
 68 
 69 Firebug.registerModule(SelectorModule);
 70 
 71 return SelectorModule;
 72 
 73 // ********************************************************************************************* //
 74 });
 75