bckfnn 2004/08/13 02:05:15 Modified: src/java/org/apache/fop/fo/properties CompoundPropertyMaker.java src/java/org/apache/fop/fo FOPropertyMapping.java PropertyManager.java Added: src/java/org/apache/fop/fo/properties SpacingPropertyMaker.java Log: Support for [letter|word]-spacing properties with a value of 'normal'. The value returned will be an Constants.NORMAL enum. Revision Changes Path 1.6 +12 -4 xml-fop/src/java/org/apache/fop/fo/properties/CompoundPropertyMaker.java Index: CompoundPropertyMaker.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/properties/CompoundPropertyMaker.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CompoundPropertyMaker.java 18 Jun 2004 17:58:35 -0000 1.5 +++ CompoundPropertyMaker.java 13 Aug 2004 09:05:15 -0000 1.6 @@ -122,10 +122,14 @@ * input value */ protected Property checkEnumValues(String value) { + Property result = null; if (shorthandMaker != null) { - return shorthandMaker.checkEnumValues(value); + result = shorthandMaker.checkEnumValues(value); } - return null; + if (result == null) { + result = super.checkEnumValues(value); + } + return result; } /** @@ -190,7 +194,11 @@ * @throws FOPException for invalid or inconsisten FO input */ public Property make(PropertyList propertyList) throws FOPException { - return makeCompound(propertyList, propertyList.getParentFObj()); + if (defaultValue != null) { + return make(propertyList, defaultValue, propertyList.getParentFObj()); + } else { + return makeCompound(propertyList, propertyList.getParentFObj()); + } } /** 1.1 xml-fop/src/java/org/apache/fop/fo/properties/SpacingPropertyMaker.java Index: SpacingPropertyMaker.java =================================================================== /* * Copyright 1999-2004 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: SpacingPropertyMaker.java,v 1.1 2004/08/13 09:05:15 bckfnn Exp $ */ package org.apache.fop.fo.properties; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.Constants; import org.apache.fop.fo.FObj; import org.apache.fop.fo.PropertyList; /** * A maker which creates 'letter-spacing' and 'word-spacing' properties. * These two properties properties are standard space properties with * additinal support for the 'normal' enum value. */ public class SpacingPropertyMaker extends SpaceProperty.Maker { /** * Create a maker for [letter|word]-spacing. * @param propId the id for property. */ public SpacingPropertyMaker(int propId) { super(propId); } /** * Support for the 'normal' value. */ public Property convertProperty(Property p, PropertyList propertyList, FObj fo) throws FOPException { if (p.getEnum() == Constants.NORMAL) { return p; } return super.convertProperty(p, propertyList, fo); } } 1.13 +10 -4 xml-fop/src/java/org/apache/fop/fo/FOPropertyMapping.java Index: FOPropertyMapping.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOPropertyMapping.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- FOPropertyMapping.java 27 Feb 2004 17:57:40 -0000 1.12 +++ FOPropertyMapping.java 13 Aug 2004 09:05:15 -0000 1.13 @@ -40,6 +40,7 @@ import org.apache.fop.fo.properties.Property; import org.apache.fop.fo.properties.PropertyMaker; import org.apache.fop.fo.properties.SpaceProperty; +import org.apache.fop.fo.properties.SpacingPropertyMaker; import org.apache.fop.fo.properties.StringProperty; import org.apache.fop.fo.properties.ToBeImplementedProperty; @@ -1586,9 +1587,13 @@ addPropertyMaker("character", m); // letter-spacing - m = new ToBeImplementedProperty.Maker(PR_LETTER_SPACING); + m = new SpacingPropertyMaker(PR_LETTER_SPACING); + m.useGeneric(genericSpace); m.setInherited(true); + m.getSubpropMaker(CP_PRECEDENCE).setDefault("force"); + m.getSubpropMaker(CP_CONDITIONALITY).setDefault("discard"); m.setDefault("normal"); + m.addEnum("normal", makeEnumProperty(NORMAL)); addPropertyMaker("letter-spacing", m); // suppress-at-line-break @@ -1635,12 +1640,13 @@ addPropertyMaker("treat-as-word-space", m); // word-spacing - m = new SpaceProperty.Maker(PR_WORD_SPACING); + m = new SpacingPropertyMaker(PR_WORD_SPACING); m.useGeneric(genericSpace); m.setInherited(true); m.getSubpropMaker(CP_PRECEDENCE).setDefault("force"); m.getSubpropMaker(CP_CONDITIONALITY).setDefault("discard"); - m.setDefault("0pt"); + m.setDefault("normal"); + m.addEnum("normal", makeEnumProperty(NORMAL)); addPropertyMaker("word-spacing", m); } 1.32 +7 -2 xml-fop/src/java/org/apache/fop/fo/PropertyManager.java Index: PropertyManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertyManager.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- PropertyManager.java 18 Jun 2004 11:43:25 -0000 1.31 +++ PropertyManager.java 13 Aug 2004 09:05:15 -0000 1.32 @@ -35,6 +35,7 @@ import org.apache.fop.traits.InlineProps; import org.apache.fop.traits.SpaceVal; import org.apache.fop.traits.LayoutProps; // keep, break, span, space? +import org.apache.fop.traits.MinOptMax; import org.apache.fop.fonts.FontMetrics; import org.apache.fop.fo.properties.CommonHyphenation; import org.xml.sax.Attributes; @@ -472,8 +473,12 @@ textInfo.wrapOption = propertyList.get(PR_WRAP_OPTION).getEnum(); textInfo.bWrap = (textInfo.wrapOption == Constants.WRAP); - textInfo.wordSpacing = new SpaceVal( - propertyList.get(PR_WORD_SPACING).getSpace()); + Property wordSpacing = propertyList.get(PR_WORD_SPACING); + if (wordSpacing.getEnum() == NORMAL) { + textInfo.wordSpacing = new SpaceVal(new MinOptMax(0), true, true, 0); + } else { + textInfo.wordSpacing = new SpaceVal(wordSpacing.getSpace()); + } /* textInfo.letterSpacing = new SpaceVal(propertyList.get("letter-spacing").getSpace());*/
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]