diff --git a/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs index 6e133581..8b5e13e9 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs @@ -9,16 +9,8 @@ namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] - public class DocVersionConfig : DynamicTypeDescriptor, INotifyPropertyChanged + public class DocVersionConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged { - #region Events - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged(String info) - { - if (PropertyChanged != null) - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } - #endregion #region DynamicTypeDescriptor internal override bool IsReadOnly { diff --git a/PROMS/VEPROMS.CSLA.Library/Config/DocumentConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/DocumentConfig.cs index d5e4b4ce..0f36e66b 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/DocumentConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/DocumentConfig.cs @@ -7,16 +7,8 @@ namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] - public class DocumentConfig : DynamicTypeDescriptor, INotifyPropertyChanged + public class DocumentConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged { - #region Events - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged(String info) - { - if (PropertyChanged != null) - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } - #endregion #region XML private XMLProperties _Xp; private XMLProperties Xp diff --git a/PROMS/VEPROMS.CSLA.Library/Config/DynamicProperties.cs b/PROMS/VEPROMS.CSLA.Library/Config/DynamicProperties.cs index 0237c94e..8d99b1ef 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/DynamicProperties.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/DynamicProperties.cs @@ -8,9 +8,9 @@ namespace VEPROMS.CSLA.Library public class DynamicPropertyDescriptor : PropertyDescriptor { private PropertyDescriptor _BasePropertyDescriptor; - private DynamicTypeDescriptor _Instance; + private ConfigDynamicTypeDescriptor _Instance; - public DynamicPropertyDescriptor(DynamicTypeDescriptor instance, PropertyDescriptor basePropertyDescriptor) + public DynamicPropertyDescriptor(ConfigDynamicTypeDescriptor instance, PropertyDescriptor basePropertyDescriptor) : base(basePropertyDescriptor) { _Instance = instance; @@ -34,8 +34,23 @@ namespace VEPROMS.CSLA.Library { _BasePropertyDescriptor.SetValue(component, value); } } [Serializable()] - public class DynamicTypeDescriptor //: ICustomTypeDescriptor//, ISupportInitialize + public class ConfigDynamicTypeDescriptor //: ICustomTypeDescriptor//, ISupportInitialize { + #region Events + public event PropertyChangedEventHandler PropertyChanged; + protected void OnPropertyChanged(String info) + { + _IsDirty = true; + if (PropertyChanged != null) + PropertyChanged(this, new PropertyChangedEventArgs(info)); + } + private bool _IsDirty = false; + public bool IsDirty + { + get { return _IsDirty; } + set { _IsDirty = value; } + } + #endregion [NonSerialized] private PropertyDescriptorCollection dynamicProps; private bool _IsReadOnly = false; @@ -44,7 +59,7 @@ namespace VEPROMS.CSLA.Library get { return _IsReadOnly; } set { _IsReadOnly = value; } } - public DynamicTypeDescriptor() { } + public ConfigDynamicTypeDescriptor() { } #region "TypeDescriptor Implementation" public String GetClassName() { return TypeDescriptor.GetClassName(this, true); } diff --git a/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs index 2c8678f9..d8998872 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs @@ -10,16 +10,8 @@ namespace VEPROMS.CSLA.Library [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] //public class FolderConfig : INotifyPropertyChanged - public class FolderConfig : DynamicTypeDescriptor, INotifyPropertyChanged + public class FolderConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged { - #region Events - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged(String info) - { - if (PropertyChanged != null) - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } - #endregion #region DynamicTypeDescriptor internal override bool IsReadOnly { diff --git a/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs index ddd3cbbb..84e5af5d 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs @@ -8,16 +8,8 @@ namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] - public class ProcedureConfig : DynamicTypeDescriptor, INotifyPropertyChanged + public class ProcedureConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged { - #region Events - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged(String info) - { - if (PropertyChanged != null) - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } - #endregion #region DynamicTypeDescriptor internal override bool IsReadOnly { diff --git a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs index 45465785..28a89591 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs @@ -8,16 +8,8 @@ namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionConfig : DynamicTypeDescriptor, INotifyPropertyChanged + public class SectionConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged { - #region Events - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged(String info) - { - if (PropertyChanged != null) - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } - #endregion #region DynamicTypeDescriptor internal override bool IsReadOnly { diff --git a/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs new file mode 100644 index 00000000..19383279 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs @@ -0,0 +1,178 @@ +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 + { + #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 = ""; + _Xp = new XMLProperties(xml); + } + public StepConfig(StepInfo stepInfo) + { + _StepInfo = stepInfo; + string xml = stepInfo.MyContent.Config; + if (xml == string.Empty) xml = ""; + _Xp = new XMLProperties(xml); + } + public StepConfig(string xml) + { + if (xml == string.Empty) xml = ""; + _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 == "" || s == "") 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 -1; + + 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"); + } + } + //[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"); + } + } + #endregion + } +} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/UserConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/UserConfig.cs index cd4013ff..579124c5 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/UserConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/UserConfig.cs @@ -7,14 +7,8 @@ namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] - public class UserConfig:INotifyPropertyChanged + public class UserConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged { - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged(String info) - { - if (PropertyChanged != null) - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } private XMLProperties _Xp; private XMLProperties Xp {