2002/css-validator/org/w3c/css/properties/css3 CssColumnGap.java,1.2,1.3

Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3
In directory hutz:/tmp/cvs-serv9775

Modified Files:
	CssColumnGap.java 
Log Message:
CssColumnGap allows 0 but not negative values.
Also default (and allowed) value is 'normal'


Index: CssColumnGap.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssColumnGap.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- CssColumnGap.java	14 Sep 2005 15:15:04 -0000	1.2
+++ CssColumnGap.java	15 Dec 2009 17:38:46 -0000	1.3
@@ -13,129 +13,157 @@
 import org.w3c.css.util.ApplContext;
 import org.w3c.css.util.InvalidParamException;
 import org.w3c.css.values.CssExpression;
+import org.w3c.css.values.CssIdent;
 import org.w3c.css.values.CssLength;
 import org.w3c.css.values.CssNumber;
 import org.w3c.css.values.CssPercentage;
+import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
 /**
+ *  <P>
+ *  <EM>Value:</EM> &lt;length&gt; || normal <BR>
+ *  <EM>Initial:</EM>normal<BR>
+ *  <EM>Applies to:</EM>multicol elements<BR>
+ *  <EM>Inherited:</EM>no<BR>
+ *  <EM>Percentages:</EM>no<BR>
+ *  <EM>Media:</EM>:visual
+ *  <EM>Computed value: absolute length or 'normal'
+ *  <P>The ‘column-gap’ property sets the gap between columns. 
+ *  If there is a column rule between columns, it will appear in the 
+ *  middle of the gap.
+ *  The ‘normal’ value is UA-specific. A value of ‘1em’ is suggested.
+ *  Column gaps cannot be negative.
  *
  */
 
-    public class CssColumnGap extends CssProperty {
+public class CssColumnGap extends CssProperty {
 
-	CssValue columngap;
+    CssValue columngap;
 
+    static CssIdent normal;
+    static {
+	normal = new CssIdent("normal");
+    }
+    /**
+     * Create a new CssColumnGap
+     */
+    public CssColumnGap() {
+	columngap = normal;
+    }
 
-	/**
-	 * Create a new CssColumnGap
-	 */
-	public CssColumnGap() {
-	    columngap = new CssNumber(0);
-	}
+    /**
+     * Create a new CssColumnGap
+     */
+    public CssColumnGap(ApplContext ac, CssExpression expression,
+			boolean check) throws InvalidParamException {
+	setByUser();
+	CssValue val = expression.getValue();
+	Float value;
 
-	/**
-	 * Create a new CssColumnGap
-	 *
-	 *
-	 */
-	public CssColumnGap(ApplContext ac, CssExpression expression,
-		boolean check) throws InvalidParamException {
-	    setByUser();
-	    CssValue val = expression.getValue();
-	    if (val instanceof CssPercentage) {
-			columngap = val;
-			expression.next();
-	    }
-	    else if (val instanceof CssLength) {
-			columngap = val;
-			expression.next();
+	switch(val.getType()) {
+	case CssTypes.CSS_NUMBER:
+	    val = ((CssNumber)val).getLength();
+	case CssTypes.CSS_LENGTH:
+	    value = (Float) ((CssLength)val).get();
+	    if (value == null || value.floatValue() < 0.0) {
+		throw new InvalidParamException("negative-value", 
+						expression.getValue(),
+						getPropertyName(), ac);
 	    }
-	    else if (val.equals(inherit)) {
-			columngap = inherit;
-			expression.next();
+	    columngap = val;
+	    break;
+	case CssTypes.CSS_IDENT:
+	    if (normal.equals(val)) {
+		columngap = normal;
+		break;
 	    }
-
-	    else {
-		throw new InvalidParamException("value", val.toString(), getPropertyName(), ac);
+	    if (inherit.equals(val)) {
+		columngap = inherit;
+		break;
 	    }
+	default:
+	    throw new InvalidParamException("value", expression.getValue(),
+					    getPropertyName(), ac);
 	}
+	expression.next();
+    }
 
-	public CssColumnGap(ApplContext ac, CssExpression expression)
-		throws InvalidParamException {
-	    this(ac, expression, false);
-	}
-
-	/**
-	 * Add this property to the CssStyle.
-	 *
-	 * @param style The CssStyle
-	 */
-	public void addToStyle(ApplContext ac, CssStyle style) {
-	    if (((Css3Style) style).cssColumnGap != null)
-		style.addRedefinitionWarning(ac, this);
-	    ((Css3Style) style).cssColumnGap = this;
+    public CssColumnGap(ApplContext ac, CssExpression expression)
+	throws InvalidParamException {
+	this(ac, expression, false);
+    }
 
-	}
+    /**
+     * Add this property to the CssStyle.
+     *
+     * @param style The CssStyle
+     */
+    public void addToStyle(ApplContext ac, CssStyle style) {
+	if (((Css3Style) style).cssColumnGap != null)
+	    style.addRedefinitionWarning(ac, this);
+	((Css3Style) style).cssColumnGap = this;
 
-	/**
-	 * Get this property in the style.
-	 *
-	 * @param style The style where the property is
-	 * @param resolve if true, resolve the style to find this property
-	 */
-        public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
-	    if (resolve) {
-		return ((Css3Style) style).getColumnGap();
-	    } else {
-		return ((Css3Style) style).cssColumnGap;
-	    }
-	}
+    }
 
-	/**
-	 * Compares two properties for equality.
-	 *
-	 * @param value The other property.
-	 */
-	public boolean equals(CssProperty property) {
-	    return (property instanceof CssColumnGap &&
-		    columngap.equals( ((CssColumnGap) property).columngap));
+    /**
+     * Get this property in the style.
+     *
+     * @param style The style where the property is
+     * @param resolve if true, resolve the style to find this property
+     */
+    public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
+	if (resolve) {
+	    return ((Css3Style) style).getColumnGap();
+	} else {
+	    return ((Css3Style) style).cssColumnGap;
 	}
+    }
 
-	/**
-	 * Returns the name of this property
-	 */
-	public String getPropertyName() {
-	    return "column-gap";
-	}
+    /**
+     * Compares two properties for equality.
+     *
+     * @param value The other property.
+     */
+    public boolean equals(CssProperty property) {
+	return (property instanceof CssColumnGap &&
+		columngap.equals( ((CssColumnGap) property).columngap));
+    }
 
-	/**
-	 * Returns the value of this property
-	 */
-	public Object get() {
-	    return columngap;
-	}
+    /**
+     * Returns the name of this property
+     */
+    public String getPropertyName() {
+	return "column-gap";
+    }
 
-	/**
-	 * Returns true if this property is "softly" inherited
-	 */
-	public boolean isSoftlyInherited() {
-	    return columngap.equals(inherit);
-	}
+    /**
+     * Returns the value of this property
+     */
+    public Object get() {
+	return columngap;
+    }
 
-	/**
-	 * Returns a string representation of the object
-	 */
-	public String toString() {
-	    return columngap.toString();
-	}
+    /**
+     * Returns true if this property is "softly" inherited
+     */
+    public boolean isSoftlyInherited() {
+	return columngap.equals(inherit);
+    }
 
-	/**
-	 * Is the value of this property a default value
-	 * It is used by all macro for the function <code>print</code>
-	 */
-	public boolean isDefault() {
-	    return columngap == new CssNumber(0);
-	}
+    /**
+     * Returns a string representation of the object
+     */
+    public String toString() {
+	return columngap.toString();
+    }
 
+    /**
+     * Is the value of this property a default value
+     * It is used by all macro for the function <code>print</code>
+     */
+    public boolean isDefault() {
+	return (columngap == normal);
     }
+
+}

Received on Tuesday, 15 December 2009 17:38:50 UTC