This commit is contained in:
Kathy Ruffing 2012-05-24 15:15:11 +00:00
parent 0244952ba0
commit 3f113dc9c5

View File

@ -109,11 +109,8 @@ namespace Volian.Print.Library
if ((MySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DontCountInTabOfCont) == 0)
CurrentTOCPageNumber++;
}
if (NegPageItems != null)
{
NegPageItems.Clear();
NegPageItems = null;
}
PageListTopCheckOffHeader = null;
PageListLastCheckOffHeader = null;
YMultiplier = 1;
}
private void DrawRuler(PdfContentByte cb)
@ -423,7 +420,6 @@ namespace Volian.Print.Library
{
VEPROMS.CSLA.Library.FormatInfo activeFormat = mySection.ActiveFormat;
VEPROMS.CSLA.Library.DocStyle docStyle = mySection.MyDocStyle;
Volian.Svg.Library.Svg mySvg = null;
mySvg = SvgSerializer<Volian.Svg.Library.Svg>.StringDeserialize(BuildMyText(activeFormat));
mySvg.ViewBox.Height = 1100;
@ -569,9 +565,20 @@ namespace Volian.Print.Library
return token.Substring(1, 1) + token.Substring(token.Length - 2, 1);
}
private static Regex regexJustTokens = new Regex(@"^{([^{}]*}{)*[^{}]*}$");
public Dictionary<SectionInfo, CheckOffHeaderHelper> NegPageItems;
// The following variables are used to keep track of whether a check off header should be printed
// if the {CHKOFFHEADING} pagelist item is found. PageListTopCheckOffHeader is the text that
// should be printed at the top of the page. PageListLastCheckOffHeader is the last header that was
// printed (if a header is on the page, and another is to be printed, it doesn't get printed if it
// is the same as the previous) and PageListCheckOffHeader is the page list item converted to a
// SvgText - this stores X/Y location, etc.
public string PageListTopCheckOffHeader = null;
public string PageListLastCheckOffHeader = null;
public SvgText PageListCheckOffHeader = null;
private void AddPageListItems(Volian.Svg.Library.Svg mySvg, VEPROMS.CSLA.Library.PageStyle pageStyle, VEPROMS.CSLA.Library.SectionInfo section)
{
PageListCheckOffHeader = null;
// If this is a continuous section, then the only pagelist items we want are section type since
// we are still on the same page. - CHECK IF ON SAME PAGE!!!!
SectionConfig.SectionPagination sPag = SectionConfig.SectionPagination.Separate;
@ -589,6 +596,7 @@ namespace Volian.Print.Library
//float rowAdj = 0; // = 18;
foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems)
{
VE_Font useFontForCheckOffHeader = null;
if (sPag == SectionConfig.SectionPagination.Separate || ((sPag == SectionConfig.SectionPagination.Continuous || sPag ==0 )&& pageItem.Row < 0))
{
//if (PrevRow > 0)
@ -713,35 +721,14 @@ namespace Volian.Print.Library
//svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, MySection.MyDocVersion.DocVersionConfig.Unit_Text)));
break;
case "{CHKOFFHEADING}":
// unfortunately, the font is not stored on the page list item if there is an active
// check off header. It is stored with the checkoff data as defined by user selection
// of the selected header (selection stored in section config).
int sindx = section.CheckOffHeadingIndex();
// -1 flags no entires in the format's CheckOffHeaderList & 0 flags the first entry
// which is always '{NO HEADING}".
if (sindx > 0)
{
plstr = plstr.Replace(token, "");
if (pageItem.Row < 0)
{
// for the checkoff header, use the font from the CheckOffData Checkoffheader, font to get the
// font style, i.e. bold - underline.
if (NegPageItems == null) NegPageItems = new Dictionary<SectionInfo, CheckOffHeaderHelper>();
// now see if this same checkoff header is on the page, if so, don't
// add it to the list. We only want those that are different.
bool add = true;
foreach (CheckOffHeaderHelper h in NegPageItems.Values)
{
if (section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].CheckOffHeading == h.SvgText.Text) add=false;
}
if (add)
{
SvgText svgt = PageItemToSvgText(pageItem, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].CheckOffHeading, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font, section);
CheckOffHeaderHelper hlp = new CheckOffHeaderHelper(svgt, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font);
NegPageItems.Add(section, hlp);
}
}
else
svgGroup.Add(PageItemToSvgText(pageItem, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].CheckOffHeading, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font, section));
}
VE_Font vf = sindx <= 0 ?pageItem.Font:
section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font;
useFontForCheckOffHeader = vf;
PageListCheckOffHeader = PageItemToSvgText(pageItem, pageItem.Token, vf, section);
break;
default:
// see if it's a PSI token:
@ -797,8 +784,14 @@ namespace Volian.Print.Library
break;
}
} // end foreach matches
if (plstr != "")
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection));
{
if (useFontForCheckOffHeader != null)
svgGroup.Add(PageItemToSvgText(pageItem, plstr, useFontForCheckOffHeader, MySection));
else
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection));
}
}
else
svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token, MySection));
@ -1084,6 +1077,8 @@ namespace Volian.Print.Library
// == to a ' ' (space) and if so, start Rev from second character.
if (Rev !=null && Rev != "" && Rev[0] == ' ') return Rev.Substring(1, Rev.Length - 1);
return Rev;
case "{CHKOFFHEADING}":
return PageListTopCheckOffHeader;
}
if (!_MissingTokens.Contains(match.Value))
{