OpenHardwareMonitor.GUI.MainForm.PlotSelectionChanged C# (CSharp) Méthode

PlotSelectionChanged() private méthode

private PlotSelectionChanged ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
Résultat void
        private void PlotSelectionChanged(object sender, EventArgs e)
        {
            List<ISensor> selected = new List<ISensor>();
              IDictionary<ISensor, Color> colors = new Dictionary<ISensor, Color>();
              int colorIndex = 0;
              foreach (TreeNodeAdv node in treeView.AllNodes) {
            SensorNode sensorNode = node.Tag as SensorNode;
            if (sensorNode != null) {
              if (sensorNode.Plot) {
            if (!sensorNode.PenColor.HasValue) {
              colors.Add(sensorNode.Sensor,
                plotColorPalette[colorIndex % plotColorPalette.Length]);
            }
            selected.Add(sensorNode.Sensor);
              }
              colorIndex++;
            }
              }

              // if a sensor is assigned a color that's already being used by another
              // sensor, try to assign it a new color. This is done only after the
              // previous loop sets an unchanging default color for all sensors, so that
              // colors jump around as little as possible as sensors get added/removed
              // from the plot
              var usedColors = new List<Color>();
              foreach (var curSelectedSensor in selected) {
            if (!colors.ContainsKey(curSelectedSensor)) continue;
            var curColor = colors[curSelectedSensor];
            if (usedColors.Contains(curColor)) {
              foreach (var potentialNewColor in plotColorPalette) {
            if (!colors.Values.Contains(potentialNewColor)) {
              colors[curSelectedSensor] = potentialNewColor;
              usedColors.Add(potentialNewColor);
              break;
            }
              }
            } else {
              usedColors.Add(curColor);
            }
              }

              foreach (TreeNodeAdv node in treeView.AllNodes) {
            SensorNode sensorNode = node.Tag as SensorNode;
            if (sensorNode != null && sensorNode.Plot && sensorNode.PenColor.HasValue)
              colors.Add(sensorNode.Sensor, sensorNode.PenColor.Value);
              }

              sensorPlotColors = colors;
              plotPanel.SetSensors(selected, colors);
        }