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; }
}
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<ROFSTLookup.roChild> 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<int> path = new List<int>();
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 <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 linktxt = string.Format(@"#Link:ReferencedObject:<NewID> {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;