You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2006/04/10 09:39:03 UTC
svn commit: r392901 - in /xmlgraphics/fop/trunk:
src/java/org/apache/fop/layoutmgr/inline/ src/java/org/apache/fop/util/
test/layoutengine/ test/layoutengine/standard-testcases/
Author: jeremias
Date: Mon Apr 10 00:39:01 2006
New Revision: 392901
URL: http://svn.apache.org/viewcvs?rev=392901&view=rev
Log:
List NBSP under adjustable spaces in CharUtilities.
Generate space elements in the area tree from spaces in fo:character.
Clearly mark test cases which test for NBSP.
Document failure to generate adjustable spaces from fo:character in a disabled test case.
Adjust checks to the fact the fo:character can now also generate spaces.
Enable block_white-space-collapse_2.xml again
Added:
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_1.xml
- copied, changed from r392699, xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_2.xml
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_2.xml (with props)
Removed:
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_2.xml
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/util/CharUtilities.java
xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space-collapse_1.xml
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_4.xml
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java?rev=392901&r1=392900&r2=392901&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java Mon Apr 10 00:39:01 2006
@@ -32,6 +32,7 @@
import org.apache.fop.area.Trait;
import org.apache.fop.traits.MinOptMax;
import org.apache.fop.traits.SpaceVal;
+import org.apache.fop.util.CharUtilities;
import java.util.List;
import java.util.LinkedList;
@@ -73,12 +74,17 @@
}
private org.apache.fop.area.inline.TextArea getCharacterInlineArea(Character node) {
- org.apache.fop.area.inline.TextArea ch
+ org.apache.fop.area.inline.TextArea text
= new org.apache.fop.area.inline.TextArea();
- ch.addWord(String.valueOf(node.getCharacter()), 0);
- TraitSetter.setProducerID(ch, node.getId());
- TraitSetter.addTextDecoration(ch, fobj.getTextDecoration());
- return ch;
+ char ch = node.getCharacter();
+ if (CharUtilities.isAnySpace(ch)) {
+ text.addSpace(ch, 0, CharUtilities.isAdjustableSpace(ch));
+ } else {
+ text.addWord(String.valueOf(ch), 0);
+ }
+ TraitSetter.setProducerID(text, node.getId());
+ TraitSetter.addTextDecoration(text, fobj.getTextDecoration());
+ return text;
}
/** @see org.apache.fop.layoutmgr.LayoutManager#getNextKnuthElements(LayoutContext, int) */
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/util/CharUtilities.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/util/CharUtilities.java?rev=392901&r1=392900&r2=392901&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/util/CharUtilities.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/util/CharUtilities.java Mon Apr 10 00:39:01 2006
@@ -61,6 +61,8 @@
public static final char ZERO_WIDTH_SPACE = '\u200B';
/** zero-width no-break space (= byte order mark) */
public static final char ZERO_WIDTH_NOBREAK_SPACE = '\uFEFF';
+ /** soft hyphen */
+ public static final char SOFT_HYPHEN = '\u00AD';
/**
@@ -142,7 +144,7 @@
//TODO: are there other kinds of adjustable spaces?
return
(c == '\u0020' // normal space
- /*|| c == ''*/);
+ || c == NBSPACE); // no-break space
}
/**
Modified: xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml?rev=392901&r1=392900&r2=392901&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml Mon Apr 10 00:39:01 2006
@@ -57,11 +57,10 @@
stacking constraints which it shouldn't.</description>
</testcase>
<testcase>
- <name>block white-space-collapse 2</name>
- <file>block_white-space-collapse_2.xml</file>
- <description>First line-break occurs after the fifth space following the
- word 'each'. Trailing spaces not removed in layout. Note: the test passes
- in case of text-align="justify".</description>
+ <name>block white-space nbsp 2</name>
+ <file>block_white-space_nbsp_2.xml</file>
+ <description>The nbsp given as an fo:character is not adjustable and therefore
+ the justification does not work in this case.</description>
</testcase>
<testcase>
<name>block word-spacing</name>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space-collapse_1.xml
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space-collapse_1.xml?rev=392901&r1=392900&r2=392901&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space-collapse_1.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space-collapse_1.xml Mon Apr 10 00:39:01 2006
@@ -103,8 +103,7 @@
<eval expected="6" xpath="count(//flow/block[1]/lineArea[1]/text[1]/space)"/>
<eval expected="2" xpath="count(//flow/block[1]/lineArea[1]/text[2]/word)"/>
<eval expected="1" xpath="count(//flow/block[1]/lineArea[1]/text[2]/space)"/>
- <eval expected="1" xpath="count(//flow/block[1]/lineArea[1]/text[3]/word)"/>
- <eval expected=" " xpath="//flow/block[1]/lineArea[1]/text[3]/word"/>
+ <eval expected="1" xpath="count(//flow/block[1]/lineArea[1]/text[3]/space)"/>
<eval expected="1" xpath="count(//flow/block[1]/lineArea[1]/text[4]/word)"/>
<eval expected="3" xpath="count(//flow/block[2]/block[1]/lineArea[1]/text/word)"/>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_4.xml
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_4.xml?rev=392901&r1=392900&r2=392901&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_4.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_4.xml Mon Apr 10 00:39:01 2006
@@ -88,7 +88,7 @@
<box w="6672"/>
- <skip>11</skip>
+ <skip>12</skip>
</element-list>
<eval expected="62040" xpath="//block[@prod-id='l-sp']/lineArea/text/@ipd"/>
<eval expected="word" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[1])"/>
@@ -125,7 +125,7 @@
<box w="6672"/>
- <skip>15</skip>
+ <skip>16</skip>
</element-list>
<eval expected="60168" xpath="//block[@prod-id='l-thin-space']/lineArea/text/@ipd"/>
<eval expected="word" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[1])"/>
@@ -162,7 +162,7 @@
<box w="6672"/>
- <skip>15</skip>
+ <skip>16</skip>
</element-list>
<eval expected="57768" xpath="//block[@prod-id='l-hair-space']/lineArea/text/@ipd"/>
<true xpath="//block[@prod-id='l-hair-space']/lineArea/text/*[2]/@adj = 'false'"/>
@@ -192,7 +192,7 @@
<box w="6672"/>
- <skip>19</skip>
+ <skip>20</skip>
</element-list>
<eval expected="55368" xpath="//block[@prod-id='l-zwsp']/lineArea/text/@ipd"/>
<true xpath="//block[@prod-id='l-zwsp']/lineArea/text/*[2]/@adj = 'false'"/>
@@ -207,7 +207,7 @@
<box w="26016"/>
- <skip>11</skip>
+ <skip>12</skip>
</element-list>
<eval expected="55368" xpath="//block[@prod-id='l-nosp']/lineArea/text/@ipd"/>
@@ -246,7 +246,7 @@
<box w="6672"/>
- <skip>23</skip>
+ <skip>24</skip>
</element-list>
<eval expected="60168" xpath="//block[@prod-id='c-thin-space']/lineArea/text/@ipd"/>
<eval expected="word" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[1])"/>
@@ -277,7 +277,7 @@
<box w="6672"/>
- <skip>5</skip>
+ <skip>6</skip>
</element-list>
<eval expected="190804" xpath="//block[@prod-id='j-sp']/lineArea/text/@ipd"/>
<eval expected="42921" xpath="//block[@prod-id='j-sp']/lineArea/text/@twsadjust"/>
@@ -300,7 +300,7 @@
<box w="6672"/>
- <skip>7</skip>
+ <skip>8</skip>
</element-list>
<eval expected="104277" xpath="//block[@prod-id='j-thin-space']/lineArea/text/@ipd"/>
<eval expected="44109" xpath="//block[@prod-id='j-thin-space']/lineArea/text/@twsadjust"/>
@@ -325,7 +325,7 @@
<box w="6672"/>
- <skip>9</skip>
+ <skip>10</skip>
</element-list>
<eval expected="84280" xpath="//block[@prod-id='j-zwsp']/lineArea/text/@ipd"/>
<eval expected="28912" xpath="//block[@prod-id='j-zwsp']/lineArea/text/@twsadjust"/>
@@ -350,7 +350,7 @@
<box w="6672"/>
- <skip>5</skip>
+ <skip>6</skip>
</element-list>
<eval expected="182404" xpath="//block[@prod-id='lsj-sp']/lineArea/text/@ipd"/>
<eval expected="32121" xpath="//block[@prod-id='lsj-sp']/lineArea/text/@twsadjust"/>
@@ -374,7 +374,7 @@
<box w="6672"/>
- <skip>7</skip>
+ <skip>8</skip>
</element-list>
<eval expected="104777" xpath="//block[@prod-id='lsj-thin-space']/lineArea/text/@ipd"/>
<eval expected="28609" xpath="//block[@prod-id='lsj-thin-space']/lineArea/text/@twsadjust"/>
@@ -400,7 +400,7 @@
<box w="6672"/>
- <skip>9</skip>
+ <skip>10</skip>
</element-list>
<eval expected="85480" xpath="//block[@prod-id='lsj-zwsp']/lineArea/text/@ipd"/>
<eval expected="14112" xpath="//block[@prod-id='lsj-zwsp']/lineArea/text/@twsadjust"/>
Copied: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_1.xml (from r392699, xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_2.xml)
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_1.xml?p2=xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_1.xml&p1=xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_2.xml&r1=392699&r2=392901&rev=392901&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_2.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_1.xml Mon Apr 10 00:39:01 2006
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2005 The Apache Software Foundation
+ Copyright 2005-2006 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
<testcase>
<info>
<p>
- This test checks non breaking white space.
+ This test checks non breaking white space (nbsp).
</p>
</info>
<fo>
@@ -30,9 +30,10 @@
</fo:layout-master-set>
<fo:page-sequence master-reference="normal" white-space-collapse="true">
<fo:flow flow-name="xsl-region-body">
- <fo:block background-color="silver"> single nbsp around </fo:block>
- <fo:block background-color="red"> </fo:block>
- <fo:block background-color="silver">  after  empty  line  </fo:block>
+ <fo:block background-color="silver" id="single"> single nbsp around </fo:block>
+ <fo:block background-color="red" id="only"> </fo:block>
+ <fo:block background-color="silver" id="double">  after  empty  line  </fo:block>
+ <fo:block background-color="silver" id="single-justify" text-align="justify" text-align-last="justify" space-before="5pt"> single nbsp around </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
@@ -44,5 +45,61 @@
<eval expected="1" xpath="count(//flow/block[2]/lineArea/text/space)"/>
<eval expected="11100" xpath="//flow/block[3]/lineArea/@bpd"/>
<eval expected="8" xpath="count(//flow/block[3]/lineArea/text/space)"/>
+ <eval expected="11100" xpath="//flow/block[4]/lineArea/@bpd"/>
+ <eval expected="3" xpath="count(//flow/block[4]/lineArea/text/space)"/> <!-- trailing nbsp is removed by LineLM -->
+
+ <!-- nbsp must be adjustable -->
+ <true xpath="not(//flow/block[4]/lineArea/text/space[1]/@adj = 'false')"/>
+
+ <element-list category="line" id="single">
+ <box w="3336"/>
+ <box/>
+ <box w="3336"/>
+ <box/>
+ <box w="3336"/>
+ <box/>
+ <box w="3336"/>
+ <skip>3</skip>
+ </element-list>
+
+ <element-list category="line" id="only">
+ <box w="3336"/>
+ <skip>3</skip>
+ </element-list>
+
+ <element-list category="line" id="double">
+ <box w="3336"/>
+ <box w="3336"/>
+ <box/>
+ <box w="3336"/>
+ <box w="3336"/>
+ <box/>
+ <box w="3336"/>
+ <box w="3336"/>
+ <box/>
+ <box w="3336"/>
+ <box w="3336"/>
+ <skip>3</skip>
+ </element-list>
+
+ <element-list category="line" id="single-justify">
+ <box w="0"/>
+ <penalty p="INF"/>
+ <glue w="3336" y="1668" z="1112"/>
+ <box/>
+ <box w="0"/>
+ <penalty p="INF"/>
+ <glue w="3336" y="1668" z="1112"/>
+ <box/>
+ <box w="0"/>
+ <penalty p="INF"/>
+ <glue w="3336" y="1668" z="1112"/>
+ <box/>
+ <box w="0"/>
+ <penalty p="INF"/>
+ <glue w="3336" y="1668" z="1112"/>
+ <skip>3</skip>
+ </element-list>
+
</checks>
</testcase>
Added: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_2.xml
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_2.xml?rev=392901&view=auto
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_2.xml (added)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_2.xml Mon Apr 10 00:39:01 2006
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2006 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- $Id$ -->
+<testcase>
+ <info>
+ <p>
+ This test checks non breaking white space (nbsp) specified as fo:character.
+ This is to check if a nbsb as fo:character is processed the same way as a normal nbsb.
+ </p>
+ </info>
+ <fo>
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="normal" white-space-collapse="true">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block background-color="silver"> single<fo:character character=" "/>nbsp around </fo:block>
+
+ <fo:block background-color="silver" text-align="justify" text-align-last="justify" space-before="5pt"> single nbsp around </fo:block>
+ <fo:block background-color="silver" text-align="justify" text-align-last="justify"> single<fo:character character=" "/>nbsp around </fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+ <eval expected="11100" xpath="//flow/block[1]/lineArea/@bpd"/>
+ <eval expected="4" xpath="count(//flow/block[1]/lineArea/text/space)"/>
+ <!-- //flow/block[2] is only for reference -->
+ <eval expected="11100" xpath="//flow/block[3]/lineArea/@bpd"/>
+ <eval expected="3" xpath="count(//flow/block[3]/lineArea/text/space)"/> <!-- last nbsp is removed by LineLM -->
+
+ <!-- twsadjust must be the same for block 2 and 3 as they are supposed to be equivalent -->
+ <true xpath="//flow/block[2]/lineArea/text[1]/@twsadjust = //flow/block[3]/lineArea/text[1]/@twsadjust"/>
+ </checks>
+</testcase>
Propchange: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_2.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_white-space_nbsp_2.xml
------------------------------------------------------------------------------
svn:keywords = Id
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org