- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 03 Apr 2012 14:20:56 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3 In directory hutz:/tmp/cvs-serv18166/w3c/css/properties/css3 Modified Files: CssBackground.java CssBackgroundClip.java Log Message: prepared to replace '/' instances from 'Operator' as in CSS2 to a 'switch' per css3. adapted some classes because of that (expect breakage on font before it's rewritten), fixed 'background' to be in sync with the http://www.w3.org/TR/2012/WD-css3-background-20120214/ spec Index: CssBackgroundClip.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssBackgroundClip.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- CssBackgroundClip.java 13 Feb 2012 21:06:29 -0000 1.6 +++ CssBackgroundClip.java 3 Apr 2012 14:20:54 -0000 1.7 @@ -115,6 +115,13 @@ } /** + * Returns the value of this property + */ + public Object get() { + return value; + } + + /** * Add this property to the CssStyle * * @param style The CssStyle Index: CssBackground.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssBackground.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- CssBackground.java 31 Oct 2011 13:15:17 -0000 1.2 +++ CssBackground.java 3 Apr 2012 14:20:54 -0000 1.3 @@ -13,48 +13,15 @@ import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; import org.w3c.css.values.CssColor; -import org.w3c.css.values.CssExpression; -import org.w3c.css.values.CssIdent; -import org.w3c.css.values.CssTypes; -import org.w3c.css.values.CssValue; -import org.w3c.css.values.CssValueList; +import org.w3c.css.values.*; import java.util.ArrayList; import static org.w3c.css.values.CssOperator.COMMA; -import static org.w3c.css.values.CssOperator.SLASH; import static org.w3c.css.values.CssOperator.SPACE; /** - * http://www.w3.org/TR/2009/CR-css3-background-20091217/#the-background - * <p/> - * Name: background - * Value: [ <bg-layer> , ]* <final-bg-layer> - * Initial: see individual properties - * Applies to: all elements - * Inherited: no - * Percentages: see individual properties - * Media: visual - * Computed value: see individual properties - * <p/> - * Where - * <p/> - * <bg-layer> = <bg-image> || <bg-position> || - * / <bg-size> || <repeat-style> || <attachment> || - * <bg-origin> - * <p/> - * where ‘<bg-position>’ must occur before ‘/ <bg-size>’ if both - * are present. - * <p/> - * <final-bg-layer> = <bg-image> || <bg-position> || - * / <bg-size> || <repeat-style> || <attachment> || - * <bg-origin> || <'background-color'> - * <p/> - * where ‘<bg-position>’ must not occur before ‘/ <bg-size>’ if - * both are present. - * <p/> - * Note that a color is permitted in <final-bg-layer>, but - * not in <bg-layer>. + * http://www.w3.org/TR/2012/WD-css3-background-20120214/ * * @see org.w3c.css.properties.css.CssBackgroundColor * @see org.w3c.css.properties.css.CssBackgroundImage @@ -147,7 +114,7 @@ b_val = check(ac, single_layer, check, false); values.add(b_val); single_layer = null; - } else if ((op != SPACE) && (op != SLASH)) { + } else if ((op != SPACE)) { throw new InvalidParamException("operator", ((new Character(op)).toString()), ac); } @@ -422,11 +389,34 @@ } break; } + // Kludge ahead, we are testing for <box> here, and it + // matches both origin and clip. if (CssBackgroundOrigin.isMatchingIdent(ident_val)) { - if (v.origin != null || next_is_size) { + if (next_is_size) { throw new InvalidParamException("value", val, getPropertyName(), ac); } + if (v.origin != null) { + // ok, we have an origin, so we are looking for a clip + if (v.clip != null) { + throw new InvalidParamException("value", val, + getPropertyName(), ac); + } + exp = new CssExpression(); + exp.addValue(val); + + CssBackgroundClip clip; + clip = new CssBackgroundClip(ac, exp, check); + res = clip.get(); + // we only have one vale so it should always be the case + if (res instanceof CssValue) { + v.clip = (CssValue) res; + } else { + throw new InvalidParamException("value", val, + getPropertyName(), ac); + } + break; + } exp = new CssExpression(); exp.addValue(val); @@ -530,14 +520,17 @@ bg_color = new CssBackgroundColor(ac, exp, check); v.color = (CssValue) bg_color.get(); break; + // the infamous switch... + // note that we should check that we got something first. + case CssTypes.CSS_SWITCH: + next_is_size = true; + break; default: throw new InvalidParamException("value", val, getPropertyName(), ac); } - if (op == SLASH) { - next_is_size = true; - } else if (op != SPACE) { + if (op != SPACE) { throw new InvalidParamException("operator", val, getPropertyName(), ac); } @@ -604,7 +597,7 @@ // If 'background-origin' is present and its value matches a // possible value for 'background-clip' then it also sets // 'background-clip' to that value. - if ((css_val.getType() == CssTypes.CSS_IDENT) && + if (v.clip == null && (css_val.getType() == CssTypes.CSS_IDENT) && CssBackgroundClip.isMatchingIdent((CssIdent) css_val)) { v.clip_value = v.origin_value; } @@ -613,6 +606,11 @@ v.origin_value = v.origin; } + if (v.clip != null) { + v.clip_value = v.clip; + } + + if (v.color == null) { v.color_value = (new CssBackgroundColor()).getColor(); } else { @@ -888,6 +886,7 @@ CssValue repeat_style = null; CssValue attachment = null; CssValue origin = null; + CssValue clip = null; CssValue color = null; CssValue bg_image_value = null; @@ -983,6 +982,9 @@ if (origin != null) { sb.append(origin).append(' '); } + if (clip != null) { + sb.append(clip).append(' '); + } if (color != null) { sb.append(color); } else {
Received on Tuesday, 3 April 2012 14:21:04 UTC