jeremias    2005/02/07 08:26:13

  Modified:    src/java/org/apache/fop/fo/properties
                        LengthPairProperty.java
               src/java/org/apache/fop/fo FOPropertyMapping.java
               src/java/org/apache/fop/fo/flow Table.java
  Added:       src/java/org/apache/fop/fo/properties
                        BorderSpacingShorthandParser.java
  Log:
  Support for border-spacing shorthand.
  Accessor for border-separation on table.
  
  Revision  Changes    Path
  1.4       +35 -8     
xml-fop/src/java/org/apache/fop/fo/properties/LengthPairProperty.java
  
  Index: LengthPairProperty.java
  ===================================================================
  RCS file: 
/home/cvs/xml-fop/src/java/org/apache/fop/fo/properties/LengthPairProperty.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LengthPairProperty.java   28 Oct 2004 10:00:24 -0000      1.3
  +++ LengthPairProperty.java   7 Feb 2005 16:26:13 -0000       1.4
  @@ -1,5 +1,5 @@
   /*
  - * Copyright 1999-2004 The Apache Software Foundation.
  + * Copyright 1999-2005 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.
  @@ -36,7 +36,7 @@
       public static class Maker extends CompoundPropertyMaker {
   
           /**
  -         * @param name name of property for which this Maker should be 
created
  +         * @param propId name of property for which this Maker should be 
created
            */
           public Maker(int propId) {
               super(propId);
  @@ -54,8 +54,7 @@
            * @see CompoundPropertyMaker#convertProperty
            */        
           public Property convertProperty(Property p, PropertyList 
propertyList, FObj fo)
  -            throws PropertyException
  -        {
  +            throws PropertyException {
               if (p instanceof LengthPairProperty) {
                   return p;
               }
  @@ -64,6 +63,33 @@
       }
   
       /**
  +     * Creates a new LengthPairProperty with empty values.
  +     */
  +    public LengthPairProperty() {
  +        super();
  +    }
  +    
  +    /**
  +     * Creates a new LengthPairProperty.
  +     * @param ipd inline-progression-dimension
  +     * @param bpd block-progression-dimension
  +     */
  +    public LengthPairProperty(Property ipd, Property bpd) {
  +        this();
  +        this.ipd = ipd;
  +        this.bpd = bpd;
  +    }
  +    
  +    /**
  +     * Creates a new LengthPairProperty which sets both bpd and ipd to the
  +     * same value.
  +     * @param len length for both dimensions
  +     */
  +    public LengthPairProperty(Property len) {
  +        this(len, len);
  +    }
  +    
  +    /**
        * @see org.apache.fop.datatypes.CompoundDatatype#setComponent(int, 
Property, boolean)
        */
       public void setComponent(int cmpId, Property cmpnValue,
  @@ -102,10 +128,11 @@
           return this.bpd;
       }
   
  +    /** @see java.lang.Object#toString() */
       public String toString() {
  -        return "LengthPair[" + 
  -        "ipd:" + getIPD().getObject() + 
  -        ", bpd:" + getBPD().getObject() + "]";
  +        return "LengthPair[" 
  +            + "ipd:" + getIPD().getObject() 
  +            + ", bpd:" + getBPD().getObject() + "]";
       }
   
       /**
  
  
  
  1.1                  
xml-fop/src/java/org/apache/fop/fo/properties/BorderSpacingShorthandParser.java
  
  Index: BorderSpacingShorthandParser.java
  ===================================================================
  /*
   * Copyright 2005 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: BorderSpacingShorthandParser.java,v 1.1 2005/02/07 16:26:13 jeremias 
Exp $ */
  
  package org.apache.fop.fo.properties;
  
  import java.util.List;
  
  import org.apache.fop.fo.PropertyList;
  import org.apache.fop.fo.expr.PropertyException;
  
  /**
   * Shorthand parser for the "border-spacing" shorthand property.
   */
  public class BorderSpacingShorthandParser extends GenericShorthandParser {
  
      protected Property convertValueForProperty(int propId, Property property,
              PropertyMaker maker, PropertyList propertyList)
              throws PropertyException {
          List lst = property.getList();
          if (lst != null) {
              if (lst.size() == 1) {
                  Property len = (Property)lst.get(0);
                  return new LengthPairProperty(len);
              } else if (lst.size() == 2) {
                  Property ipd = (Property)lst.get(0);
                  Property bpd = (Property)lst.get(1);
                  return new LengthPairProperty(ipd, bpd);
              }
          }
          throw new PropertyException("list with 1 or 2 length values 
expected");
      }
  }
  
  
  
  1.42      +7 -3      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.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- FOPropertyMapping.java    25 Jan 2005 10:55:46 -0000      1.41
  +++ FOPropertyMapping.java    7 Feb 2005 16:26:13 -0000       1.42
  @@ -23,6 +23,7 @@
   
   import org.apache.fop.datatypes.LengthBase;
   import org.apache.fop.fo.expr.PropertyException;
  +import org.apache.fop.fo.properties.BorderSpacingShorthandParser;
   import org.apache.fop.fo.properties.BorderWidthPropertyMaker;
   import org.apache.fop.fo.properties.BoxPropShorthandParser;
   import org.apache.fop.fo.properties.CharacterProperty;
  @@ -2296,7 +2297,8 @@
           m.setInherited(true);
           m.setDefault("collapse");
           m.addEnum("separate", getEnumProperty(EN_SEPARATE, "SEPARATE"));
  -        m.addEnum("collapse-with-precedence", 
getEnumProperty(EN_COLLAPSE_WITH_PRECEDENCE, "COLLAPSE_WITH_PRECEDENCE"));
  +        m.addEnum("collapse-with-precedence", getEnumProperty(
  +                EN_COLLAPSE_WITH_PRECEDENCE, "COLLAPSE_WITH_PRECEDENCE"));
           m.addEnum("collapse", getEnumProperty(EN_COLLAPSE, "COLLAPSE"));
           addPropertyMaker("border-collapse", m);
   
  @@ -2309,6 +2311,7 @@
           // border-separation
           m  = new LengthPairProperty.Maker(PR_BORDER_SEPARATION);
           m.setInherited(true);
  +        m.addShorthand(s_generics[PR_BORDER_SPACING]);
   
           sub = new LengthProperty.Maker(CP_BLOCK_PROGRESSION_DIRECTION);
           sub.setDefault("0pt");
  @@ -2589,9 +2592,10 @@
           addPropertyMaker("border-style", m);
   
           // border-spacing
  -        m  = new ToBeImplementedProperty.Maker(PR_BORDER_SPACING);
  +        m  = new ListProperty.Maker(PR_BORDER_SPACING);
           m.setInherited(true);
           m.setDefault("0pt");
  +        m.setDatatypeParser(new BorderSpacingShorthandParser());
           addPropertyMaker("border-spacing", m);
   
           // border-top
  
  
  
  1.44      +5 -0      xml-fop/src/java/org/apache/fop/fo/flow/Table.java
  
  Index: Table.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Table.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- Table.java        31 Jan 2005 21:16:45 -0000      1.43
  +++ Table.java        7 Feb 2005 16:26:13 -0000       1.44
  @@ -199,6 +199,11 @@
       public int getBreakBefore() {
           return breakBefore;
       }
  +    
  +    /** @return the "border-separation" property. */
  +    public LengthPairProperty getBorderSeparation() {
  +        return borderSeparation;
  +    }
   
       /**
        * @return the "id" property.
  
  
  

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

Reply via email to