Reviewers: cromwellian,
Description:
Update the flute jar to accept double colon notation in css selectors,
rename
it to version 2, and use it throughout gwt. Also update the AST
generation code
to output double colons for any pseudo class/element that was is not
supported
with the single colon notation.
Please review this at http://gwt-code-reviews.appspot.com/1431801/
Affected files:
M common.ant.xml
M dev/build.xml
M eclipse/servlet/.classpath
M eclipse/user/.classpath
M user/build.xml
M user/src/com/google/gwt/resources/css/GenerateCssAst.java
Index: common.ant.xml
===================================================================
--- common.ant.xml (revision 10132)
+++ common.ant.xml (working copy)
@@ -236,7 +236,7 @@
<pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar" />
<pathelement
location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
<pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
- <pathelement
location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
+ <pathelement
location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
<extraclasspaths />
</classpath>
Index: dev/build.xml
===================================================================
--- dev/build.xml (revision 10132)
+++ dev/build.xml (working copy)
@@ -39,7 +39,7 @@
<pathelement
location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
<pathelement
location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
<pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
- <pathelement
location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
+ <pathelement
location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
<pathelement
location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />
<pathelement
location="${gwt.tools.lib}/hibernate/validator/hibernate-validator-4.1.0.Final.jar"
/>
<pathelement
location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" />
Index: eclipse/servlet/.classpath
===================================================================
--- eclipse/servlet/.classpath (revision 10132)
+++ eclipse/servlet/.classpath (working copy)
@@ -6,7 +6,7 @@
<classpathentry kind="var"
path="GWT_TOOLS/lib/tomcat/servlet-api-2.4.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/gwt-user"/>
<classpathentry combineaccessrules="false" kind="src" path="/gwt-dev"/>
- <classpathentry kind="var"
path="GWT_TOOLS/lib/w3c/flute/flute-1.3-gg1.jar"/>
+ <classpathentry kind="var"
path="GWT_TOOLS/lib/w3c/flute/flute-1.3-gg2.jar"/>
<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/sac/sac-1.3.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Index: eclipse/user/.classpath
===================================================================
--- eclipse/user/.classpath (revision 10132)
+++ eclipse/user/.classpath (working copy)
@@ -27,7 +27,7 @@
<classpathentry kind="var"
path="GWT_TOOLS/lib/xerces/xerces-2_9_1/xercesImpl-NoMetaInf.jar"/>
<classpathentry kind="var"
path="GWT_TOOLS/lib/xerces/xerces-2_9_1/xml-apis.jar"/>
<classpathentry kind="var" path="GWT_TOOLS/lib/w3c/sac/sac-1.3.jar"/>
- <classpathentry kind="var"
path="GWT_TOOLS/lib/w3c/flute/flute-1.3-gg1.jar"/>
+ <classpathentry kind="var"
path="GWT_TOOLS/lib/w3c/flute/flute-1.3-gg2.jar"/>
<classpathentry kind="var" path="GWT_TOOLS/lib/cglib/cglib-2.2.jar"/>
<classpathentry kind="var"
path="GWT_TOOLS/lib/objenesis/objenesis-1.2.jar"/>
<classpathentry kind="var"
path="GWT_TOOLS/lib/easymock/easymock-3.0.jar"/>
Index: user/build.xml
===================================================================
--- user/build.xml (revision 10132)
+++ user/build.xml (working copy)
@@ -98,7 +98,7 @@
<pathelement
location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
<pathelement
location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
<pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
- <pathelement
location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
+ <pathelement
location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
<pathelement
location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />
<pathelement
location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" />
<!-- The source is included so validation is available from client
code -->
@@ -150,7 +150,7 @@
<fileset dir="${javac.out}" />
<zipfileset src="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar"
excludes="**/*.java"/>
<zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
- <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3-gg1.jar" />
+ <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
</gwt.jar>
</target>
Index: user/src/com/google/gwt/resources/css/GenerateCssAst.java
===================================================================
--- user/src/com/google/gwt/resources/css/GenerateCssAst.java (revision
10132)
+++ user/src/com/google/gwt/resources/css/GenerateCssAst.java (working copy)
@@ -92,6 +92,10 @@
@SuppressWarnings("unused")
public class GenerateCssAst {
+ private static List<String> validPseudoClasses = Arrays.asList(
+ "link", "visited", "active", "hover", "focus", "first-letter",
"first-line",
+ "first-child", "before", "after");
+
/**
* Maps SAC CSSParseExceptions into a TreeLogger. All parsing errors
will be
* recorded in a single TreeLogger branch, which will be created only if
a
@@ -937,7 +941,11 @@
case Condition.SAC_CLASS_CONDITION:
return "." + c.getValue();
case Condition.SAC_PSEUDO_CLASS_CONDITION:
- return ":" + c.getValue();
+ if (validPseudoClasses.contains(c.getValue().toLowerCase())) {
+ return ":" + c.getValue();
+ } else {
+ return "::" + c.getValue();
+ }
}
} else if (condition instanceof CombinatorCondition) {
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors