GUI/MainForm.cs
changeset 64 15181001ee61
parent 63 1a7c13ac7348
child 70 dc69dc4d7512
     1.1 --- a/GUI/MainForm.cs	Sat Feb 27 15:55:17 2010 +0000
     1.2 +++ b/GUI/MainForm.cs	Sat Feb 27 20:08:13 2010 +0000
     1.3 @@ -159,8 +159,18 @@
     1.4        }
     1.5      }
     1.6  
     1.7 +    private void SubHardwareAdded(IHardware hardware, Node node) {
     1.8 +      Node hardwareNode = new HardwareNode(hardware);
     1.9 +      node.Nodes.Add(hardwareNode);
    1.10 +      foreach (IHardware subHardware in hardware.SubHardware)
    1.11 +        SubHardwareAdded(subHardware, hardwareNode);  
    1.12 +    }
    1.13 +
    1.14      private void HardwareAdded(IHardware hardware) {
    1.15 -      root.Nodes.Add(new HardwareNode(hardware));
    1.16 +      Node hardwareNode = new HardwareNode(hardware);
    1.17 +      root.Nodes.Add(hardwareNode);
    1.18 +      foreach (IHardware subHardware in hardware.SubHardware)
    1.19 +        SubHardwareAdded(subHardware, hardwareNode);     
    1.20      }
    1.21  
    1.22      private void HardwareRemoved(IHardware hardware) {      
    1.23 @@ -357,15 +367,25 @@
    1.24        UpdatePlotSelection(null, null);      
    1.25      }
    1.26  
    1.27 -    private void UpdateSensorTypeChecked(object sender, EventArgs e) {
    1.28 -      foreach (HardwareNode node in root.Nodes) {
    1.29 -        node.SetVisible(SensorType.Voltage, voltMenuItem.Checked);
    1.30 -        node.SetVisible(SensorType.Clock, clocksMenuItem.Checked);
    1.31 -        node.SetVisible(SensorType.Load, loadMenuItem.Checked);
    1.32 -        node.SetVisible(SensorType.Temperature, tempMenuItem.Checked);
    1.33 -        node.SetVisible(SensorType.Fan, fansMenuItem.Checked);
    1.34 -        node.SetVisible(SensorType.Flow, flowsMenuItem.Checked);
    1.35 -      }
    1.36 +    private void UpdateSensorTypeVisible(Node node) {
    1.37 +      HardwareNode hardwareNode = node as HardwareNode;
    1.38 +      if (hardwareNode == null)
    1.39 +        return;
    1.40 +
    1.41 +      hardwareNode.SetVisible(SensorType.Voltage, voltMenuItem.Checked);
    1.42 +      hardwareNode.SetVisible(SensorType.Clock, clocksMenuItem.Checked);
    1.43 +      hardwareNode.SetVisible(SensorType.Load, loadMenuItem.Checked);
    1.44 +      hardwareNode.SetVisible(SensorType.Temperature, tempMenuItem.Checked);
    1.45 +      hardwareNode.SetVisible(SensorType.Fan, fansMenuItem.Checked);
    1.46 +      hardwareNode.SetVisible(SensorType.Flow, flowsMenuItem.Checked);
    1.47 +
    1.48 +      foreach (Node n in node.Nodes)
    1.49 +        UpdateSensorTypeVisible(n);
    1.50 +    }
    1.51 +
    1.52 +    private void UpdateSensorTypeChecked(object sender, EventArgs e) {          
    1.53 +      foreach (HardwareNode node in root.Nodes) 
    1.54 +        UpdateSensorTypeVisible(node);
    1.55      }
    1.56  
    1.57      private void ToggleSysTray() {