gmazza 2004/09/06 14:13:51 Modified: src/java/org/apache/fop/fo FOPropertyMapping.java src/java/org/apache/fop/fo/properties PropertyMaker.java Added: src/java/org/apache/fop/fo/properties BoxPropShorthandParser.java GenericShorthandParser.java ShorthandParser.java Removed: src/java/org/apache/fop/fo BoxPropShorthandParser.java GenericShorthandParser.java ShorthandParser.java Log: Moved the property shorthand parser code into the properties package. Revision Changes Path 1.15 +4 -1 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.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- FOPropertyMapping.java 15 Aug 2004 09:57:07 -0000 1.14 +++ FOPropertyMapping.java 6 Sep 2004 21:13:50 -0000 1.15 @@ -23,12 +23,14 @@ import org.apache.fop.datatypes.LengthBase; import org.apache.fop.fo.properties.BorderWidthPropertyMaker; +import org.apache.fop.fo.properties.BoxPropShorthandParser; import org.apache.fop.fo.properties.CharacterProperty; import org.apache.fop.fo.properties.ColorTypeProperty; import org.apache.fop.fo.properties.CondLengthProperty; import org.apache.fop.fo.properties.CorrespondingPropertyMaker; import org.apache.fop.fo.properties.DimensionPropertyMaker; import org.apache.fop.fo.properties.EnumProperty; +import org.apache.fop.fo.properties.GenericShorthandParser; import org.apache.fop.fo.properties.IndentPropertyMaker; import org.apache.fop.fo.properties.KeepProperty; import org.apache.fop.fo.properties.LengthPairProperty; @@ -39,6 +41,7 @@ import org.apache.fop.fo.properties.NumberProperty; import org.apache.fop.fo.properties.Property; import org.apache.fop.fo.properties.PropertyMaker; +import org.apache.fop.fo.properties.ShorthandParser; import org.apache.fop.fo.properties.SpaceProperty; import org.apache.fop.fo.properties.SpacingPropertyMaker; import org.apache.fop.fo.properties.StringProperty; 1.6 +1 -2 xml-fop/src/java/org/apache/fop/fo/properties/PropertyMaker.java Index: PropertyMaker.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/properties/PropertyMaker.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- PropertyMaker.java 18 Jun 2004 17:58:35 -0000 1.5 +++ PropertyMaker.java 6 Sep 2004 21:13:51 -0000 1.6 @@ -28,7 +28,6 @@ import org.apache.fop.fo.FOPropertyMapping; import org.apache.fop.fo.FObj; import org.apache.fop.fo.PropertyList; -import org.apache.fop.fo.ShorthandParser; import org.apache.fop.fo.expr.PropertyInfo; import org.apache.fop.fo.expr.PropertyParser; 1.1 xml-fop/src/java/org/apache/fop/fo/properties/BoxPropShorthandParser.java Index: BoxPropShorthandParser.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: BoxPropShorthandParser.java,v 1.1 2004/09/06 21:13:51 gmazza Exp $ */ package org.apache.fop.fo.properties; import org.apache.fop.fo.FOPropertyMapping; import org.apache.fop.fo.PropertyList; /** * Shorthand property parser for Box properties */ public class BoxPropShorthandParser extends GenericShorthandParser { /** * @see org.apache.fop.fo.GenericShorthandParser#GenericShorthandParser() */ public BoxPropShorthandParser() { } /** * Stores 1 to 4 values of same type. * Set the given property based on the number of values set. * Example: padding, border-width, border-color, border-style, margin * @see org.apache.fop.fo.GenericShorthandParser#convertValueForProperty( * int, ListProperty, PropertyMaker, PropertyList) */ protected Property convertValueForProperty(int propId, ListProperty listProperty, PropertyMaker maker, PropertyList propertyList) { String name = FOPropertyMapping.getPropertyName(propId); Property p = null; int count = listProperty.getList().size(); if (name.indexOf("-top") >= 0) { p = getElement(listProperty, 0); } else if (name.indexOf("-right") >= 0) { p = getElement(listProperty, count > 1 ? 1 : 0); } else if (name.indexOf("-bottom") >= 0) { p = getElement(listProperty, count > 2 ? 2 : 0); } else if (name.indexOf("-left") >= 0) { p = getElement(listProperty, count > 3 ? 3 : (count > 1 ? 1 : 0)); } // if p not null, try to convert it to a value of the correct type if (p != null) { return maker.convertShorthandProperty(propertyList, p, null); } return p; } } 1.1 xml-fop/src/java/org/apache/fop/fo/properties/GenericShorthandParser.java Index: GenericShorthandParser.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: GenericShorthandParser.java,v 1.1 2004/09/06 21:13:51 gmazza Exp $ */ package org.apache.fop.fo.properties; import java.util.Enumeration; import org.apache.fop.fo.PropertyList; public class GenericShorthandParser implements ShorthandParser { /** * Constructor. */ public GenericShorthandParser() { } /** * @param index the index into the List of properties * @return the property from the List of properties at the index parameter */ protected Property getElement(ListProperty list, int index) { if (list.getList().size() > index) { return (Property) list.getList().elementAt(index); } else { return null; } } // Stores 1 to 3 values for border width, style, color // Used for: border, border-top, border-right etc public Property getValueForProperty(int propId, ListProperty listProperty, PropertyMaker maker, PropertyList propertyList) { Property prop = null; // Check for keyword "inherit" if (listProperty.getList().size() == 1) { String sval = getElement(listProperty, 0).getString(); if (sval != null && sval.equals("inherit")) { return propertyList.getFromParent(propId); } } return convertValueForProperty(propId, listProperty, maker, propertyList); } /** * Converts a property name into a Property * @param propId the property ID in the Constants interface * @param maker the Property.Maker to be used in the conversion * @param propertyList the PropertyList from which the Property should be * extracted * @return the Property matching the parameters, or null if not found */ protected Property convertValueForProperty(int propId, ListProperty listProperty, PropertyMaker maker, PropertyList propertyList) { Property prop = null; // Try each of the stored values in turn Enumeration eprop = listProperty.getList().elements(); while (eprop.hasMoreElements() && prop == null) { Property p = (Property) eprop.nextElement(); prop = maker.convertShorthandProperty(propertyList, p, null); } return prop; } } 1.1 xml-fop/src/java/org/apache/fop/fo/properties/ShorthandParser.java Index: ShorthandParser.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: ShorthandParser.java,v 1.1 2004/09/06 21:13:51 gmazza Exp $ */ package org.apache.fop.fo.properties; import org.apache.fop.fo.PropertyList; /** * Interface used to provide parsing capabilities to Properties with shorthand * characteristics (those with multiple components). */ public interface ShorthandParser { /** * @param propId the property ID in the Constants interface * @param maker Maker object for the Property * @param propertyList list of properties * @return Property object corresponding to propName */ Property getValueForProperty(int propId, ListProperty listProperty, PropertyMaker maker, PropertyList propertyList); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]