/* 
 * Author: Jan Odvarko, www.allpeers.com, www.janodvarko.cz
 */

FBL.ns(function() { with (FBL) { 

const nsIPrefBranch2 = CI("nsIPrefBranch2");

const PrefService = CC("@mozilla.org/preferences-service;1");
const prefs = PrefService.getService(nsIPrefBranch2);

// Module Implementation
//-----------------------------------------------------------------------------

Firebug.NetPanelOverlayModel = extend(Firebug.Module, 
{ 
    prefDomain: "extensions.firebug",

    // Initialization/shutdown
    initializeUI: function(detachArgs) {
        FBTrace.sysout("=== ===\n");

        this.syncButtons(FirebugChrome);
    },
    
    initialize: function() {
        FBTrace.sysout("=== ===\n");
        
        prefs.addObserver(this.prefDomain, this, false);
    },

    shutdown: function() {
        FBTrace.sysout("=== ===\n");

        prefs.removeObserver(this.prefDomain, this, false);
    },
   
    // Context management
    initContext: function(context) {
        FBTrace.sysout("=== FTE: Module initContext: \n");
      
        context.netPanelOverlay = new Obbject();
    },

    reattachContext: function(browser, context)
    {
        var chrome = context ? context.chrome : FirebugChrome;
        this.syncButtons(chrome);
    },
    
    destroyContext: function(context) {
        FBTrace.sysout("=== FTE: Module destroyContext\n");
        
        delete context.netPanelOverlay;
    },
   
    showPanel: function(browser, panel) { 
        var isNetPanel = panel && panel.name == "net"; 
    }, 

    sendData: function(context) {
        alert("Send data");
    },
    
    toggleNetMonitoring: function(context) {

        Firebug.setPref("disableNetMonitor", !Firebug["disableNetMonitor"]);
        var chrome = context ? context.chrome : FirebugChrome;
        this.syncButtons(chrome);
    },
    
    syncButtons: function(chrome) {
        var disableNetMonitor = Firebug.getPref("disableNetMonitor");
        chrome.$("myDisableNetMonitor").checked = disableNetMonitor;
    },
    
    // nsIPrefObserver
    observe: function(subject, topic, data) 
    {
        // We're observing preferences only.
        if (topic != "nsPref:changed")
          return; 

        var prefName = data.substr(this.prefDomain.length + 1);
        switch (prefName)
        {
          case "disableNetMonitor": 
              this.syncButtons(FirebugChrome);
          break;
        }          
    },
}); 

Firebug.registerModule(Firebug.NetPanelOverlayModel); 

}});

//-----------------------------------------------------------------------------
