232 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			232 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.ComponentModel;
 | |
| using DevComponents.Instrumentation.Primitives;
 | |
| 
 | |
| namespace DevComponents.Instrumentation
 | |
| {
 | |
|     public class IndicatorRangeCollection : GenericCollection<IndicatorRange>
 | |
|     {
 | |
|         #region ICloneable Members
 | |
| 
 | |
|         public override object Clone()
 | |
|         {
 | |
|             IndicatorRangeCollection copy = new IndicatorRangeCollection();
 | |
| 
 | |
|             CopyToItem(copy);
 | |
| 
 | |
|             return (copy);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region CopyToItem
 | |
| 
 | |
|         internal void CopyToItem(IndicatorRangeCollection copy)
 | |
|         {
 | |
|             foreach (IndicatorRange item in this)
 | |
|             {
 | |
|                 IndicatorRange ic = new IndicatorRange();
 | |
| 
 | |
|                 item.CopyToItem(ic);
 | |
| 
 | |
|                 copy.Add(ic);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| 
 | |
|     public class IndicatorRange : GaugeItem
 | |
|     {
 | |
|         #region Events
 | |
| 
 | |
|         [Description("Occurs when the IndicatorRange changes.")]
 | |
|         public event EventHandler<EventArgs> IndicatorRangeChanged;
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Private variables
 | |
| 
 | |
|         private double _StartValue;
 | |
|         private double _EndValue;
 | |
| 
 | |
|         private GradientFillColor _BackColor;
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Hidden properties
 | |
| 
 | |
|         #region Tooltip
 | |
| 
 | |
|         [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public new string Tooltip
 | |
|         {
 | |
|             get { return (base.Tooltip); }
 | |
|             set { base.Tooltip = value; }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Visible
 | |
| 
 | |
|         [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public new bool Visible
 | |
|         {
 | |
|             get { return (base.Visible); }
 | |
|             set { base.Visible = value; }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Public properties
 | |
| 
 | |
|         #region BackColor
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the BackColor
 | |
|         /// </summary>
 | |
|         [Browsable(true), Category("Appearance")]
 | |
|         [Description("Indicates the BackColor.")]
 | |
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | |
|         public GradientFillColor BackColor
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 if (_BackColor == null)
 | |
|                 {
 | |
|                     _BackColor = new GradientFillColor();
 | |
|                     _BackColor.ColorTableChanged += BackColor_ColorTableChanged;
 | |
|                 }
 | |
| 
 | |
|                 return (_BackColor);
 | |
|             }
 | |
| 
 | |
|             set
 | |
|             {
 | |
|                 if (_BackColor != null)
 | |
|                     _BackColor.ColorTableChanged -= BackColor_ColorTableChanged;
 | |
| 
 | |
|                 _BackColor = value;
 | |
| 
 | |
|                 if (_BackColor != null)
 | |
|                     _BackColor.ColorTableChanged += BackColor_ColorTableChanged;
 | |
| 
 | |
|                 OnIndicatorRangeChanged();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region EndValue
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the Ending range value
 | |
|         /// </summary>
 | |
|         [Browsable(true), Category("Behavior"), DefaultValue(double.NaN)]
 | |
|         [Description("Indicates the Ending range value.")]
 | |
|         public double EndValue
 | |
|         {
 | |
|             get { return (_EndValue); }
 | |
| 
 | |
|             set
 | |
|             {
 | |
|                 if (_EndValue != value)
 | |
|                 {
 | |
|                     _EndValue = value;
 | |
| 
 | |
|                     OnIndicatorRangeChanged();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region StartValue
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the Starting range value
 | |
|         /// </summary>
 | |
|         [Browsable(true), Category("Behavior"), DefaultValue(double.NaN)]
 | |
|         [Description("Indicates the Starting range value.")]
 | |
|         public double StartValue
 | |
|         {
 | |
|             get { return (_StartValue); }
 | |
| 
 | |
|             set
 | |
|             {
 | |
|                 if (_StartValue != value)
 | |
|                 {
 | |
|                     _StartValue = value;
 | |
| 
 | |
|                     OnIndicatorRangeChanged();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Event processing
 | |
| 
 | |
|         #region BackColor processing
 | |
| 
 | |
|         void BackColor_ColorTableChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             OnIndicatorRangeChanged();
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region OnIndicatorRangeChanged
 | |
| 
 | |
|         internal void OnIndicatorRangeChanged()
 | |
|         {
 | |
|             if (IndicatorRangeChanged != null)
 | |
|                 IndicatorRangeChanged(this, EventArgs.Empty);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region ICloneable Members
 | |
| 
 | |
|         public override object Clone()
 | |
|         {
 | |
|             IndicatorRange copy = new IndicatorRange();
 | |
| 
 | |
|             CopyToItem(copy);
 | |
| 
 | |
|             return (copy);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region CopyToItem
 | |
| 
 | |
|         public override void CopyToItem(GaugeItem copy)
 | |
|         {
 | |
|             IndicatorRange c = copy as IndicatorRange;
 | |
| 
 | |
|             if (c != null)
 | |
|             {
 | |
|                 base.CopyToItem(c);
 | |
| 
 | |
|                 c.EndValue = _EndValue;
 | |
|                 c.StartValue = _StartValue;
 | |
| 
 | |
|                 if (_BackColor != null)
 | |
|                     c.BackColor = (GradientFillColor) _BackColor.Clone();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|     }
 | |
| }
 |