Added ROFSTLookup property to Display RO control

Changed how ROFSTLookup object was obtained based on correct DocVersion
Added change to ROFSTLookup property to trigger a update of RO values
Update LoadTree method to use ROFSTLookup property value
This commit is contained in:
Rich 2014-02-07 17:41:27 +00:00
parent 9b9ca02bef
commit 8de1e073ee

View File

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