Added Comments

Change NotVisibleRTB (Current RTB when the DisplayTag is not visible) to use a property rather than a member
Added IsVisible property that sets the Visible property if it needs to change.
Previously Visible was being set prior to the current RTB being set, and so the Tag was not being updated properly.
Change CurItemInfo to use a property rather than a member
This commit is contained in:
Rich 2010-12-21 20:32:29 +00:00
parent a3b9bc73ab
commit f49aae2e7c

View File

@ -13,10 +13,34 @@ namespace Volian.Controls.Library
public partial class DisplayTags : UserControl
{
#region Properties
private ItemInfo _CurItemInfo=null;
private ItemInfo _CurItemInfo = null;
/// <summary>
/// Current ItemInfo
/// </summary>
public ItemInfo CurItemInfo
{
get { return _CurItemInfo; }
set { _CurItemInfo = value; }
}
private bool _Initalizing = false;
private IList<int> _MyStepTypeInd = null; // use to keep track of step types put in step type menu
private StepRTB _NotVisibleRTB = null;
/// <summary>
/// This stores the last selected StepRTB when the Panel was not visible
/// This allows the panel to be filled when the when it is made visible
/// </summary>
public StepRTB NotVisibleRTB
{
get { return _NotVisibleRTB; }
set
{
_NotVisibleRTB = null; // Initialize it to null
if (value != null)
if (value.MyItemInfo != null)
if (value.MyItemInfo.IsStep)
_NotVisibleRTB = value; // Only visible for steps
}
}
private StepRTB _MyRTB;
public StepRTB MyRTB
{
@ -25,29 +49,30 @@ namespace Volian.Controls.Library
{
if (!Visible)
{
_NotVisibleRTB = value;
NotVisibleRTB = value; // Remember RTB if the panel becomes visible
CurItemInfo = null; // The Current Item Info should be forgotten
return;
}
_NotVisibleRTB = null;
NotVisibleRTB = null; // If Visible, no need to remember the RTB when the panel wasn't visible
if (value == null)
{
ClearControls();
return;
}
if (_CurItemInfo != null && _CurItemInfo.ItemID == value.MyItemInfo.ItemID) return;
if (CurItemInfo != null && CurItemInfo.ItemID == value.MyItemInfo.ItemID) return;
if (!value.MyItemInfo.IsStep)
{
ClearControls();
return;
}
_MyRTB = value;
_CurItemInfo = MyRTB.MyItemInfo;
CurItemInfo = value.MyItemInfo;
// only change all at level if all substeps are of same type
bool allSameType = true;
ItemInfo itmp = _CurItemInfo.FirstSibling;
ItemInfo itmp = CurItemInfo.FirstSibling;
while (itmp != null)
{
if (_CurItemInfo.MyContent.Type != itmp.MyContent.Type)
if (CurItemInfo.MyContent.Type != itmp.MyContent.Type)
{
allSameType = false;
break;
@ -58,6 +83,11 @@ namespace Volian.Controls.Library
TagsFillIn();
}
}
public bool IsVisible
{
get { return Visible; }
set { if (Visible != value) Visible = value; }
}
#endregion
#region Constructor
public DisplayTags()
@ -76,11 +106,12 @@ namespace Volian.Controls.Library
rbChgBarOn.Enabled = false;
listBoxStepTypes.Items.Clear();
_MyStepTypeInd.Clear();
CurItemInfo = null;
}
private bool StepOverRide()
{
ItemInfo myparent = _CurItemInfo.MyActiveParent as ItemInfo;
if (_CurItemInfo.IsRNOPart && myparent !=null && myparent.IsHigh)
ItemInfo myparent = CurItemInfo.MyActiveParent as ItemInfo;
if (CurItemInfo.IsRNOPart && myparent !=null && myparent.IsHigh)
{
// does the high level step of an RNO have a checkoff, if so it
// can be overridden?
@ -106,19 +137,19 @@ namespace Volian.Controls.Library
groupPanelMisc.Style.BackColor = Color.Cornsilk;
groupPanelCheckoff.Style.BackColor = Color.Cornsilk;
cbPageBreak.Checked = false; // will be set below if HLS & config has it on
cbPageBreak.Enabled = _CurItemInfo.IsHigh;
cbPageBreak.Enabled = CurItemInfo.IsHigh;
cbCAS.Enabled = true;
rbChgBarOff.Enabled = true;
rbChgBarOn.Enabled = true;
FormatData fmtdata = _CurItemInfo.ActiveFormat.PlantFormat.FormatData;
StepConfig sc = _CurItemInfo.MyConfig as StepConfig;
FormatData fmtdata = CurItemInfo.ActiveFormat.PlantFormat.FormatData;
StepConfig sc = CurItemInfo.MyConfig as StepConfig;
// in certain cases, the checkbox control should be disabled, check for this stuff now...
int formatSteptype = _CurItemInfo.FormatStepType;
int formatSteptype = CurItemInfo.FormatStepType;
cmbCheckoff.Enabled = true;
if ((_CurItemInfo.IsCaution || _CurItemInfo.IsNote) & !fmtdata.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel)
if ((CurItemInfo.IsCaution || CurItemInfo.IsNote) & !fmtdata.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel)
cmbCheckoff.Enabled = false;
if (_CurItemInfo.IsRNOPart && sc != null && sc.Step_CheckOffIndex != -1 && !fmtdata.StepDataList[formatSteptype].CheckOffSameAsParent)
if (CurItemInfo.IsRNOPart && sc != null && sc.Step_CheckOffIndex != -1 && !fmtdata.StepDataList[formatSteptype].CheckOffSameAsParent)
cmbCheckoff.Enabled = false; // Checkoffs already assigned to RNO.
if (StepOverRide()) cmbCheckoff.Enabled = false; // Checkoffs already assigned to AER
@ -127,12 +158,12 @@ namespace Volian.Controls.Library
if (sc == null) // if there is no config data, Page Break and CAS check boxes are false
{
if (_CurItemInfo.IsHigh)cbPageBreak.Checked = false;
if (CurItemInfo.IsHigh)cbPageBreak.Checked = false;
cbCAS.Checked = false;
}
else // otherwise, get data from config
{
if (_CurItemInfo.IsHigh) cbPageBreak.Checked = sc.Step_ManualPagebreak;
if (CurItemInfo.IsHigh) cbPageBreak.Checked = sc.Step_ManualPagebreak;
cbCAS.Checked = sc.Step_CAS;
}
@ -151,7 +182,7 @@ namespace Volian.Controls.Library
// if the date show it as having one, or allow a change bar to be 'on' if there the dates are
// not different. Note also that a user may edit data after the change bar is set to 'on'.
DateTime curDts;
using (Item itm = Item.Get(_CurItemInfo.ItemID))
using (Item itm = Item.Get(CurItemInfo.ItemID))
{
curDts = itm.DTS;
}
@ -166,7 +197,7 @@ namespace Volian.Controls.Library
// change bar & override sets it to Off.
if (sc.Step_CBOverride == null)
{
if (curDts > _CurItemInfo.MyProcedure.DTS)
if (curDts > CurItemInfo.MyProcedure.DTS)
{
rbChgBarOn.Checked = true;
rbChgBarOff.Text = "OFF (Override)";
@ -182,7 +213,7 @@ namespace Volian.Controls.Library
// If the date of this is greater than the procedure, a change bar should be displayed -
// see what the override says. The override states whether change bar is on/off (not
// whether override is on/off)
if (curDts > _CurItemInfo.MyProcedure.DTS)
if (curDts > CurItemInfo.MyProcedure.DTS)
{
rbChgBarOff.Text = "OFF (Override)";
rbChgBarOn.Text = "ON";
@ -199,7 +230,7 @@ namespace Volian.Controls.Library
//int tmpi = formatSteptype;
// RNO is a special case in that it has a parent type of high, for formatting, but does not walk
// up tree to define types that it can be changed into....
if (!_CurItemInfo.IsRNOPart) top = fmtdata.StepTopUnderBase(top, formatSteptype);
if (!CurItemInfo.IsRNOPart) top = fmtdata.StepTopUnderBase(top, formatSteptype);
listBoxStepTypes.Items.Clear();
listBoxStepTypes.SelectedIndex = DoListStepTypes(fmtdata, top, fmtdata.StepDataList[formatSteptype].Type);
lblNoTypeChgReason.Visible = !(listBoxStepTypes.Items.Count>0);
@ -210,7 +241,7 @@ namespace Volian.Controls.Library
private int DoListStepTypes(FormatData fmtdata, StepData topType, string curType)
{
int cursel=-1;
List<StepDataRetval> sdl = fmtdata.StepGetLevelTypes(false, topType, ref cursel, curType, _CurItemInfo);
List<StepDataRetval> sdl = fmtdata.StepGetLevelTypes(false, topType, ref cursel, curType, CurItemInfo);
if (sdl==null || sdl.Count==0)
{
if (listBoxStepTypes.Items.Count==0)lblNoTypeChgReason.Text = topType.StepEditData.TypeMenu.NoChgReason;
@ -243,14 +274,14 @@ namespace Volian.Controls.Library
private void cbPageBreak_CheckedChanged(object sender, EventArgs e)
{
if (_Initalizing) return;
StepConfig sc = _CurItemInfo.MyConfig as StepConfig;
StepConfig sc = CurItemInfo.MyConfig as StepConfig;
if (sc == null) return;
sc.Step_ManualPagebreak = cbPageBreak.Checked;
}
private void cbCAS_CheckedChanged(object sender, EventArgs e)
{
if (_Initalizing) return;
StepConfig sc = _CurItemInfo.MyConfig as StepConfig;
StepConfig sc = CurItemInfo.MyConfig as StepConfig;
if (sc == null) return;
sc.Step_CAS = cbCAS.Checked;
}
@ -258,11 +289,11 @@ namespace Volian.Controls.Library
{
if (_Initalizing) return;
StepItem topStepItem = _MyRTB.MyStepItem;
FormatData fmtdata = _CurItemInfo.ActiveFormat.PlantFormat.FormatData;
FormatData fmtdata = CurItemInfo.ActiveFormat.PlantFormat.FormatData;
string msgBox = null;
if (cbChgAll.Checked)
{
ItemInfo startitm = _CurItemInfo.FirstSibling;
ItemInfo startitm = CurItemInfo.FirstSibling;
topStepItem = _MyRTB.MyStepItem.MyStepPanel._LookupStepItems[startitm.ItemID];
while (startitm != null)
{
@ -285,14 +316,14 @@ namespace Volian.Controls.Library
}
else
{
using (Content cnt1 = Content.Get(_CurItemInfo.MyContent.ContentID))
using (Content cnt1 = Content.Get(CurItemInfo.MyContent.ContentID))
{
cnt1.Type = 20000 + fmtdata.StepDataList[_MyStepTypeInd[listBoxStepTypes.SelectedIndex]].Index;
cnt1.DTS = DateTime.Now;
cnt1.UserID = Volian.Base.Library.VlnSettings.UserID;
cnt1.Save();
}
using (Item itm1 = Item.Get(_CurItemInfo.ItemID))
using (Item itm1 = Item.Get(CurItemInfo.ItemID))
{
itm1.DTS = DateTime.Now;
itm1.UserID = Volian.Base.Library.VlnSettings.UserID;
@ -306,7 +337,8 @@ namespace Volian.Controls.Library
}
private void groupPanelCheckoff_VisibleChanged(object sender, EventArgs e)
{
if (Visible==true && _NotVisibleRTB != null) MyRTB = _NotVisibleRTB;
if (Visible==true && NotVisibleRTB != null)
MyRTB = NotVisibleRTB; // If it becomes visible, update the panel
}
private void rbChgBarOvrRideOn_CheckedChanged(object sender, EventArgs e)
{
@ -316,9 +348,9 @@ namespace Volian.Controls.Library
// handler for the other control sets the data appropriately.
if (rbChgBarOn.Checked)
{
StepConfig sc = _CurItemInfo.MyConfig as StepConfig;
StepConfig sc = CurItemInfo.MyConfig as StepConfig;
sc.Step_CBOverride = "On";
using (Content cnt = Content.Get(_CurItemInfo.MyContent.ContentID))
using (Content cnt = Content.Get(CurItemInfo.MyContent.ContentID))
{
cnt.DTS = DateTime.Now;
cnt.UserID = Volian.Base.Library.VlnSettings.UserID;
@ -334,12 +366,12 @@ namespace Volian.Controls.Library
// handler for the other control sets the data appropriately.
if (rbChgBarOff.Checked)
{
StepConfig sc = _CurItemInfo.MyConfig as StepConfig;
StepConfig sc = CurItemInfo.MyConfig as StepConfig;
sc.Step_CBOverride = "Off";
using (Content cnt = Content.Get(_CurItemInfo.MyContent.ContentID))
using (Content cnt = Content.Get(CurItemInfo.MyContent.ContentID))
{
cnt.DTS = _CurItemInfo.MyProcedure.DTS;
cnt.UserID = _CurItemInfo.MyProcedure.UserID;
cnt.DTS = CurItemInfo.MyProcedure.DTS;
cnt.UserID = CurItemInfo.MyProcedure.UserID;
cnt.Save();
}
}