From 802474a1453abe540d2fcdd02b3932f255a541f0 Mon Sep 17 00:00:00 2001 From: Kathy Date: Wed, 19 Nov 2008 14:00:49 +0000 Subject: [PATCH] --- .../Format/PlantFormat.cs | 222 +++++++++++++++++- 1 file changed, 214 insertions(+), 8 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs index 3755ccf8..a6612657 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs @@ -218,6 +218,116 @@ namespace VEPROMS.CSLA.Library } set { _StepDataList = value; } } + public List GetSearchableSteps() + { + List sds = new List(); + foreach (StepData sd in StepDataList) + { + if (!sd.Inactive && sd.StepEditData.Searchable) sds.Add(new StepDataRetval(sd.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(sd.Index))); + } + return sds; + } + public StepData StepTopUnderBase(StepData sd, int formatStepType) + { + StepData top = sd; + while (top.ParentType != "Base") + { + string sParStp = StepDataList[formatStepType].ParentType; + foreach (StepData stp in StepDataList) + { + if (top.ParentType == stp.Type) + { + top = stp; + break; + } + } + } + return top; + } + public List StepGetLevelTypes(StepData topType, ref int cursel, string curType, ItemInfo _CurItemInfo) + { + List sds = new List(); + int retval = -1; + int cntitm = 0; + // if there are alternatenames for this item, use that list, otherwise, get list from + // xml for current node & its children.... + if (topType.StepEditData.TypeMenu.AlternateNameList != null && topType.StepEditData.TypeMenu.AlternateNameList != "") + { + // loop through the AlternateName string, it has indices for step types.. + string[] split = topType.StepEditData.TypeMenu.AlternateNameList.Split(new Char[] { ',' }); + foreach (string s in split) + { + foreach (StepData sd in this.StepDataList) + { + if (sd.Type == s && !sd.Inactive) + { + sds.Add(new StepDataRetval(sd.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(sd.Index))); + if (topType.Type == sd.Type) retval = cntitm; + cntitm++; + break; + } + } + } + } + + // some menu items (step change types) can only be done in aer column, check for that.... + else if ((topType.StepEditData.TypeMenu.InMenu && topType.StepEditData.TypeMenu.RnoInMenu) || + (topType.StepEditData.TypeMenu.InMenu && !topType.StepEditData.TypeMenu.RnoInMenu && !_CurItemInfo.IsInRNO) || + (topType.StepEditData.TypeMenu.InMenu && topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsInRNO)) + { + if (!topType.Inactive) + { + if (_CurItemInfo.IsInRNO && topType.StepEditData.TypeMenu.RnoMenuItem != null && topType.StepEditData.TypeMenu.RnoMenuItem != "") + sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.RnoMenuItem, Convert.ToInt32(topType.Index))); + else + sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(topType.Index))); + + if (topType.Type == curType) retval = cntitm; + cntitm++; + } + foreach (StepData sd in StepDataList) + { + if (sd.ParentType == topType.Type) + { + int tmpindx = DoListChildStepTypes(ref sds, sd, curType, _CurItemInfo, ref cntitm); + if (sd.Type == curType) retval = tmpindx; + if (retval < 0 && tmpindx > 0) retval = tmpindx; + } + } + } + cursel = retval; + return sds; + } + + private int DoListChildStepTypes(ref List sds, StepData topType, string curType, ItemInfo _CurItemInfo, ref int cntitm) + { + int retval = -1; + if ((topType.StepEditData.TypeMenu.InMenu && topType.StepEditData.TypeMenu.RnoInMenu) || + (topType.StepEditData.TypeMenu.InMenu && !topType.StepEditData.TypeMenu.RnoInMenu && !_CurItemInfo.IsInRNO) || + (topType.StepEditData.TypeMenu.InMenu && topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsInRNO)) + { + if (!topType.Inactive) + { + if (_CurItemInfo.IsInRNO && topType.StepEditData.TypeMenu.RnoMenuItem != null && topType.StepEditData.TypeMenu.RnoMenuItem != "") + sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.RnoMenuItem, Convert.ToInt32(topType.Index))); + else + sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(topType.Index))); + + if (topType.Type == curType) retval = cntitm; + cntitm++; + } + foreach (StepData sd in StepDataList) + { + if (sd.ParentType == topType.Type) + { + int tmpindx = DoListChildStepTypes(ref sds, sd, curType, _CurItemInfo, ref cntitm); + if (sd.Type == curType) retval = tmpindx; + if (retval < 0 && tmpindx > 0) retval = tmpindx; + } + } + } + return retval; + } } #endregion #region Symbols @@ -2863,6 +2973,14 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _ParentType, "@ParentType"); } } + private LazyLoad _Inactive; + public bool Inactive + { + get + { + return LazyLoad(ref _Inactive, "@Inactive"); + } + } private LazyLoad _StepTypeColOverride; public string StepTypeColOverride { @@ -2880,14 +2998,6 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _Sep, "@Sep"); } } - private LazyLoad _AlternateName; - public string AlternateName - { - get - { - return LazyLoad(ref _AlternateName, "@AlternateName"); - } - } private LazyLoad _Prefix; public string Prefix { @@ -3497,6 +3607,14 @@ namespace VEPROMS.CSLA.Library : base(xmlNode) { } + private TypeMenu _TypeMenu; + public TypeMenu TypeMenu + { + get + { + return (_TypeMenu == null) ? _TypeMenu = new TypeMenu(base.XmlNode) : _TypeMenu; + } + } private LazyLoad _ForeColor; public string ForeColor { @@ -3521,6 +3639,72 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _AcTable, "StepEditData/@AcTable"); } } + private LazyLoad _Searchable; + public bool Searchable + { + get + { + return LazyLoad(ref _Searchable, "StepEditData/@Searchable"); + } + } + } + #endregion + #region TypeMenu + [TypeConverter(typeof(ExpandableObjectConverter))] + public class TypeMenu : vlnFormatItem + { + public TypeMenu(XmlNode xmlNode) + : base(xmlNode) + { + } + private LazyLoad _InMenu; + public bool InMenu + { + get + { + return LazyLoad(ref _InMenu, "StepEditData/TypeMenu/@InMenu"); + } + } + private LazyLoad _RnoInMenu; + public bool RnoInMenu + { + get + { + return LazyLoad(ref _RnoInMenu, "StepEditData/TypeMenu/@RnoInMenu"); + } + } + private LazyLoad _MenuItem; + public string MenuItem + { + get + { + return LazyLoad(ref _MenuItem, "StepEditData/TypeMenu/@MenuItem"); + } + } + private LazyLoad _RnoMenuItem; + public string RnoMenuItem + { + get + { + return LazyLoad(ref _RnoMenuItem, "StepEditData/TypeMenu/@RnoMenuItem"); + } + } + private LazyLoad _NoChgReason; + public string NoChgReason + { + get + { + return LazyLoad(ref _NoChgReason, "StepEditData/TypeMenu/@NoChgReason"); + } + } + private LazyLoad _AlternateNameList; + public string AlternateNameList + { + get + { + return LazyLoad(ref _AlternateNameList, "StepEditData/TypeMenu/@AlternateNameList"); + } + } } #endregion #region StepTab @@ -4071,5 +4255,27 @@ namespace VEPROMS.CSLA.Library } #endregion #endregion + #region SupportClasses + public class StepDataRetval + { + private string _Name; + public string Name + { + get { return _Name; } + set { _Name = value; } + } + private int _Index; + public int Index + { + get { return _Index; } + set { _Index = value; } + } + public StepDataRetval(string name, int index) + { + Name = name; + Index = index; + } + } + #endregion }