diff --git a/PROMS/Volian.Controls.Library/DisplayRO.cs b/PROMS/Volian.Controls.Library/DisplayRO.cs index 6f30d870..c047c62a 100644 --- a/PROMS/Volian.Controls.Library/DisplayRO.cs +++ b/PROMS/Volian.Controls.Library/DisplayRO.cs @@ -27,6 +27,17 @@ namespace Volian.Controls.Library set { _TabControl = value; } } private ROFstInfo _CurROFST = null; + private ROFSTLookup _CurROFSTLookup = null; + private ROFSTLookup _MyROFSTLookup; + public ROFSTLookup MyROFSTLookup + { + get { return _MyROFSTLookup; } + set + { + _MyROFSTLookup = value; + LoadTree(); + } + } private ROFstInfo _MyROFST; public ROFstInfo MyROFST { @@ -110,7 +121,7 @@ namespace Volian.Controls.Library { string lookFor = MyRTB.SelectedText.Replace('\u2011', '-'); List children = null; - if (_MyROFST != null) children = _MyROFST.ROFSTLookup.GetRosByValue(lookFor); + if (_MyROFST != null) children = _MyROFST.GetROFSTLookup(Mydvi).GetRosByValue(lookFor); if (children != null) { lbFound.Visible = true; @@ -135,12 +146,13 @@ namespace Volian.Controls.Library } } - private DocVersionInfo _Mydvi; + //private DocVersionInfo _Mydvi; public DocVersionInfo Mydvi { - get { return _Mydvi; } - set { _Mydvi = value; } + get { return MyROFSTLookup != null ? MyROFSTLookup.MyDocVersionInfo : null; } +// get { return _Mydvi; } + //set { _Mydvi = value; } } @@ -393,6 +405,7 @@ namespace Volian.Controls.Library } } _CurROFST = null; + _CurROFSTLookup = null; LoadTree(); if (_SelectedRoidBeforeRoEditor != null) { @@ -406,18 +419,20 @@ namespace Volian.Controls.Library { tvROFST.Nodes.Clear(); _CurROFST = null; + _CurROFSTLookup = null; return; } - if (_MyROFST == _CurROFST && ROTypeFilter == _CurrentROTypeFilter) return; + if (_MyROFST == _CurROFST && ROTypeFilter == _CurrentROTypeFilter && _MyROFSTLookup == _CurROFSTLookup) return; tvROFST.Nodes.Clear(); _CurROFST = _MyROFST; + _CurROFSTLookup = _MyROFSTLookup; _CurrentROTypeFilter = ROTypeFilter; - for (int i = 0; i < _MyROFST.ROFSTLookup.myHdr.myDbs.Length; i++) + for (int i = 0; i < _MyROFST.GetROFSTLookup(Mydvi).myHdr.myDbs.Length; i++) { - TreeNode tn = new TreeNode(_MyROFST.ROFSTLookup.myHdr.myDbs[i].dbiTitle); - tn.Tag = _MyROFST.ROFSTLookup.myHdr.myDbs[i]; + TreeNode tn = new TreeNode(_MyROFST.GetROFSTLookup(Mydvi).myHdr.myDbs[i].dbiTitle); + tn.Tag = _MyROFST.GetROFSTLookup(Mydvi).myHdr.myDbs[i]; tvROFST.Nodes.Add(tn); - AddDummyGroup(_MyROFST.ROFSTLookup.myHdr.myDbs[i], tn); + AddDummyGroup(_MyROFST.GetROFSTLookup(Mydvi).myHdr.myDbs[i], tn); } if ((ROTypeFilter == E_ROValueType.Text || ROTypeFilter == E_ROValueType.All) && this.Mydvi != null && this.Mydvi.MultiUnitCount > 1) { @@ -432,6 +447,7 @@ namespace Volian.Controls.Library if (ROID == "FFFF00000007") return _ROFstInfo.docVer.DocVersionConfig.Unit_Name; if (ROID == "FFFF00000008") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Name; */ + /* TreeNode cn = tnn.Nodes.Add("Number"); cn.Tag = MyROFST.ROFSTLookup.GetRoChild("FFFF00000001"); cn = tnn.Nodes.Add("Other Number"); @@ -448,6 +464,23 @@ namespace Volian.Controls.Library cn.Tag = MyROFST.ROFSTLookup.GetRoChild("FFFF00000007"); cn = tnn.Nodes.Add("Other Name"); cn.Tag = MyROFST.ROFSTLookup.GetRoChild("FFFF00000008"); + */ + TreeNode cn = tnn.Nodes.Add("Number"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000001"); + cn = tnn.Nodes.Add("Other Number"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000002"); + cn = tnn.Nodes.Add("Text"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000003"); + cn = tnn.Nodes.Add("Other Text"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000004"); + cn = tnn.Nodes.Add("ID"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000005"); + cn = tnn.Nodes.Add("Other ID"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000006"); + cn = tnn.Nodes.Add("Name"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000007"); + cn = tnn.Nodes.Add("Other Name"); + cn.Tag = MyROFSTLookup.GetRoChild("FFFF00000008"); } } private void AddDummyGroup(ROFSTLookup.rodbi rodbi, TreeNode tn) @@ -475,7 +508,7 @@ namespace Volian.Controls.Library if (roid.Length == 16) multValSel = true; - ROFSTLookup.rochild rochld = MyROFST.ROFSTLookup.GetRoChild(roid.Substring(0, 12).ToUpper()); + ROFSTLookup.rochild rochld = MyROFSTLookup.GetRoChild(roid.Substring(0, 12).ToUpper()); // use this to walk up tree until database - this is used to expand tree. List path = new List(); int myid = rochld.ID; @@ -484,7 +517,7 @@ namespace Volian.Controls.Library path.Insert(0, myid); myid = rochld.ParentID; String pROID = string.Format("{0}{1:X08}",db,myid); - rochld = MyROFST.ROFSTLookup.GetRoChild(pROID); + rochld = MyROFSTLookup.GetRoChild(pROID); //rochld = MyROFST.ROFSTLookup.GetRoChildFromID(myid); Did not include db if (rochld.ID == -1) myid = -1; } @@ -564,7 +597,7 @@ namespace Volian.Controls.Library if (dti.MyDSOTabPanel != null) // A Word Document tab is the active tab { int dbiId = System.Convert.ToInt32(roch.roid.Substring(0, 4), 16); - ROFSTLookup.rodbi[] dbs = MyROFST.ROFSTLookup.GetRODatabaseList(); + ROFSTLookup.rodbi[] dbs = MyROFSTLookup.GetRODatabaseList(); bool dbFound = false; ROFSTLookup.rodbi db = dbs[0]; foreach (ROFSTLookup.rodbi rodbi in dbs) @@ -591,8 +624,8 @@ namespace Volian.Controls.Library } else { - string accPrefix = db.dbiAP.Replace(_Mydvi.DocVersionConfig.RODefaults_graphicsprefix, "IG"); - accPrefix = accPrefix.Replace(_Mydvi.DocVersionConfig.RODefaults_setpointprefix, "SP"); + string accPrefix = db.dbiAP.Replace(Mydvi.DocVersionConfig.RODefaults_graphicsprefix, "IG"); + accPrefix = accPrefix.Replace(Mydvi.DocVersionConfig.RODefaults_setpointprefix, "SP"); // string accPrefix = (roch.type == 8) ? _Mydvi.DocVersionConfig.RODefaults_graphicsprefix : _Mydvi.DocVersionConfig.RODefaults_setpointprefix; string suffix = (roch.roid.Length == 12 || roch.roid.Substring(12, 4) == "0041") ? "" : "." + ((char)Convert.ToInt32(roch.roid.Substring(12, 4), 16)).ToString(); AccPageID = string.Format("<{0}-{1}{2}>", accPrefix, roch.appid, suffix);// makes for example @@ -617,7 +650,7 @@ namespace Volian.Controls.Library string padroid = (roch.roid.Length <= 12) ? roch.roid + "0000" : roch.roid; string linktxt = string.Format(@"#Link:ReferencedObject: {0} {1}", padroid, _MyROFST.MyRODb.RODbID); // Resolve symbols and scientific notation in the RO return value - string valtxt = _MyROFST.ROFSTLookup.GetTranslatedRoValue(padroid, MyRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); //ConvertSymbolsAndStuff(selectedChld.value); + string valtxt = _MyROFST.GetROFSTLookup(Mydvi).GetTranslatedRoValue(padroid, MyRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); //ConvertSymbolsAndStuff(selectedChld.value); MyRTB.OnRoInsert(this, new StepRTBRoEventArgs(valtxt, selectedChld.value, linktxt, padroid, _MyROFST.MyRODb.RODbID)); } btnGoToRO.Enabled = btnSaveRO.Enabled = btnCancelRO.Enabled = btnPreviewRO.Enabled = false;