git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@381618 13f79535-47bb-0310-9956-ffa450edef68tags/fop-0_92-beta
@@ -1688,31 +1688,45 @@ public class FOPropertyMapping implements Constants { | |||
// 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 |
@@ -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> |