- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 16 Sep 2005 13:33:54 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css1 In directory hutz:/tmp/cvs-serv14298/org/w3c/css/properties/css1 Modified Files: Css1Style.java Log Message: (Jean-Guilhem Rouel) Fixes issues with warning and multiple definitions in the CSS of the same selector Index: Css1Style.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/Css1Style.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Css1Style.java 14 Sep 2005 15:14:31 -0000 1.4 +++ Css1Style.java 16 Sep 2005 13:33:52 -0000 1.5 @@ -2526,7 +2526,8 @@ * @param warnings For warnings reports. * @param allSelectors All contexts is the entire style sheet. */ - public void findConflicts(ApplContext ac, Warnings warnings, Enumeration allSelectors) { + public void findConflicts(ApplContext ac, Warnings warnings, + CssSelectors selector, Enumeration allSelectors) { // if border-style == none, border-width should be 0 // @@ this is a horrible place to do this ... cssBorder.check(); @@ -2563,17 +2564,27 @@ } if (cssBackground.getColor() != null) { - if (cssColor != null) { - if (cssBackground.getColor().equals(cssColor.getColor())) { + CssColor colorCSS3 = cssColor; + // we need to look if there is the same selector elsewhere + // containing a color definition + while (colorCSS3 == null && allSelectors.hasMoreElements()) { + CssSelectors sel = + (CssSelectors) allSelectors.nextElement(); + if(sel.toString().equals(selector.toString())) { + colorCSS3 = ((Css1Style) sel.getStyle()).cssColor; + } + } + if (colorCSS3 != null) { + if (cssBackground.getColor().equals(colorCSS3.getColor())) { // background and color can't have the same color warnings.addWarning(new Warning(cssBackground.color, - "same-colors", 1, cssColor, ac)); + "same-colors", 1, colorCSS3, ac)); } else if(cssBackground.getColor().equals( CssProperty.transparent)) { // It's better to have a background color with a color warnings.addWarning(new Warning( - cssColor, "no-background-color", 1, ac)); + colorCSS3, "no-background-color", 1, ac)); } } else { CssValue color = cssBackground.getColor(); @@ -2638,17 +2649,27 @@ } */ } else if (cssBackgroundCSS1.getColor() != null) { - if (cssColorCSS1 != null) { - if (cssBackgroundCSS1.getColor().equals(cssColorCSS1.getColor())) { + CssColorCSS1 colorCSS1 = cssColorCSS1; + // we need to look if there is the same selector elsewhere + // containing a color definition + while (colorCSS1 == null && allSelectors.hasMoreElements()) { + CssSelectors sel = + (CssSelectors) allSelectors.nextElement(); + if(sel.toString().equals(selector.toString())) { + colorCSS1 = ((Css1Style) sel.getStyle()).cssColorCSS1; + } + } + if (colorCSS1 != null) { + if (cssBackgroundCSS1.getColor().equals(colorCSS1.getColor())) { // background and color can't have the same color warnings.addWarning(new Warning(cssBackgroundCSS1.color, - "same-colors", 1, cssColorCSS1, ac)); + "same-colors", 1, colorCSS1, ac)); } else if(cssBackgroundCSS1.getColor().equals( CssProperty.transparent)) { // It's better to have a background color with a color warnings.addWarning(new Warning( - cssColorCSS1, "no-background-color", 1, ac)); + colorCSS1, "no-background-color", 1, ac)); } } else { CssValue color = cssBackgroundCSS1.getColor(); @@ -2701,17 +2722,27 @@ } } else if (cssBackgroundCSS2.getColor() != null) { - if (cssColorCSS2 != null) { - if (cssBackgroundCSS2.getColor().equals(cssColorCSS2.getColor())) { + CssColorCSS2 colorCSS2 = cssColorCSS2; + // we need to look if there is the same selector elsewhere + // containing a color definition + while (colorCSS2 == null && allSelectors.hasMoreElements()) { + CssSelectors sel = + (CssSelectors) allSelectors.nextElement(); + if(sel.toString().equals(selector.toString())) { + colorCSS2 = ((Css1Style) sel.getStyle()).cssColorCSS2; + } + } + if (colorCSS2 != null) { + if (cssBackgroundCSS2.getColor().equals(colorCSS2.getColor())) { // background and color can't have the same color warnings.addWarning(new Warning(cssBackgroundCSS2.color, - "same-colors", 1, cssColorCSS2, ac)); + "same-colors", 1, colorCSS2, ac)); } else if(cssBackgroundCSS2.getColor().equals( CssProperty.transparent)) { -// It's better to have a background color with a color + // It's better to have a background color with a color warnings.addWarning(new Warning( - cssColorCSS2, "no-background-color", 1, ac)); + colorCSS2, "no-background-color", 1, ac)); } } else { CssValue color = cssBackgroundCSS2.getColor(); @@ -2769,12 +2800,19 @@ } else if (cssColor != null) { - // It's better to have a background color with a color - warnings.addWarning(new Warning(cssColor, "no-background-color", 1, ac)); + CssValue backgroundColor = null; + // we need to look if there is the same selector elsewhere + // containing a color definition while (allSelectors.hasMoreElements()) { - // looking for inherited values. + CssSelectors sel = + (CssSelectors) allSelectors.nextElement(); Css1Style style = - (Css1Style) ((CssSelectors) allSelectors.nextElement()).getStyle(); + (Css1Style) sel.getStyle(); + if(backgroundColor == null && + sel.toString().equals(selector.toString())) { + backgroundColor = ((Css1Style) sel.getStyle()). + cssBackground.getColor(); + } if (style.cssBackground.getColor() != null) { if (style.cssBackground.getColor().equals(cssColor.getColor())) { warnings.addWarning(new Warning(cssColor, "same-colors2", 1, @@ -2783,14 +2821,26 @@ } } } + if(backgroundColor == null) { + // It's better to have a background color with a color + warnings.addWarning(new Warning(cssColor, + "no-background-color", 1, ac)); + } } else if (cssColorCSS1 != null) { - // It's better to have a background color with a color - warnings.addWarning(new Warning(cssColorCSS1, "no-background-color", 1, ac)); + CssValue backgroundColor = null; + // we need to look if there is the same selector elsewhere + // containing a color definition while (allSelectors.hasMoreElements()) { - // looking for inherited values. + CssSelectors sel = + (CssSelectors) allSelectors.nextElement(); Css1Style style = - (Css1Style) ((CssSelectors) allSelectors.nextElement()).getStyle(); + (Css1Style) sel.getStyle(); + if(backgroundColor == null && + sel.toString().equals(selector.toString())) { + backgroundColor = ((Css1Style) sel.getStyle()). + cssBackgroundCSS1.getColor(); + } if (style.cssBackgroundCSS1.getColor() != null) { if (style.cssBackgroundCSS1.getColor().equals(cssColorCSS1.getColor())) { warnings.addWarning(new Warning(cssColorCSS1, "same-colors2", 1, @@ -2799,14 +2849,26 @@ } } } + if(backgroundColor == null) { + // It's better to have a background color with a color + warnings.addWarning(new Warning(cssColorCSS1, + "no-background-color", 1, ac)); + } } else if (cssColorCSS2 != null) { - // It's better to have a background color with a color - warnings.addWarning(new Warning(cssColorCSS2, "no-background-color", 1, ac)); + CssValue backgroundColor = null; + // we need to look if there is the same selector elsewhere + // containing a color definition while (allSelectors.hasMoreElements()) { - // looking for inherited values. + CssSelectors sel = + (CssSelectors) allSelectors.nextElement(); Css1Style style = - (Css1Style) ((CssSelectors) allSelectors.nextElement()).getStyle(); + (Css1Style) sel.getStyle(); + if(backgroundColor == null && + sel.toString().equals(selector.toString())) { + backgroundColor = ((Css1Style) sel.getStyle()). + cssBackgroundCSS2.getColor(); + } if (style.cssBackgroundCSS2.getColor() != null) { if (style.cssBackgroundCSS2.getColor().equals(cssColorCSS2.getColor())) { warnings.addWarning(new Warning(cssColorCSS2, "same-colors2", 1, @@ -2815,6 +2877,11 @@ } } } + if(backgroundColor == null) { + // It's better to have a background color with a color + warnings.addWarning(new Warning(cssColorCSS2, + "no-background-color", 1, ac)); + } } // now testing for % and length in padding and marging
Received on Friday, 16 September 2005 13:34:47 UTC