diff -r a41745e3828d -r e837e1e4b282 GUI/HardwareNode.cs --- a/GUI/HardwareNode.cs Sun Jan 01 15:46:42 2012 +0000 +++ b/GUI/HardwareNode.cs Sun Jan 01 17:12:34 2012 +0000 @@ -108,9 +108,14 @@ if (n != null && n.Sensor == sensor) sensorNode = n; } - typeNode.Nodes.Remove(sensorNode); - UpdateNode(typeNode); + if (sensorNode != null) { + sensorNode.PlotSelectionChanged -= SensorPlotSelectionChanged; + typeNode.Nodes.Remove(sensorNode); + UpdateNode(typeNode); + } } + if (PlotSelectionChanged != null) + PlotSelectionChanged(this, null); } private void InsertSorted(Node node, ISensor sensor) { @@ -119,15 +124,25 @@ ((SensorNode)node.Nodes[i]).Sensor.Index < sensor.Index) i++; SensorNode sensorNode = new SensorNode(sensor, settings, unitManager); + sensorNode.PlotSelectionChanged += SensorPlotSelectionChanged; node.Nodes.Insert(i, sensorNode); } + private void SensorPlotSelectionChanged(object sender, EventArgs e) { + if (PlotSelectionChanged != null) + PlotSelectionChanged(this, null); + } + private void SensorAdded(ISensor sensor) { foreach (TypeNode typeNode in typeNodes) if (typeNode.SensorType == sensor.SensorType) { InsertSorted(typeNode, sensor); UpdateNode(typeNode); } - } + if (PlotSelectionChanged != null) + PlotSelectionChanged(this, null); + } + + public event EventHandler PlotSelectionChanged; } }