From 759fea746b8b3bf81bfd9e58c6fabf49480fbdc3 Mon Sep 17 00:00:00 2001 From: Jeremias Maerki Date: Thu, 6 Jan 2005 08:37:52 +0000 Subject: [PATCH] Improved area tree XML generation by filtering uninformative attributes while adding others. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198228 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/fop/render/xml/XMLRenderer.java | 75 +++++++++---------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/src/java/org/apache/fop/render/xml/XMLRenderer.java b/src/java/org/apache/fop/render/xml/XMLRenderer.java index 1c214715e..178fefb6d 100644 --- a/src/java/org/apache/fop/render/xml/XMLRenderer.java +++ b/src/java/org/apache/fop/render/xml/XMLRenderer.java @@ -244,8 +244,32 @@ public class XMLRenderer extends AbstractRenderer { protected void addAreaAttributes(Area area) { addAttribute("ipd", area.getIPD()); addAttribute("bpd", area.getBPD()); + addAttribute("bap", area.getBorderAndPaddingWidthStart() + " " + + area.getBorderAndPaddingWidthEnd() + " " + + area.getBorderAndPaddingWidthBefore() + " " + + area.getBorderAndPaddingWidthAfter()); } + /** + * Adds attributes from traits of an Area. + * @param area Area to extract traits from + */ + protected void addTraitAttributes(Area area) { + Map traitMap = area.getTraits(); + if (traitMap != null) { + Iterator iter = traitMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry traitEntry = (Map.Entry) iter.next(); + String name = Trait.getTraitName(traitEntry.getKey()); + if ("break-before".equals(name) || "break-after".equals(name)) { + continue; + } + String value = traitEntry.getValue().toString(); + addAttribute(name, value); + } + } + } + private String createString(Rectangle2D rect) { return "" + (int) rect.getX() + " " + (int) rect.getY() + " " + (int) rect.getWidth() + " " + (int) rect.getHeight(); @@ -372,7 +396,7 @@ public class XMLRenderer extends AbstractRenderer { * @see org.apache.fop.render.AbstractRenderer#renderBeforeFloat(BeforeFloat) */ protected void renderBeforeFloat(BeforeFloat bf) { - startElement(""); + startElement("beforeFloat"); super.renderBeforeFloat(bf); endElement("beforeFloat"); } @@ -426,10 +450,7 @@ public class XMLRenderer extends AbstractRenderer { protected void renderBlock(Block block) { atts.clear(); addAreaAttributes(block); - Map map = block.getTraits(); - if (map != null) { - addAttribute("props", getPropString(map)); - } + addTraitAttributes(block); startElement("block", atts); super.renderBlock(block); endElement("block"); @@ -441,10 +462,7 @@ public class XMLRenderer extends AbstractRenderer { protected void renderLineArea(LineArea line) { atts.clear(); addAreaAttributes(line); - Map map = line.getTraits(); - if (map != null) { - addAttribute("props", getPropString(map)); - } + addTraitAttributes(line); startElement("lineArea", atts); super.renderLineArea(line); endElement("lineArea"); @@ -500,10 +518,7 @@ public class XMLRenderer extends AbstractRenderer { */ protected void renderCharacter(org.apache.fop.area.inline.Character ch) { atts.clear(); - Map map = ch.getTraits(); - if (map != null) { - addAttribute("props", getPropString(map)); - } + addTraitAttributes(ch); startElement("char", atts); characters(ch.getChar()); endElement("char"); @@ -524,12 +539,13 @@ public class XMLRenderer extends AbstractRenderer { */ protected void renderText(TextArea text) { atts.clear(); - addAttribute("twsadjust", text.getTextWordSpaceAdjust()); - addAttribute("tlsadjust", text.getTextLetterSpaceAdjust()); - Map map = text.getTraits(); - if (map != null) { - addAttribute("props", getPropString(map)); + if (text.getTextWordSpaceAdjust() != 0) { + addAttribute("twsadjust", text.getTextWordSpaceAdjust()); } + if (text.getTextLetterSpaceAdjust() != 0) { + addAttribute("tlsadjust", text.getTextLetterSpaceAdjust()); + } + addTraitAttributes(text); startElement("text", atts); characters(text.getTextArea()); endElement("text"); @@ -541,10 +557,7 @@ public class XMLRenderer extends AbstractRenderer { */ protected void renderInlineParent(InlineParent ip) { atts.clear(); - Map map = ip.getTraits(); - if (map != null) { - addAttribute("props", getPropString(map)); - } + addTraitAttributes(ip); startElement("inlineparent", atts); super.renderInlineParent(ip); endElement("inlineparent"); @@ -585,24 +598,6 @@ public class XMLRenderer extends AbstractRenderer { super.renderLeader(area); } - /** - * Builds a String with attributes from the trait map. - * @param traitMap the trait map - * @return String the generated attributes - */ - protected String getPropString(Map traitMap) { - StringBuffer strbuf = new StringBuffer(); - Iterator iter = traitMap.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry traitEntry = (Map.Entry) iter.next(); - strbuf.append(Trait.getTraitName(traitEntry.getKey())); - strbuf.append(':'); - strbuf.append(traitEntry.getValue().toString()); - strbuf.append(';'); - } - return strbuf.toString(); - } - /** @see org.apache.fop.render.AbstractRenderer */ public String getMimeType() { return XML_MIME_TYPE; -- 2.39.5