From 1e2fedc51804f6da739d57157d064725f35ee5bc Mon Sep 17 00:00:00 2001 From: Rich Date: Tue, 4 Dec 2012 22:54:41 +0000 Subject: [PATCH] Added private property SelectedSlave Added DocVersionInfo property to ROFSTLookup class Set DocVersionInfo to DocVersionInfo of ROFstInfo object in ROFSTLookup constructor Added Reset method to ROFSTLookup class Changed return values for ROID parameter of GetRoValue method Changes SectionConfig class to implement IItemConfig interface Added MasterSlave_Applicability property to IItemConfig Changes StepConfig class to implement IItemConfig interface Added MasterSlave_Applicability property to IItemConfig Changed GetGroup method to support multi units --- .../Config/ROFSTLookup.cs | 53 +++++++++++++++---- .../Config/SectionConfig.cs | 24 ++++++++- .../VEPROMS.CSLA.Library/Config/StepConfig.cs | 27 +++++++++- .../Config/XMLProperties.cs | 7 +-- 4 files changed, 95 insertions(+), 16 deletions(-) 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