241 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			241 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.ComponentModel;
 | 
						|
using DescriptiveEnum;
 | 
						|
 | 
						|
namespace VEPROMS.CSLA.Library
 | 
						|
{
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class StepConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged, IItemConfig
 | 
						|
	{
 | 
						|
		#region DynamicTypeDescriptor
 | 
						|
		internal override bool IsReadOnly
 | 
						|
		{
 | 
						|
			get { return false; }//_Section == null; }
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region XML
 | 
						|
		private XMLProperties _Xp;
 | 
						|
		private XMLProperties Xp
 | 
						|
		{
 | 
						|
			get { return _Xp; }
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region Constructors
 | 
						|
		//PROPGRID: Hide ParentLookup
 | 
						|
		[Browsable(false)]
 | 
						|
		public bool ParentLookup
 | 
						|
		{
 | 
						|
			get { return _Xp.ParentLookup; }
 | 
						|
			set { _Xp.ParentLookup = value; }
 | 
						|
		}
 | 
						|
		//PROPGRID: Had to comment out NonSerialized to hide AncestorLookup from Property Grid
 | 
						|
		//[NonSerialized]
 | 
						|
		//private bool _AncestorLookup;
 | 
						|
		////PROPGRID: Hide AncestorLookup
 | 
						|
		//[Browsable(false)]
 | 
						|
		//public bool AncestorLookup
 | 
						|
		//{
 | 
						|
		//  get { return _AncestorLookup; }
 | 
						|
		//  set { _AncestorLookup = value; }
 | 
						|
		//}
 | 
						|
		private Step _Step;
 | 
						|
        private StepInfo _StepInfo;
 | 
						|
		public StepConfig(Step step)
 | 
						|
		{
 | 
						|
			_Step = step;
 | 
						|
			string xml = step.MyContent.Config;
 | 
						|
			if (xml == string.Empty) xml = "<Config/>";
 | 
						|
			_Xp = new XMLProperties(xml);
 | 
						|
		}
 | 
						|
		public StepConfig(StepInfo stepInfo)
 | 
						|
		{
 | 
						|
			_StepInfo = stepInfo;
 | 
						|
			string xml = stepInfo.MyContent.Config;
 | 
						|
			if (xml == string.Empty) xml = "<Config/>";
 | 
						|
			_Xp = new XMLProperties(xml);
 | 
						|
		}
 | 
						|
		public StepConfig(string xml)
 | 
						|
		{
 | 
						|
			if (xml == string.Empty) xml = "<Config/>";
 | 
						|
			_Xp = new XMLProperties(xml);
 | 
						|
		}
 | 
						|
		public StepConfig()
 | 
						|
		{
 | 
						|
			_Xp = new XMLProperties();
 | 
						|
		}
 | 
						|
		internal string GetValue(string group, string item)
 | 
						|
		{
 | 
						|
			return _Xp[group, item];
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region Local Properties
 | 
						|
		
 | 
						|
		#endregion
 | 
						|
		#region ToString
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			string s = _Xp.ToString();
 | 
						|
			if (s == "<Config/>" || s == "<Config></Config>") return string.Empty;
 | 
						|
			return s;
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region StepAttr
 | 
						|
		//[Category("Step Attributes")]
 | 
						|
		//[DisplayName("Step Continuous Action Summary")]
 | 
						|
		//[RefreshProperties(RefreshProperties.All)]
 | 
						|
		//[Description("Step Continuous Action Summary")]
 | 
						|
		public bool Step_CAS
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "ContActSum"];
 | 
						|
 | 
						|
				//If there is no value to get, then get the parent value (a.k.a. default value).
 | 
						|
				if (s == string.Empty) return false;
 | 
						|
				if (s == "True") return true;
 | 
						|
				return false;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "ContActSum"];
 | 
						|
				if (value.ToString() == s) return;
 | 
						|
				_Xp["Step", "ContActSum"] = value.ToString();
 | 
						|
				OnPropertyChanged("Step_CAS");
 | 
						|
			}
 | 
						|
		}
 | 
						|
		//[Category("Step Attributes")]
 | 
						|
		//[DisplayName("Step Check Off Index")]
 | 
						|
		//[RefreshProperties(RefreshProperties.All)]
 | 
						|
		//[Description("Step Check Off Index")]
 | 
						|
		public int Step_CheckOffIndex
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "CheckOffIndex"];
 | 
						|
 | 
						|
				if (s == string.Empty) return 0;
 | 
						|
 | 
						|
				return int.Parse(s);
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "CheckOffIndex"];
 | 
						|
				if (value.ToString() == s) return;
 | 
						|
				_Xp["Step", "CheckOffIndex"] = value.ToString();
 | 
						|
				OnPropertyChanged("Step_CheckOffIndex");
 | 
						|
			}
 | 
						|
		}
 | 
						|
		//[Category("Step Attributes")]
 | 
						|
		//[DisplayName("Step Manual Pagebreak")]
 | 
						|
		//[RefreshProperties(RefreshProperties.All)]
 | 
						|
		//[Description("Step Manual Pagebreak")]
 | 
						|
		public bool Step_ManualPagebreak
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "ManualPagebreak"];
 | 
						|
 | 
						|
				if (s == string.Empty) return false;
 | 
						|
				if (s == "True") return true;
 | 
						|
				return false;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "ManualPagebreak"];
 | 
						|
				if (value.ToString() == s) return;
 | 
						|
				_Xp["Step", "ManualPagebreak"] = value.ToString();
 | 
						|
				OnPropertyChanged("Step_ManualPagebreak");
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public bool Step_NewManualPagebreak
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "NewManualPagebreak"];
 | 
						|
 | 
						|
				if (s == string.Empty) return false;
 | 
						|
				if (s == "True") return true;
 | 
						|
				return false;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "NewManualPagebreak"];
 | 
						|
				if (value.ToString() == s) return;
 | 
						|
				_Xp["Step", "NewManualPagebreak"] = value.ToString();
 | 
						|
				OnPropertyChanged("Step_NewManualPagebreak");
 | 
						|
			}
 | 
						|
		}
 | 
						|
		//[Category("Step Attributes")]
 | 
						|
		//[DisplayName("Step Change Bar Override")]
 | 
						|
		//[RefreshProperties(RefreshProperties.All)]
 | 
						|
		//[Description("Step Change Bar Override")]
 | 
						|
		public string Step_CBOverride
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "CBOverride"];
 | 
						|
 | 
						|
				if (s == string.Empty) return null;
 | 
						|
				return s;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "CBOverride"];
 | 
						|
				
 | 
						|
				if (value != null && value.ToString() == s) return;
 | 
						|
				if (value == null && s != null) _Xp["Step", "CBOverride"] = null;
 | 
						|
				else _Xp["Step", "CBOverride"] = value.ToString();
 | 
						|
				OnPropertyChanged("Step_CBOverride");
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public string Step_MultipleChangeID 
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "MultipleChangeID"];
 | 
						|
 | 
						|
				if (s == string.Empty) return null;
 | 
						|
				return s;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				string s = _Xp["Step", "MultipleChangeID"];
 | 
						|
 | 
						|
				if (value != null && value.ToString() == s) return;
 | 
						|
				if (value == null && s != null) _Xp["Step", "MultipleChangeID"] = null;
 | 
						|
				else _Xp["Step", "MultipleChangeID"] = value.ToString();
 | 
						|
				OnPropertyChanged("Step_MultipleChangeID");
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
 | 
						|
		#region IItemConfig Members
 | 
						|
 | 
						|
		[Category("Master/Slave Settings")]
 | 
						|
		[DisplayName("Applicability")]
 | 
						|
		[RefreshProperties(RefreshProperties.All)]
 | 
						|
		[Description("Scope Applicability")]
 | 
						|
		public Volian.Base.Library.BigNum MasterSlave_Applicability
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string s = _Xp["MasterSlave", "Applicability"];
 | 
						|
				return new Volian.Base.Library.BigNum(s);
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				if (value != null)
 | 
						|
					_Xp["MasterSlave", "Applicability"] = value.FlagList;
 | 
						|
				else
 | 
						|
					_Xp["MasterSlave", "Applicability"] = null;
 | 
						|
				OnPropertyChanged("MasterSlave_Applicability");
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		#endregion
 | 
						|
	}
 | 
						|
}
 |