public override void WriteSharedItemProps(RPLElementProps elemProps, RPLWriter rplWriter, PageContext pageContext) { AspNetCore.ReportingServices.OnDemandReportRendering.Paragraph paragraph = base.m_source as AspNetCore.ReportingServices.OnDemandReportRendering.Paragraph; RSTrace.RenderingTracer.Assert(paragraph != null, "The paragraph definition cannot be null"); Hashtable hashtable = pageContext.ItemPropsStart; if (hashtable != null) { object obj = hashtable[this.SourceID]; if (obj != null) { elemProps.Definition = (RPLParagraphPropsDef)obj; return; } } RPLParagraphProps rPLParagraphProps = elemProps as RPLParagraphProps; RPLParagraphPropsDef rPLParagraphPropsDef = rPLParagraphProps.Definition as RPLParagraphPropsDef; if (hashtable == null) { hashtable = (pageContext.ItemPropsStart = new Hashtable()); } hashtable.Add(this.SourceID, rPLParagraphPropsDef); rPLParagraphPropsDef.ID = this.SourceID; if (this.IsNotExpressionValue(paragraph.LeftIndent)) { rPLParagraphPropsDef.LeftIndent = new RPLReportSize(paragraph.LeftIndent.Value.ToString()); } if (this.IsNotExpressionValue(paragraph.RightIndent)) { rPLParagraphPropsDef.RightIndent = new RPLReportSize(paragraph.RightIndent.Value.ToString()); } if (this.IsNotExpressionValue(paragraph.HangingIndent)) { rPLParagraphPropsDef.HangingIndent = new RPLReportSize(paragraph.HangingIndent.Value.ToString()); } if (!paragraph.ListStyle.IsExpression) { rPLParagraphPropsDef.ListStyle = (RPLFormat.ListStyles)StyleEnumConverter.Translate(paragraph.ListStyle.Value); } if (!paragraph.ListLevel.IsExpression) { rPLParagraphPropsDef.ListLevel = paragraph.ListLevel.Value; } if (this.IsNotExpressionValue(paragraph.SpaceBefore)) { rPLParagraphPropsDef.SpaceBefore = new RPLReportSize(paragraph.SpaceBefore.Value.ToString()); } if (this.IsNotExpressionValue(paragraph.SpaceAfter)) { rPLParagraphPropsDef.SpaceAfter = new RPLReportSize(paragraph.SpaceAfter.Value.ToString()); } rPLParagraphPropsDef.SharedStyle = this.WriteSharedStyle(null, pageContext); }
public override bool NeedsToWriteNullStyle(StyleWriterMode mode) { RPLParagraph paragraph = this.m_paragraph; switch (mode) { case StyleWriterMode.NonShared: { RPLParagraphProps rPLParagraphProps = paragraph.ElementProps as RPLParagraphProps; if (rPLParagraphProps.LeftIndent == null && rPLParagraphProps.RightIndent == null && rPLParagraphProps.SpaceBefore == null && rPLParagraphProps.SpaceAfter == null && rPLParagraphProps.HangingIndent == null) { RPLStyleProps nonSharedStyle = this.m_textBox.ElementProps.NonSharedStyle; if (!this.m_outputSharedInNonShared) { break; } return(true); } return(true); } case StyleWriterMode.Shared: { if (this.m_outputSharedInNonShared) { return(false); } RPLParagraphPropsDef rPLParagraphPropsDef = paragraph.ElementProps.Definition as RPLParagraphPropsDef; if (rPLParagraphPropsDef.LeftIndent == null && rPLParagraphPropsDef.RightIndent == null && rPLParagraphPropsDef.SpaceBefore == null && rPLParagraphPropsDef.SpaceAfter == null && rPLParagraphPropsDef.HangingIndent == null) { IRPLStyle sharedStyle = this.m_textBox.ElementPropsDef.SharedStyle; if (sharedStyle == null) { break; } if (!HTML5Renderer.IsDirectionRTL(sharedStyle)) { break; } return(true); } return(true); } } return(false); }
internal override bool NeedsToWriteNullStyle(StyleWriterMode mode) { RPLParagraph paragraph = m_paragraph; switch (mode) { case StyleWriterMode.NonShared: { RPLParagraphProps rPLParagraphProps = paragraph.ElementProps as RPLParagraphProps; if (rPLParagraphProps.LeftIndent != null || rPLParagraphProps.RightIndent != null || rPLParagraphProps.SpaceBefore != null || rPLParagraphProps.SpaceAfter != null || rPLParagraphProps.HangingIndent != null) { return(true); } IRPLStyle nonSharedStyle = m_textBox.ElementProps.NonSharedStyle; if (m_outputSharedInNonShared) { return(true); } break; } case StyleWriterMode.Shared: { if (m_outputSharedInNonShared) { return(false); } RPLParagraphPropsDef rPLParagraphPropsDef = paragraph.ElementProps.Definition as RPLParagraphPropsDef; if (rPLParagraphPropsDef.LeftIndent != null || rPLParagraphPropsDef.RightIndent != null || rPLParagraphPropsDef.SpaceBefore != null || rPLParagraphPropsDef.SpaceAfter != null || rPLParagraphPropsDef.HangingIndent != null) { return(true); } IRPLStyle sharedStyle = m_textBox.ElementPropsDef.SharedStyle; if (sharedStyle != null && HTML4Renderer.IsDirectionRTL(sharedStyle)) { return(true); } break; } } return(false); }
internal override void WriteNonSharedItemProps(RPLElementProps elemProps, RPLWriter rplWriter, PageContext pageContext) { Microsoft.ReportingServices.OnDemandReportRendering.Paragraph paragraph = m_source as Microsoft.ReportingServices.OnDemandReportRendering.Paragraph; RSTrace.RenderingTracer.Assert(paragraph != null, "The paragraph definition cannot be null"); ParagraphInstance paragraphInstance = null; bool flag = false; if (m_compiledSource != null) { paragraphInstance = m_compiledSource; flag = true; } else { paragraphInstance = paragraph.Instance; RSTrace.RenderingTracer.Assert(paragraphInstance != null, "The paragraph instance cannot be null"); } elemProps.UniqueName = paragraphInstance.UniqueName; RPLParagraphProps rPLParagraphProps = elemProps as RPLParagraphProps; if (!flag) { if (IsExpressionValue(paragraph.LeftIndent, paragraphInstance.LeftIndent)) { rPLParagraphProps.LeftIndent = new RPLReportSize(paragraphInstance.LeftIndent.ToString()); } if (IsExpressionValue(paragraph.RightIndent, paragraphInstance.RightIndent)) { rPLParagraphProps.RightIndent = new RPLReportSize(paragraphInstance.RightIndent.ToString()); } if (IsExpressionValue(paragraph.HangingIndent, paragraphInstance.HangingIndent)) { rPLParagraphProps.HangingIndent = new RPLReportSize(paragraphInstance.HangingIndent.ToString()); } if (paragraph.ListStyle.IsExpression) { rPLParagraphProps.ListStyle = (RPLFormat.ListStyles)StyleEnumConverter.Translate(paragraphInstance.ListStyle); } else { rPLParagraphProps.ListStyle = null; } if (paragraph.ListLevel.IsExpression) { rPLParagraphProps.ListLevel = paragraphInstance.ListLevel; } else { rPLParagraphProps.ListLevel = null; } if (IsExpressionValue(paragraph.SpaceBefore, paragraphInstance.SpaceBefore)) { rPLParagraphProps.SpaceBefore = new RPLReportSize(paragraphInstance.SpaceBefore.ToString()); } if (IsExpressionValue(paragraph.SpaceAfter, paragraphInstance.SpaceAfter)) { rPLParagraphProps.SpaceAfter = new RPLReportSize(paragraphInstance.SpaceAfter.ToString()); } } else { if (paragraphInstance.LeftIndent != null) { rPLParagraphProps.LeftIndent = new RPLReportSize(paragraphInstance.LeftIndent.ToString()); } if (paragraphInstance.RightIndent != null) { rPLParagraphProps.RightIndent = new RPLReportSize(paragraphInstance.RightIndent.ToString()); } if (paragraphInstance.HangingIndent != null) { rPLParagraphProps.HangingIndent = new RPLReportSize(paragraphInstance.HangingIndent.ToString()); } rPLParagraphProps.ListStyle = (RPLFormat.ListStyles)StyleEnumConverter.Translate(paragraphInstance.ListStyle); rPLParagraphProps.ListLevel = paragraphInstance.ListLevel; if (paragraphInstance.SpaceBefore != null) { rPLParagraphProps.SpaceBefore = new RPLReportSize(paragraphInstance.SpaceBefore.ToString()); } if (paragraphInstance.SpaceAfter != null) { rPLParagraphProps.SpaceAfter = new RPLReportSize(paragraphInstance.SpaceAfter.ToString()); } } rPLParagraphProps.ParagraphNumber = m_paragraphNumber; rPLParagraphProps.NonSharedStyle = WriteNonSharedStyle(null, null, pageContext, m_compiledSource); }
internal override void WriteStyles(StyleWriterMode mode, IRPLStyle style) { RPLParagraph paragraph = m_paragraph; RPLTextBox textBox = m_textBox; RPLTextBoxProps rPLTextBoxProps = textBox.ElementProps as RPLTextBoxProps; if (paragraph != null) { RPLParagraphProps rPLParagraphProps = paragraph.ElementProps as RPLParagraphProps; RPLParagraphPropsDef rPLParagraphPropsDef = rPLParagraphProps.Definition as RPLParagraphPropsDef; RPLReportSize rPLReportSize = null; RPLReportSize leftIndent = null; RPLReportSize rightIndent = null; RPLReportSize spaceBefore = null; RPLReportSize spaceAfter = null; IRPLStyle iRPLStyle = null; switch (mode) { case StyleWriterMode.All: rPLReportSize = rPLParagraphProps.HangingIndent; if (rPLReportSize == null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } leftIndent = rPLParagraphProps.LeftIndent; if (leftIndent == null) { leftIndent = rPLParagraphPropsDef.LeftIndent; } rightIndent = rPLParagraphProps.RightIndent; if (rightIndent == null) { rightIndent = rPLParagraphPropsDef.RightIndent; } spaceBefore = rPLParagraphProps.SpaceBefore; if (spaceBefore == null) { spaceBefore = rPLParagraphPropsDef.SpaceBefore; } spaceAfter = rPLParagraphProps.SpaceAfter; if (spaceAfter == null) { spaceAfter = rPLParagraphPropsDef.SpaceAfter; } break; case StyleWriterMode.NonShared: { iRPLStyle = m_textBox.ElementProps.NonSharedStyle; rPLReportSize = rPLParagraphProps.HangingIndent; rightIndent = rPLParagraphProps.RightIndent; leftIndent = rPLParagraphProps.LeftIndent; spaceAfter = rPLParagraphProps.SpaceAfter; spaceBefore = rPLParagraphProps.SpaceBefore; if (m_outputSharedInNonShared) { if (rPLReportSize == null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } if (rightIndent == null) { rightIndent = rPLParagraphPropsDef.RightIndent; } if (leftIndent == null) { leftIndent = rPLParagraphPropsDef.LeftIndent; } if (spaceAfter == null) { spaceAfter = rPLParagraphPropsDef.SpaceAfter; } if (spaceBefore == null) { spaceBefore = rPLParagraphPropsDef.SpaceBefore; } break; } bool flag = HTML5Renderer.IsDirectionRTL(m_textBox.ElementProps.Style); if (rPLReportSize == null) { if (flag) { if (rightIndent != null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } } else if (leftIndent != null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } } else if (flag) { if (rightIndent == null) { rightIndent = rPLParagraphPropsDef.RightIndent; } } else if (leftIndent == null) { leftIndent = rPLParagraphPropsDef.LeftIndent; } break; } case StyleWriterMode.Shared: iRPLStyle = m_textBox.ElementPropsDef.SharedStyle; rPLReportSize = rPLParagraphPropsDef.HangingIndent; leftIndent = rPLParagraphPropsDef.LeftIndent; rightIndent = rPLParagraphPropsDef.RightIndent; spaceBefore = rPLParagraphPropsDef.SpaceBefore; spaceAfter = rPLParagraphPropsDef.SpaceAfter; break; } if (m_currentListLevel > 0 && rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0) { rPLReportSize = null; } if (m_mode != Mode.ParagraphOnly) { FixIndents(ref leftIndent, ref rightIndent, ref spaceBefore, ref spaceAfter, rPLReportSize); bool flag2 = HTML5Renderer.IsWritingModeVertical(rPLTextBoxProps.Style); if (flag2) { WriteStyle(HTMLElements.m_paddingLeft, leftIndent); } else { WriteStyle(HTMLElements.m_marginLeft, leftIndent); } WriteStyle(HTMLElements.m_marginRight, rightIndent); WriteStyle(HTMLElements.m_marginTop, spaceBefore); if (flag2) { WriteStyle(HTMLElements.m_marginBottom, spaceAfter); } else { WriteStyle(HTMLElements.m_paddingBottom, spaceAfter); } } if (m_mode == Mode.ListOnly) { WriteStyle(HTMLElements.m_fontFamily, "Arial"); WriteStyle(HTMLElements.m_fontSize, "10pt"); } else if (rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0) { WriteStyle(HTMLElements.m_textIndent, rPLReportSize); } } if (style == null || (m_mode != Mode.All && m_mode != Mode.ParagraphOnly)) { return; } object obj = style[25]; if (obj != null || mode != 0) { RPLFormat.TextAlignments textAlignments = RPLFormat.TextAlignments.General; if (obj != null) { textAlignments = (RPLFormat.TextAlignments)obj; } if (textAlignments == RPLFormat.TextAlignments.General) { bool flag3 = HTML5Renderer.GetTextAlignForType(rPLTextBoxProps); if (HTML5Renderer.IsDirectionRTL(rPLTextBoxProps.Style)) { flag3 = ((!flag3) ? true : false); } WriteStream(HTMLElements.m_textAlign); if (flag3) { WriteStream(HTMLElements.m_rightValue); } else { WriteStream(HTMLElements.m_leftValue); } WriteStream(HTMLElements.m_semiColon); } else { WriteStyle(HTMLElements.m_textAlign, EnumStrings.GetValue(textAlignments), null); } } WriteStyle(HTMLElements.m_lineHeight, style[28]); }
internal ReportParagraph(RPLParagraphProps source) { m_source = source; m_uniqueName = source.UniqueName; ParagraphNumber = source.ParagraphNumber; }
public void WriteElementProps(RPLParagraphProps elemProps, PageContext pageContext) { Hashtable itemPropsStart = pageContext.ItemPropsStart; RPLParagraphPropsDef rPLParagraphPropsDef = pageContext.Common.GetFromCache <RPLParagraphPropsDef>(this.m_source.ID, out itemPropsStart); if (rPLParagraphPropsDef == null) { rPLParagraphPropsDef = new RPLParagraphPropsDef(); rPLParagraphPropsDef.SharedStyle = new RPLStyleProps(); this.WriteSharedStyles(new StyleWriterOM(rPLParagraphPropsDef.SharedStyle), this.m_source.Style); if (this.m_source.ListLevel != null && !this.m_source.ListLevel.IsExpression) { rPLParagraphPropsDef.ListLevel = this.m_source.ListLevel.Value; } if (this.m_source.ListStyle != null && !this.m_source.ListStyle.IsExpression) { rPLParagraphPropsDef.ListStyle = (RPLFormat.ListStyles)StyleEnumConverter.Translate(this.m_source.ListStyle.Value); } if (this.m_source.LeftIndent != null && !this.m_source.LeftIndent.IsExpression) { rPLParagraphPropsDef.LeftIndent = new RPLReportSize(this.m_source.LeftIndent.Value.ToString()); } if (this.m_source.RightIndent != null && !this.m_source.RightIndent.IsExpression) { rPLParagraphPropsDef.RightIndent = new RPLReportSize(this.m_source.RightIndent.Value.ToString()); } if (this.m_source.HangingIndent != null && !this.m_source.HangingIndent.IsExpression) { rPLParagraphPropsDef.HangingIndent = new RPLReportSize(this.m_source.HangingIndent.Value.ToString()); } if (this.m_source.SpaceBefore != null && !this.m_source.SpaceBefore.IsExpression) { rPLParagraphPropsDef.SpaceBefore = new RPLReportSize(this.m_source.SpaceBefore.Value.ToString()); } if (this.m_source.SpaceAfter != null && !this.m_source.SpaceAfter.IsExpression) { rPLParagraphPropsDef.SpaceAfter = new RPLReportSize(this.m_source.SpaceAfter.Value.ToString()); } rPLParagraphPropsDef.ID = this.m_source.ID; itemPropsStart[this.m_source.ID] = rPLParagraphPropsDef; } elemProps.Definition = rPLParagraphPropsDef; if (this.m_leftIndent != null) { elemProps.LeftIndent = new RPLReportSize(this.m_leftIndent.ToString()); } if (this.m_rightIndent != null) { elemProps.RightIndent = new RPLReportSize(this.m_rightIndent.ToString()); } if (this.m_hangingIndent != null) { elemProps.HangingIndent = new RPLReportSize(this.m_hangingIndent.ToString()); } if (this.m_listStyle.HasValue) { elemProps.ListStyle = this.m_listStyle.Value; } if (this.m_listLevel.HasValue) { elemProps.ListLevel = this.m_listLevel.Value; } if (this.m_spaceBefore != null) { elemProps.SpaceBefore = new RPLReportSize(this.m_spaceBefore.ToString()); } if (this.m_spaceAfter != null) { elemProps.SpaceAfter = new RPLReportSize(this.m_spaceAfter.ToString()); } elemProps.ParagraphNumber = this.m_paragraphNumber; elemProps.FirstLine = this.m_firstLine; elemProps.UniqueName = this.m_uniqueName; RPLStyleProps rPLStyleProps = null; if (this.m_styles != null) { rPLStyleProps = new RPLStyleProps(); StyleWriter styleWriter = new StyleWriterOM(rPLStyleProps); styleWriter.WriteAll(this.m_styles); } elemProps.NonSharedStyle = rPLStyleProps; }
public override void WriteStyles(StyleWriterMode mode, IRPLStyle style) { RPLParagraph paragraph = this.m_paragraph; RPLTextBox textBox = this.m_textBox; RPLTextBoxProps rPLTextBoxProps = textBox.ElementProps as RPLTextBoxProps; if (paragraph != null) { RPLParagraphProps rPLParagraphProps = paragraph.ElementProps as RPLParagraphProps; RPLParagraphPropsDef rPLParagraphPropsDef = rPLParagraphProps.Definition as RPLParagraphPropsDef; RPLReportSize rPLReportSize = null; RPLReportSize rPLReportSize2 = null; RPLReportSize rPLReportSize3 = null; RPLReportSize rPLReportSize4 = null; RPLReportSize rPLReportSize5 = null; switch (mode) { case StyleWriterMode.All: rPLReportSize = rPLParagraphProps.HangingIndent; if (rPLReportSize == null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } rPLReportSize2 = rPLParagraphProps.LeftIndent; if (rPLReportSize2 == null) { rPLReportSize2 = rPLParagraphPropsDef.LeftIndent; } rPLReportSize3 = rPLParagraphProps.RightIndent; if (rPLReportSize3 == null) { rPLReportSize3 = rPLParagraphPropsDef.RightIndent; } rPLReportSize4 = rPLParagraphProps.SpaceBefore; if (rPLReportSize4 == null) { rPLReportSize4 = rPLParagraphPropsDef.SpaceBefore; } rPLReportSize5 = rPLParagraphProps.SpaceAfter; if (rPLReportSize5 == null) { rPLReportSize5 = rPLParagraphPropsDef.SpaceAfter; } break; case StyleWriterMode.NonShared: { RPLStyleProps nonSharedStyle = this.m_textBox.ElementProps.NonSharedStyle; rPLReportSize = rPLParagraphProps.HangingIndent; rPLReportSize3 = rPLParagraphProps.RightIndent; rPLReportSize2 = rPLParagraphProps.LeftIndent; rPLReportSize5 = rPLParagraphProps.SpaceAfter; rPLReportSize4 = rPLParagraphProps.SpaceBefore; if (this.m_outputSharedInNonShared) { if (rPLReportSize == null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } if (rPLReportSize3 == null) { rPLReportSize3 = rPLParagraphPropsDef.RightIndent; } if (rPLReportSize2 == null) { rPLReportSize2 = rPLParagraphPropsDef.LeftIndent; } if (rPLReportSize5 == null) { rPLReportSize5 = rPLParagraphPropsDef.SpaceAfter; } if (rPLReportSize4 == null) { rPLReportSize4 = rPLParagraphPropsDef.SpaceBefore; } } else { bool flag = HTML5Renderer.IsDirectionRTL(this.m_textBox.ElementProps.Style); if (rPLReportSize == null) { if (flag) { if (rPLReportSize3 != null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } } else if (rPLReportSize2 != null) { rPLReportSize = rPLParagraphPropsDef.HangingIndent; } } else if (flag) { if (rPLReportSize3 == null) { rPLReportSize3 = rPLParagraphPropsDef.RightIndent; } } else if (rPLReportSize2 == null) { rPLReportSize2 = rPLParagraphPropsDef.LeftIndent; } } break; } case StyleWriterMode.Shared: { RPLStyleProps sharedStyle = this.m_textBox.ElementPropsDef.SharedStyle; rPLReportSize = rPLParagraphPropsDef.HangingIndent; rPLReportSize2 = rPLParagraphPropsDef.LeftIndent; rPLReportSize3 = rPLParagraphPropsDef.RightIndent; rPLReportSize4 = rPLParagraphPropsDef.SpaceBefore; rPLReportSize5 = rPLParagraphPropsDef.SpaceAfter; break; } } if (this.m_currentListLevel > 0 && rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0) { rPLReportSize = null; } if (this.m_mode != Mode.ParagraphOnly) { this.FixIndents(ref rPLReportSize2, ref rPLReportSize3, ref rPLReportSize4, ref rPLReportSize5, rPLReportSize); bool flag2 = HTML5Renderer.IsWritingModeVertical(rPLTextBoxProps.Style); if (flag2) { base.WriteStyle(HTMLElements.m_paddingLeft, rPLReportSize2); } else { base.WriteStyle(HTMLElements.m_marginLeft, rPLReportSize2); } base.WriteStyle(HTMLElements.m_marginRight, rPLReportSize3); base.WriteStyle(HTMLElements.m_marginTop, rPLReportSize4); if (flag2) { base.WriteStyle(HTMLElements.m_marginBottom, rPLReportSize5); } else { base.WriteStyle(HTMLElements.m_paddingBottom, rPLReportSize5); } } if (this.m_mode == Mode.ListOnly) { base.WriteStyle(HTMLElements.m_fontFamily, "Arial"); base.WriteStyle(HTMLElements.m_fontSize, "10pt"); } else if (rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0) { base.WriteStyle(HTMLElements.m_textIndent, rPLReportSize); } } if (style != null) { if (this.m_mode != Mode.All && this.m_mode != Mode.ParagraphOnly) { return; } object obj = style[25]; if (obj != null || mode != 0) { RPLFormat.TextAlignments textAlignments = RPLFormat.TextAlignments.General; if (obj != null) { textAlignments = (RPLFormat.TextAlignments)obj; } if (textAlignments == RPLFormat.TextAlignments.General) { bool flag3 = HTML5Renderer.GetTextAlignForType(rPLTextBoxProps); if (HTML5Renderer.IsDirectionRTL(rPLTextBoxProps.Style)) { flag3 = ((byte)((!flag3) ? 1 : 0) != 0); } base.WriteStream(HTMLElements.m_textAlign); if (flag3) { base.WriteStream(HTMLElements.m_rightValue); } else { base.WriteStream(HTMLElements.m_leftValue); } base.WriteStream(HTMLElements.m_semiColon); } else { base.WriteStyle(HTMLElements.m_textAlign, EnumStrings.GetValue(textAlignments), null); } } base.WriteStyle(HTMLElements.m_lineHeight, style[28]); } }
public ReportParagraph(RPLParagraphProps source) { this.m_source = source; this.m_uniqueName = source.UniqueName; this.ParagraphNumber = source.ParagraphNumber; }