[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fop-cvs
Subject:    svn commit: r381618 - in /xmlgraphics/fop/trunk:
From:       jeremias () apache ! org
Date:       2006-02-28 10:00:52
Message-ID: 20060228100117.91309.qmail () minotaur ! apache ! org
[Download RAW message or body]

Author: jeremias
Date: Tue Feb 28 02:00:46 2006
New Revision: 381618

URL: http://svn.apache.org/viewcvs?rev=381618&view=rev
Log:
Fixed bug in handling of text-align-last. Value "relative" was not the default and \
the resolved property was wrong when it was inherited.

Added:
    xmlgraphics/fop/trunk/test/fotree/testcases/text-align.fo   (with props)
Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java?rev=381618&r1=381617&r2=381618&view=diff
 ==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java \
                (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java Tue Feb \
28 02:00:46 2006 @@ -1688,31 +1688,45 @@
 
         // text-align-last
         m  = new EnumProperty.Maker(PR_TEXT_ALIGN_LAST) {
-            public Property compute(PropertyList propertyList) throws \
                PropertyException {
-                Property corresponding = propertyList.get(PR_TEXT_ALIGN);
-                if (corresponding == null) {
-                    return null;
-                }
-                int correspondingValue = corresponding.getEnum();
-                if (correspondingValue == EN_JUSTIFY) {
-                    return getEnumProperty(EN_START, "START");
-                } else if (correspondingValue == EN_END) {
-                    return getEnumProperty(EN_END, "END");
-                } else if (correspondingValue == EN_START) {
-                    return getEnumProperty(EN_START, "START");
-                } else if (correspondingValue == EN_CENTER) {
-                    return getEnumProperty(EN_CENTER, "CENTER");
+            public Property convertProperty(Property p,
+                    PropertyList propertyList,
+                    FObj fo) throws PropertyException {
+                int en = p.getEnum();
+                if (en == EN_RELATIVE) {
+                    Property corresponding = propertyList.get(PR_TEXT_ALIGN);
+                    if (corresponding == null) {
+                        return p;
+                    }
+                    int correspondingValue = corresponding.getEnum();
+                    if (correspondingValue == EN_JUSTIFY) {
+                        return getEnumProperty(EN_START, "START");
+                    } else if (correspondingValue == EN_END) {
+                        return getEnumProperty(EN_END, "END");
+                    } else if (correspondingValue == EN_START) {
+                        return getEnumProperty(EN_START, "START");
+                    } else if (correspondingValue == EN_CENTER) {
+                        return getEnumProperty(EN_CENTER, "CENTER");
+                    } else {
+                        return p;
+                    }
                 } else {
-                    return null;
+                    return p;
                 }
             }
         };
         m.setInherited(true);
+        // Note: both 'end', 'right' and 'outside' are mapped to END
+        //       both 'start', 'left' and 'inside' are mapped to START
+        m.addEnum("relative", getEnumProperty(EN_RELATIVE, "RELATIVE"));
         m.addEnum("center", getEnumProperty(EN_CENTER, "CENTER"));
         m.addEnum("end", getEnumProperty(EN_END, "END"));
+        m.addEnum("right", getEnumProperty(EN_END, "END"));
         m.addEnum("start", getEnumProperty(EN_START, "START"));
+        m.addEnum("left", getEnumProperty(EN_START, "START"));
         m.addEnum("justify", getEnumProperty(EN_JUSTIFY, "JUSTIFY"));
-        m.setDefault("start");
+        m.addEnum("inside", getEnumProperty(EN_START, "START"));
+        m.addEnum("outside", getEnumProperty(EN_END, "END"));
+        m.setDefault("relative", true);
         addPropertyMaker("text-align-last", m);
 
         // text-indent

Added: xmlgraphics/fop/trunk/test/fotree/testcases/text-align.fo
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/fotree/testcases/text-align.fo?rev=381618&view=auto
 ==============================================================================
--- xmlgraphics/fop/trunk/test/fotree/testcases/text-align.fo (added)
+++ xmlgraphics/fop/trunk/test/fotree/testcases/text-align.fo Tue Feb 28 02:00:46 \
2006 @@ -0,0 +1,59 @@
+<?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$ -->
+<!-- This test verifies inheritance of text-align and text-align-last. -->
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" \
xmlns:test="http://xmlgraphics.apache.org/fop/test"> +  <fo:layout-master-set>
+    <fo:simple-page-master master-name="A4" page-height="29.7cm" page-width="21cm" \
margin="2cm"> +      <fo:region-body/>
+    </fo:simple-page-master>
+  </fo:layout-master-set>
+  <fo:page-sequence master-reference="A4">
+    <fo:flow flow-name="xsl-region-body">
+      <!--fo:block text-align="justify">Hello World!
+        <test:assert property="text-align" expected="JUSTIFY"/>
+        <test:assert property="text-align-last" expected="START"/>
+      </fo:block>
+      <fo:block text-align="justify" text-align-last="relative">Hello World!
+        <test:assert property="text-align" expected="JUSTIFY"/>
+        <test:assert property="text-align-last" expected="START"/>
+      </fo:block-->
+      <fo:block text-align="end">Hello World!
+        <test:assert property="text-align" expected="END"/>
+        <test:assert property="text-align-last" expected="END"/>
+      </fo:block>
+      <fo:block text-align="end" text-align-last="relative">Hello World!
+        <test:assert property="text-align" expected="END"/>
+        <test:assert property="text-align-last" expected="END"/>
+      </fo:block>
+      <fo:block text-align="end" text-align-last="start">Hello World!
+        <test:assert property="text-align" expected="END"/>
+        <test:assert property="text-align-last" expected="START"/>
+      </fo:block>
+      <fo:block text-align="justify" text-align-last="justify">Hello World!
+        <test:assert property="text-align" expected="JUSTIFY"/>
+        <test:assert property="text-align-last" expected="JUSTIFY"/>
+      </fo:block>
+      <fo:block text-align="justify" text-align-last="justify">
+        <fo:block>Hello World!
+          <test:assert property="text-align" expected="JUSTIFY"/>
+          <test:assert property="text-align-last" expected="JUSTIFY"/>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Propchange: xmlgraphics/fop/trunk/test/fotree/testcases/text-align.fo
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/fop/trunk/test/fotree/testcases/text-align.fo
------------------------------------------------------------------------------
    svn:keywords = Id



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic