gmazza      2004/05/23 10:00:00

  Modified:    src/java/org/apache/fop/fo FObj.java PropertyManager.java
               src/java/org/apache/fop/fo/pagination RegionBody.java
               src/java/org/apache/fop/fo/properties PropertyMaker.java
               src/java/org/apache/fop/render/rtf
                        TableAttributesConverter.java
  Log:
  Reverted part of yesterday's work to make FObj simpler, added more commenting in 
FObj.
  
  Revision  Changes    Path
  1.40      +52 -106   xml-fop/src/java/org/apache/fop/fo/FObj.java
  
  Index: FObj.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- FObj.java 22 May 2004 21:44:37 -0000      1.39
  +++ FObj.java 23 May 2004 17:00:00 -0000      1.40
  @@ -37,36 +37,25 @@
    */
   public class FObj extends FONode implements Constants {
       private static final String FO_URI = "http://www.w3.org/1999/XSL/Format";;
  +
       public static PropertyMaker[] propertyListTable = null;
       
  -    /**
  -     * Formatting properties for this fo element.
  -     */
  +    /** Formatting properties for this fo element. */
       protected PropertyList propertyList;
   
  -    /**
  -     * Property manager for handling some common properties.
  -     */
  +    /** Property manager for providing refined properties/traits. */
       protected PropertyManager propMgr;
   
  -    /**
  -     * Id of this fo element of null if no id.
  -     */
  +    /** Id of this fo element of null if no id. */
       protected String id = null;
   
  -    /**
  -     * The children of this node.
  -     */
  +    /** The children of this node. */
       public ArrayList children = null;
   
  -    /**
  -     * Markers added to this element.
  -     */
  +    /** Markers added to this element. */
       protected Map markers = null;
   
  -    /**
  -     * Dynamic layout dimension. Used to resolve relative lengths.
  -     */
  +    /** Dynamic layout dimension. Used to resolve relative lengths. */
       protected Map layoutDimension = null;
   
       /** Marks input file containing this object **/
  @@ -102,15 +91,30 @@
        */
       public void processNode(String elementName, Locator locator, 
                               Attributes attlist) throws FOPException {
  -        name = "fo:" + elementName;
  +        setName(elementName);
  +        setLocation(locator);
  +        addProperties(attlist);
  +    }
   
  +    /**
  +     * Set the name of this element.
  +     * The prepends "fo:" to the name to indicate it is in the fo namespace.
  +     * @param str the xml element name
  +     */
  +    public void setName(String str) {
  +        name = "fo:" + str;
  +    }
  +
  +    /**
  +     * Set the location information for this element
  +     * @param locator the org.xml.sax.Locator object
  +     */
  +    public void setLocation(Locator locator) {
           if (locator != null) {
               line = locator.getLineNumber();
               column = locator.getColumnNumber();
               systemId = locator.getSystemId();
           }
  -
  -        addProperties(attlist);
       }
   
       /**
  @@ -119,34 +123,44 @@
        */
       protected void addProperties(Attributes attlist) throws FOPException {
           FObj parentFO = findNearestAncestorFObj();
  -        PropertyList parentPropertyList = null;
  +        PropertyList parentPL = null;
  +
           if (parentFO != null) {
  -            parentPropertyList = parentFO.getPropertiesForNamespace(FO_URI);
  +            parentPL = parentFO.getPropertiesForNamespace(FO_URI);
           }
   
  -        propertyList = new PropertyList(this, parentPropertyList, FO_URI,
  -            name);
  +        propertyList = new PropertyList(this, parentPL, FO_URI, name);
           propertyList.addAttributesToList(attlist);
  -        this.propMgr = makePropertyManager(propertyList);
  +        propMgr = new PropertyManager(propertyList);
           setWritingMode();
       }
   
       /**
  -     * Set the name of this element.
  -     * The prepends "fo:" to the name to indicate it is in the fo namespace.
  -     *
  -     * @param str the xml element name
  +     * Return the PropertyManager object for this FO.  PropertyManager
  +     * tends to hold the traits for this FO, and is primarily used in layout.
  +     * @return the property manager for this FO
        */
  -    public void setName(String str) {
  -        name = "fo:" + str;
  +    public PropertyManager getPropertyManager() {
  +        return propMgr;
       }
   
  -    public void setLocation(Locator locator) {
  -        if (locator != null) {
  -            line = locator.getLineNumber();
  -            column = locator.getColumnNumber();
  -            systemId = locator.getSystemId();
  -        }
  +    /**
  +     * Return the property list object for this FO.  PropertyList tends
  +     * to hold the base, pre-trait properties for this FO, either explicitly
  +     * declared in the input XML or from inherited values.
  +     */
  +    public PropertyList getPropertyList() {
  +        return propertyList;
  +    }
  +
  +    /**
  +     * Helper method to quickly obtain the value of a property
  +     * for this FO, without querying for the propertyList first.
  +     * @param name - the name of the desired property to obtain
  +     * @return the property
  +     */
  +    public Property getProperty(int propId) {
  +        return propertyList.get(propId);
       }
   
      /**
  @@ -216,15 +230,6 @@
           return this.propertyList;
       }
   
  -    /**
  -     * @param propertyList the collection of Property objects to be managed
  -     * @return a PropertyManager for the Property objects
  -     */
  -    protected PropertyManager makePropertyManager(
  -            PropertyList propertyList) {
  -        return new PropertyManager(propertyList);
  -    }
  -
       /* This section is the implemenation of the property context. */
   
       /**
  @@ -286,57 +291,6 @@
       }
   
       /**
  -     * lets outside sources access the property list
  -     * first used by PageNumberCitation to find the "id" property
  -     * @param name - the name of the desired property to obtain
  -     * @return the property
  -     */
  -    public Property getProperty(int propId) {
  -        return propertyList.get(propId);
  -    }
  -
  -    /**
  -     * Return the "nearest" specified value for the given property.
  -     * Implements the from-nearest-specified-value function.
  -     * @param propertyName The name of the property whose value is desired.
  -     * @return The computed value if the property is explicitly set on some
  -     * ancestor of the current FO, else the initial value.
  -     */
  -    public Property getNearestSpecifiedProperty(int propId) {
  -        return propertyList.getNearestSpecified(propId);
  -    }
  -
  -    /**
  -     * Return the value explicitly specified on this FO.
  -     * @param propertyName The name of the property whose value is desired.
  -     * It may be a compound name, such as space-before.optimum.
  -     * @return The value if the property is explicitly set, otherwise null.
  -     */
  -    public Property getExplicitProperty(int propId) {
  -        return propertyList.getExplicit(propId);
  -    }
  -
  -    /**
  -     * Uses the stored writingMode.
  -     * @param absdir an absolute direction (top, bottom, left, right)
  -     * @return the corresponding writing model relative direction name
  -     * for the flow object.
  -     */
  -    public int getWritingMode(int lrtb, int rltb, int tbrl) {
  -        return propertyList.getWritingMode(lrtb, rltb, tbrl);
  -    }
  -        
  -        
  -    /**
  -     * Uses the stored writingMode.
  -     * @param relativeWritingMode relative direction (start, end, before, after)
  -     * @return the corresponding absolute direction name for the flow object.
  -     */
  -    public String getAbsoluteWritingMode(int relativeWritingMode) {
  -        return propertyList.getAbsoluteWritingMode(relativeWritingMode);
  -    }
  -        
  -    /**
        * Setup the id for this formatting object.
        * Most formatting objects can have an id that can be referenced.
        * This methods checks that the id isn't already used by another
  @@ -484,14 +438,6 @@
        */
       public Map getMarkers() {
           return markers;
  -    }
  -
  -    /**
  -     * lets layout managers access FO properties via PropertyManager
  -     * @return the property manager for this FO
  -     */
  -    public PropertyManager getPropertyManager() {
  -        return this.propMgr;
       }
   
       /**
  
  
  
  1.26      +7 -5      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.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- PropertyManager.java      22 Apr 2004 21:38:39 -0000      1.25
  +++ PropertyManager.java      23 May 2004 17:00:00 -0000      1.26
  @@ -19,6 +19,7 @@
   package org.apache.fop.fo;
   
   // FOP
  +import org.apache.fop.apps.FOPException;
   import org.apache.fop.fonts.Font;
   import org.apache.fop.fo.properties.Property;
   import org.apache.fop.fo.properties.CommonBorderAndPadding;
  @@ -35,6 +36,7 @@
   import org.apache.fop.traits.LayoutProps; // keep, break, span, space?
   import org.apache.fop.fonts.FontMetrics;
   import org.apache.fop.fo.properties.CommonHyphenation;
  +import org.xml.sax.Attributes;
   
   /**
    * Helper class for managing groups of properties.
  @@ -47,6 +49,7 @@
       private CommonBorderAndPadding borderAndPadding = null;
       private CommonHyphenation hyphProps = null;
       private TextInfo textInfo = null;
  +    private static final String NONE = "none";
   
       private static final int[] SA_BEFORE = new int[] {
           PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, 
PR_PADDING_BEFORE};
  @@ -57,14 +60,13 @@
       private static final int[] SA_END = new int[]{
           PR_BORDER_END_COLOR, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, 
PR_PADDING_END};
       
  -    private static final String NONE = "none";
  -
       /**
        * Main constructor
  -     * @param pList property list
  +     * @param propList list of properties for the FO, initialized
  +     * from the attributes in the input source document
        */
  -    public PropertyManager(PropertyList pList) {
  -        this.propertyList = pList;
  +    public PropertyManager(PropertyList propList) {
  +        propertyList = propList;
       }
   
       /**
  
  
  
  1.20      +1 -1      xml-fop/src/java/org/apache/fop/fo/pagination/RegionBody.java
  
  Index: RegionBody.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RegionBody.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- RegionBody.java   22 May 2004 21:44:37 -0000      1.19
  +++ RegionBody.java   23 May 2004 17:00:00 -0000      1.20
  @@ -79,7 +79,7 @@
       private int getRelMargin(int reldir, int relPropId) {
           FObj parent = (FObj) getParent();
           String sPropName = "margin-"
  -                + parent.getAbsoluteWritingMode(reldir);
  +                + parent.getPropertyList().getAbsoluteWritingMode(reldir);
           int propId = FOPropertyMapping.getPropertyId(sPropName);
           Property prop = propertyList.getExplicitOrShorthand(propId);
           if (prop == null) {
  
  
  
  1.4       +3 -3      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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PropertyMaker.java        27 Feb 2004 17:45:45 -0000      1.3
  +++ PropertyMaker.java        23 May 2004 17:00:00 -0000      1.4
  @@ -372,7 +372,7 @@
        * @return The initialized Property object.
        * @throws FOPException for invalid or inconsistent FO input
        */
  -    public Property make(PropertyList propertyList, String value,
  +     public Property make(PropertyList propertyList, String value,
                            FObj fo) throws FOPException {
           try {
               Property newProp = null;
  @@ -383,7 +383,7 @@
                   newProp = checkEnumValues(value);
               }
               if (newProp == null) {
  -                /* Check for keyword shorthand values to be substituted. */
  +                // Check for keyword shorthand values to be substituted. 
                   pvalue = checkValueKeywords(value);
                   // Override parsePropertyValue in each subclass of Property.Maker
                   Property p = PropertyParser.parse(pvalue,
  
  
  
  1.15      +13 -8     
xml-fop/src/java/org/apache/fop/render/rtf/TableAttributesConverter.java
  
  Index: TableAttributesConverter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/TableAttributesConverter.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- TableAttributesConverter.java     22 May 2004 21:44:38 -0000      1.14
  +++ TableAttributesConverter.java     23 May 2004 17:00:00 -0000      1.15
  @@ -34,6 +34,7 @@
   import org.apache.fop.fo.properties.Property;
   import org.apache.fop.fo.Constants;
   import org.apache.fop.fo.FObj;
  +import org.apache.fop.fo.PropertyList;
   import org.apache.fop.datatypes.ColorType;
   
   import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfAttributes;
  @@ -115,7 +116,9 @@
           Property p;
           EnumProperty ep;
           RtfColorTable colorTable = RtfColorTable.getInstance();
  -
  +        PropertyList propList = fobj.getPropertyList();
  +        
  +        
           RtfAttributes attrib = null;
   
           attrib = new RtfAttributes();
  @@ -123,7 +126,8 @@
           boolean isBorderPresent = false;
   
           // Cell background color
  -        if ((p = fobj.getNearestSpecifiedProperty(Constants.PR_BACKGROUND_COLOR)) 
!= null) {
  +        if ((p = propList.getNearestSpecified(
  +                Constants.PR_BACKGROUND_COLOR)) != null) {
               ColorType color = p.getColorType();
               if (color != null) {
                   if (color.getAlpha() != 0
  @@ -141,7 +145,7 @@
           }
   
           // Cell borders :
  -        if ((p = fobj.getExplicitProperty(Constants.PR_BORDER_COLOR)) != null) {
  +        if ((p = propList.getExplicit(Constants.PR_BORDER_COLOR)) != null) {
               ListProperty listprop = (ListProperty) p;
               ColorType color = null;
               if (listprop.getList().get(0) instanceof NCnameProperty) {
  @@ -155,28 +159,29 @@
                   colorTable.getColorNumber((int)color.getRed(), 
(int)color.getGreen(),
                           (int)color.getBlue()).intValue());
           }
  -        if ((p = fobj.getExplicitProperty(Constants.PR_BORDER_TOP_COLOR)) != null) {
  +        if ((p = propList.getExplicit(
  +                Constants.PR_BORDER_TOP_COLOR)) != null) {
               ColorType color = p.getColorType();
               attrib.set(
                   BorderAttributesConverter.BORDER_COLOR,
                   colorTable.getColorNumber((int)color.getRed(), 
(int)color.getGreen(),
                           (int)color.getBlue()).intValue());
           }
  -        if ((p = fobj.getExplicitProperty(Constants.PR_BORDER_BOTTOM_COLOR)) != 
null) {
  +        if ((p = propList.getExplicit(Constants.PR_BORDER_BOTTOM_COLOR)) != null) {
               ColorType color = p.getColorType();
               attrib.set(
                   BorderAttributesConverter.BORDER_COLOR,
                   colorTable.getColorNumber((int)color.getRed(), 
(int)color.getGreen(),
                           (int)color.getBlue()).intValue());
           }
  -        if ((p = fobj.getExplicitProperty(Constants.PR_BORDER_LEFT_COLOR)) != null) 
{
  +        if ((p = propList.getExplicit(Constants.PR_BORDER_LEFT_COLOR)) != null) {
               ColorType color = p.getColorType();
               attrib.set(
                   BorderAttributesConverter.BORDER_COLOR,
                   colorTable.getColorNumber((int)color.getRed(), 
(int)color.getGreen(),
                           (int)color.getBlue()).intValue());
           }
  -        if ((p = fobj.getExplicitProperty(Constants.PR_BORDER_RIGHT_COLOR)) != 
null) {
  +        if ((p = propList.getExplicit(Constants.PR_BORDER_RIGHT_COLOR)) != null) {
               ColorType color = p.getColorType();
               attrib.set(
                   BorderAttributesConverter.BORDER_COLOR,
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to