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