diff --git a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs b/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs index 1bd16887..cc990efa 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs @@ -89,14 +89,30 @@ namespace VEPROMS.CSLA.Library #region Constructors private ROFst _ROFst; private ROFstInfo _ROFstInfo; - private DocVersionInfo _DocVersionInfo; + private int _SelectedSlave; + + private DocVersionInfo _DocVersionInfo; + + public DocVersionInfo DocVersionInfo + { + get { return _DocVersionInfo; } + set + { + _DocVersionInfo = value; + if (_DocVersionInfo.DocVersionConfig.SelectedSlave != _SelectedSlave) + { + _SelectedSlave = _DocVersionInfo.DocVersionConfig.SelectedSlave; + Reset(); + } + } + } public ROFSTLookup(ROFst rofst) { _ROFst = rofst; _ROFstInfo = null; using (ROFstInfo rfi = ROFstInfo.GetJustROFst(_ROFst.ROFstID)) { - _DocVersionInfo = rfi.docVer==null?null: DocVersionInfo.Get(rfi.docVer.VersionID); + _DocVersionInfo = rfi.docVer;//==null?null: DocVersionInfo.Get(rfi.docVer.VersionID); } ParseIntoDictionary(rofst.ROLookup); } @@ -108,7 +124,7 @@ namespace VEPROMS.CSLA.Library // to a docversion. One example of this is when updating ro.fst and comparing the original // with the new to find differences. The docversioninfo is only used to get unit/master // slave info, thus is not needed to compare the raw values. - _DocVersionInfo = _ROFstInfo.docVer==null?null: DocVersionInfo.Get(_ROFstInfo.docVer.VersionID); + _DocVersionInfo = _ROFstInfo.docVer;//==null?null: DocVersionInfo.Get(_ROFstInfo.docVer.VersionID); ParseIntoDictionary(rofstinfo.ROLookup); } public ROFSTLookup(string filePath) @@ -129,6 +145,11 @@ namespace VEPROMS.CSLA.Library private int TableID; private Dictionary dicRos; private Dictionary dicRosIntIDs; + public void Reset() + { + dicRos = null; + dicRosIntIDs = null; + } #endregion #region AppSupport public void Close() @@ -252,14 +273,24 @@ namespace VEPROMS.CSLA.Library return rochld.children[0].value; } } - if (ROID == "FFFF00000001") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Number; - if (ROID == "FFFF00000002") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Number; - if (ROID == "FFFF00000003") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Text; - if (ROID == "FFFF00000004") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Text; - if (ROID == "FFFF00000005") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_ID; - if (ROID == "FFFF00000006") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_ID; - if (ROID == "FFFF00000007") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Name; - if (ROID == "FFFF00000008") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Name; + //if (ROID == "FFFF00000001") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Number; + //if (ROID == "FFFF00000002") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Number; + //if (ROID == "FFFF00000003") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Text; + //if (ROID == "FFFF00000004") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Text; + //if (ROID == "FFFF00000005") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_ID; + //if (ROID == "FFFF00000006") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_ID; + //if (ROID == "FFFF00000007") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Name; + //if (ROID == "FFFF00000008") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Name; + //new stuff + if (ROID == "FFFF00000001") return _ROFstInfo.docVer.DocVersionConfig.Unit_Number; + if (ROID == "FFFF00000002") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Number; + if (ROID == "FFFF00000003") return _ROFstInfo.docVer.DocVersionConfig.Unit_Text; + if (ROID == "FFFF00000004") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Text; + if (ROID == "FFFF00000005") return _ROFstInfo.docVer.DocVersionConfig.Unit_ID; + if (ROID == "FFFF00000006") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_ID; + if (ROID == "FFFF00000007") return _ROFstInfo.docVer.DocVersionConfig.Unit_Name; + if (ROID == "FFFF00000008") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Name; + //end new stuff if (ROID.StartsWith("FFFF")) return "?"; // string.Format("Invalid Unit RO '{0}'", ROID); return "?"; // string.Format("Invalid RO '{0}'", ROID); } diff --git a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs index 644349ba..65ace7ac 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs @@ -8,7 +8,7 @@ namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged + public class SectionConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged, IItemConfig { #region DynamicTypeDescriptor internal override bool IsReadOnly @@ -770,5 +770,27 @@ namespace VEPROMS.CSLA.Library } #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 + { + _Xp["MasterSlave", "Applicability"] = value.FlagList; + OnPropertyChanged("MasterSlave_Applicability"); + } + } + + #endregion } } diff --git a/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs index cd9e1faa..4726bef9 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs @@ -8,7 +8,7 @@ namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged + public class StepConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged, IItemConfig { #region DynamicTypeDescriptor internal override bool IsReadOnly @@ -252,5 +252,30 @@ namespace VEPROMS.CSLA.Library } } #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 } } diff --git a/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs b/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs index 76b1fdf1..95a1097e 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs @@ -54,9 +54,10 @@ namespace VEPROMS.CSLA.Library } private XmlNode GetGroup(string group) { - //XmlNodeList xl = _XmlContents.DocumentElement.SelectNodes(string.Format("//{0}", group)); - XmlNodeList xl = _XmlContents.DocumentElement.SelectNodes( - string.Format("//*[translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='{0}']", group.ToLower())); + XmlNodeList xl = _XmlContents.DocumentElement.SelectNodes(string.Format("//{0}", group)); + if(xl.Count == 0) + xl = _XmlContents.DocumentElement.SelectNodes( + string.Format("//*[translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='{0}']", group.ToLower())); switch (xl.Count) { case 0: // No nodes found