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
{