From f675e6c866e6911bf9423d70b492f8cb7791b9d0 Mon Sep 17 00:00:00 2001 From: Kathy Date: Thu, 5 Jun 2014 12:52:29 +0000 Subject: [PATCH] BGE: Fixed RNO Tab from AER that is bullet B2014-072: Do not display Page Number checkbox, transitions with page number are included in list of transition types B2014-070: Fix null reference access if editing a procedure step title in the step editor when format uses change ids BGE: RNO X-offset location and note/caution y-offset improvements --- .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 11 +++- .../DisplayTransition.cs | 11 +--- PROMS/Volian.Controls.Library/RTBItem.cs | 2 +- PROMS/Volian.Print.Library/vlnParagraph.cs | 52 ++++++++++++++++++- 4 files changed, 62 insertions(+), 14 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 999c11d6..4fbe1a06 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -2709,8 +2709,15 @@ namespace VEPROMS.CSLA.Library _MyTab.Text = _MyTab.CleanText; return; } - _MyTab.CleanText = MyParent.MyTab.CleanText.Substring(0, MyParent.MyTab.CleanText.IndexOf(".") + 1) + incSub; - _MyTab.Text = MyParent.MyTab.CleanText.Substring(0, MyParent.MyTab.Text.IndexOf(".") + 1) + incSub; + if (MyParent.MyTab.CleanText.Contains(ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB)) + { + _MyTab.CleanText = MyParent.MyTab.CleanText.Trim() + "." + incSub + " "; + _MyTab.Text = _MyTab.CleanText; + return; + } + string tmprnotab = MyParent.MyTab.CleanText.Substring(0, MyParent.MyTab.CleanText.IndexOf(".") + 1) + incSub; + _MyTab.CleanText = tmprnotab.TrimStart(); + _MyTab.Text = tmprnotab.TrimStart(); return; } if ((((ItemInfo)ActiveParent).IsHigh && FormatStepData.NumberHighLevel) || ((!((ItemInfo)ActiveParent).IsHigh) && ((tbformat == null || tbformat == "") && (RNOLevel <= ColumnMode)))) diff --git a/PROMS/Volian.Controls.Library/DisplayTransition.cs b/PROMS/Volian.Controls.Library/DisplayTransition.cs index 8f6c4fac..0a94ca25 100644 --- a/PROMS/Volian.Controls.Library/DisplayTransition.cs +++ b/PROMS/Volian.Controls.Library/DisplayTransition.cs @@ -589,16 +589,7 @@ namespace Volian.Controls.Library (_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[indx].Type == 1 || _CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[indx].Type == 2 || _CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[indx].Type == 4); - if (_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier) - { - if (listBoxTranFmt.SelectedIndex >=0 && listBoxTranFmt.SelectedIndex <= listBoxTranFmt.Items.Count) - { - // see if format for this particular transition does page number: - if (_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[indx].TransFormat.Contains("{Page Num}")) - cbPageNum.Visible = true; - } - - } + cbPageNum.Checked = false; if (cbPageNum.Visible) { diff --git a/PROMS/Volian.Controls.Library/RTBItem.cs b/PROMS/Volian.Controls.Library/RTBItem.cs index 82d377d7..79ef0581 100644 --- a/PROMS/Volian.Controls.Library/RTBItem.cs +++ b/PROMS/Volian.Controls.Library/RTBItem.cs @@ -678,7 +678,7 @@ namespace Volian.Controls.Library // if the plant has the change id option, the change id was entered when the program started. // this should be saved for every piece of edited data. Note that the set of config // item Step_MultipleChangeID has the save built in to it. - if (MyStepRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChgBarMessageFromEdit) + if (MyStepRTB.MyItemInfo.IsStep && MyStepRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChgBarMessageFromEdit) { StepConfig sc = MyStepRTB.MyItemInfo.MyConfig as StepConfig; sc.Step_ChangeID = this.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.ChgId; diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index 1c85fa15..72bc5d95 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -1549,6 +1549,7 @@ namespace Volian.Print.Library } public vlnParagraph(vlnParagraph parent, PdfContentByte cb, ItemInfo itemInfo, float xoff, float yoff, int rnoLevel, int maxRNO, FormatInfo formatInfo, string prefix, string suffix, float yoffRightParent) { + float yOffOrig = yoff; BuildPlacekeeper(parent, itemInfo); if (itemInfo.ActiveFormat.MyStepSectionLayoutData.BoxLeftAdj != null) _MyBoxLeftAdj = float.Parse(itemInfo.ActiveFormat.MyStepSectionLayoutData.BoxLeftAdj); @@ -1789,6 +1790,33 @@ namespace Volian.Print.Library yoff = ChildrenAbove.Add(cb, itemInfo.Notes, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); } } + + // Without the following, BGE had gaps in y-direction if the AER/RNO both had cautions/notes. + // The only time this needs done is if caution/notes are printed in separate columns in dual + // column mode (used the DoubleBoxHLS BGE flag for this - if another plant needs this, make it + // a more generic flag). + if (itemInfo.IsRNOPart && ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS) && + rnoLevel == maxRNO && ChildrenAbove.Count > 0 && MyParent.ChildrenAbove.Count > 0) + { + float yDeltaRno = yoff - yOffOrig; + float yDeltaAer = SixLinesPerInch + yOffOrig - MyParent.ChildrenAbove[0].YTopMost; + if (yDeltaRno > yDeltaAer) + { + foreach (vlnParagraph chlda in MyParent.ChildrenAbove) + { + chlda.AdjustYOffset(yDeltaAer - yDeltaRno); + } + foreach (vlnParagraph chld in ChildrenAbove) + chld.AdjustYOffset(yDeltaAer); + yoff -= yDeltaAer; + } + else + { + foreach (vlnParagraph chld in ChildrenAbove) + chld.AdjustYOffset(yDeltaRno); + yoff -= yDeltaRno; + } + } // Comanche Peak uses CAUTION2 type to enter a Step Designator, which is placed to the left of the step number. // The Step Designator information is saved during the processing of the Cautions (ChildrenAbove) // defined in the vlnParagraphs class (of which ChildrenAbove is defined) @@ -2256,6 +2284,15 @@ namespace Volian.Print.Library if (XOffsetCenter != null) XOffset = (float)XOffsetCenter; } + private void AdjustYOffset(float yDelta) + { + YOffset -= yDelta; + foreach (vlnPrintObject vpo in PartsAbove) + vpo.YOffset -= yDelta; + foreach (vlnParagraph vp in ChildrenBelow) + vp.AdjustYOffset(yDelta); + } + private void BuildPlacekeeper(vlnParagraph parent, ItemInfo itemInfo) { if (itemInfo is SectionInfo && (itemInfo as SectionInfo).SectionConfig.Section_Placekeeper.ToUpper() != "N") // if is a section type and the section is marked to create placekeeper @@ -3209,9 +3246,22 @@ namespace Volian.Print.Library XOffset -= (itemInfo.MyTab.Offset - hls.MyTab.Offset); } } + // if this format has the centerline & numberwithlevel (special tabbing for rno) then + // position rno xoffset of the tab to be close to centerline & text indented from there (only BGE) + if (itemInfo.MyDocStyle.CenterLineX != null && itemInfo.FormatStepData.NumberWithLevel) + { + // if the tab is 3 char or smaller, make the indent amount for the rno text 4 characters. + // if bigger, make it the additional tab size. + int len = myTab.Text.Trim().Length; + int adj = len <= 3 ? 4 : (len - 3) + 4; + float rnoOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)itemInfo.MyDocStyle.CenterLineX + 5; + float tPtPerChar = itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar ?? 6; + XOffset = rnoOffset + tPtPerChar * adj; + if (myTab != null) myTab.XOffset = rnoOffset; + } // if the step is within the rno and we're numbering the high level rno, we've got to account for the // indenting (increased x offset) for the top level rno's tab, if there is no top level rno: - if (itemInfo.FormatStepData.NumberHighLevel && (itemInfo.MyHLS.RNOs == null || itemInfo.MyHLS.RNOs.Count <= 0)) + else if (itemInfo.FormatStepData.NumberHighLevel && (itemInfo.MyHLS.RNOs == null || itemInfo.MyHLS.RNOs.Count <= 0)) { // add in the size that an RNO off HLS would take. tabWidth += itemInfo.MyTab.RNOTabWidthAdjust;