GUI/SensorProperties.cs
author moel.mich
Sun, 09 May 2010 16:22:13 +0000
changeset 110 411b72b73d8f
permissions -rw-r--r--
Refactored the hardware code and added the visitor pattern for operations on the computer/hardware/sensor/parameter tree.
moel@110
     1
/*
moel@110
     2
  
moel@110
     3
  Version: MPL 1.1/GPL 2.0/LGPL 2.1
moel@110
     4
moel@110
     5
  The contents of this file are subject to the Mozilla Public License Version
moel@110
     6
  1.1 (the "License"); you may not use this file except in compliance with
moel@110
     7
  the License. You may obtain a copy of the License at
moel@110
     8
 
moel@110
     9
  http://www.mozilla.org/MPL/
moel@110
    10
moel@110
    11
  Software distributed under the License is distributed on an "AS IS" basis,
moel@110
    12
  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
moel@110
    13
  for the specific language governing rights and limitations under the License.
moel@110
    14
moel@110
    15
  The Original Code is the Open Hardware Monitor code.
moel@110
    16
moel@110
    17
  The Initial Developer of the Original Code is 
moel@110
    18
  Michael Möller <m.moeller@gmx.ch>.
moel@110
    19
  Portions created by the Initial Developer are Copyright (C) 2009-2010
moel@110
    20
  the Initial Developer. All Rights Reserved.
moel@110
    21
moel@110
    22
  Contributor(s):
moel@110
    23
moel@110
    24
  Alternatively, the contents of this file may be used under the terms of
moel@110
    25
  either the GNU General Public License Version 2 or later (the "GPL"), or
moel@110
    26
  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
moel@110
    27
  in which case the provisions of the GPL or the LGPL are applicable instead
moel@110
    28
  of those above. If you wish to allow use of your version of this file only
moel@110
    29
  under the terms of either the GPL or the LGPL, and not to allow others to
moel@110
    30
  use your version of this file under the terms of the MPL, indicate your
moel@110
    31
  decision by deleting the provisions above and replace them with the notice
moel@110
    32
  and other provisions required by the GPL or the LGPL. If you do not delete
moel@110
    33
  the provisions above, a recipient may use your version of this file under
moel@110
    34
  the terms of any one of the MPL, the GPL or the LGPL.
moel@110
    35
 
moel@110
    36
*/
moel@110
    37
moel@110
    38
using System;
moel@110
    39
using System.Collections.Generic;
moel@110
    40
using OpenHardwareMonitor.Hardware;
moel@110
    41
using OpenHardwareMonitor.Utilities;
moel@110
    42
moel@110
    43
namespace OpenHardwareMonitor.GUI {
moel@110
    44
  public class SensorProperties {
moel@110
    45
moel@110
    46
    private IDictionary<Identifier, Properties> properties = 
moel@110
    47
      new Dictionary<Identifier, Properties>();
moel@110
    48
moel@110
    49
    private Properties GetProperties(ISensor sensor) {
moel@110
    50
      Properties value;
moel@110
    51
      if (!properties.TryGetValue(sensor.Identifier, out value)) {
moel@110
    52
        value = new Properties(sensor.Identifier, sensor.IsDefaultHidden);
moel@110
    53
        properties.Add(sensor.Identifier, value);
moel@110
    54
      }
moel@110
    55
      return value;
moel@110
    56
    }
moel@110
    57
moel@110
    58
    public bool IsHidden(ISensor sensor) {
moel@110
    59
      return GetProperties(sensor).IsHidden;
moel@110
    60
    }
moel@110
    61
moel@110
    62
    private class Properties {
moel@110
    63
      private Identifier identifier;
moel@110
    64
      private bool hidden;
moel@110
    65
moel@110
    66
      public Properties(Identifier identifier, bool defaultHidden) {
moel@110
    67
        this.identifier = identifier;
moel@110
    68
moel@110
    69
        hidden = Config.Get(new Identifier(identifier, "hidden").ToString(), 
moel@110
    70
          defaultHidden);    
moel@110
    71
      }
moel@110
    72
moel@110
    73
      public bool IsHidden { get { return hidden; } }
moel@110
    74
    }
moel@110
    75
  }
moel@110
    76
}