protected void processText( final ReportElement element, String computedValue, final Object rawValue) { final SimpleStyleSheet resolverStyleSheet = element.getComputedStyle(); if (computedValue != null && resolverStyleSheet.getBooleanStyleProperty(TextStyleKeys.TRIM_TEXT_CONTENT)) { computedValue = computedValue.trim(); } if (this.context.getRenderBox().isAcceptInlineBoxes() == false) { final StyleSheet elementStyle; final int parentNodeType = this.context.getRenderBox().getLayoutNodeType(); if (strictLegacyMode && (parentNodeType & LayoutNodeTypes.MASK_BOX_CANVAS) == LayoutNodeTypes.MASK_BOX_CANVAS) { // A table always claims all elements as dynamic. Use the max-height to limit the expansion // of elements. if (isTableContext(this.context.getRenderBox()) == false && resolverStyleSheet.getBooleanStyleProperty(ElementStyleKeys.DYNAMIC_HEIGHT) == false) { elementStyle = new NonDynamicHeightWrapperStyleSheet(resolverStyleSheet); } else { elementStyle = new DynamicHeightWrapperStyleSheet(resolverStyleSheet); } } else { elementStyle = resolverStyleSheet; } this.textProducer.startText(); final RenderBox renderBox = renderNodeFactory.createAutoParagraph(element, elementStyle, stateKey); final RenderNode[] renderNodes = textProducer.getRenderNodes(element, elementStyle, computedValue); renderBox.addChilds(renderNodes); renderBox.setRawValue(rawValue); this.context = new DefaultLayoutModelBuilderContext(this.context, renderBox); this.context.setEmpty( renderNodes.length == 0 && isEmptyElement(element, resolverStyleSheet, metaData)); this.context = this.context.close(); } else { final StyleSheet safeElementStyle = renderNodeFactory.createStyle(resolverStyleSheet); final RenderBox renderBox = renderNodeFactory.produceRenderBox( element, resolverStyleSheet, BandStyleKeys.LAYOUT_INLINE, stateKey); final RenderNode[] renderNodes = textProducer.getRenderNodes(element, safeElementStyle, computedValue); renderBox.addChilds(renderNodes); renderBox.setRawValue(rawValue); this.context = new DefaultLayoutModelBuilderContext(this.context, renderBox); this.context.setEmpty( renderNodes.length == 0 && isEmptyElement(element, resolverStyleSheet, metaData)); this.context = this.context.close(); } }
protected void processReplacedContent( final ReportElement element, final Object value, final Object rawValue) { final RenderBox box = this.context.getRenderBox(); final SimpleStyleSheet resolverStyleSheet = element.getComputedStyle(); final StyleSheet elementStyle; if (box.isAcceptInlineBoxes() == false) { if (isTableContext(box) == false && resolverStyleSheet.getBooleanStyleProperty(ElementStyleKeys.DYNAMIC_HEIGHT) == false) { elementStyle = new NonDynamicReplacedContentStyleSheet(resolverStyleSheet); } else { elementStyle = new DynamicReplacedContentStyleSheet(resolverStyleSheet); } } else { elementStyle = resolverStyleSheet; } final RenderableReplacedContentBox child = renderNodeFactory.createReplacedContent(element, elementStyle, value, rawValue, stateKey); child.setName(element.getName()); this.context.addChild(child); this.context.setEmpty(false); }
public void addInherited(final SimpleStyleSheet sourceStyleSheet) { super.addInherited(sourceStyleSheet); setChangeTrackerHash(getChangeTrackerHash() * 31 + sourceStyleSheet.getChangeTrackerHash()); setModificationCount(getModificationCount() * 31 + sourceStyleSheet.getModificationCount()); }