]> source.dussan.org Git - vaadin-framework.git/commitdiff
Merge SASS fixes keeping comments, remove hack for reindeer (#9223)
authorHenri Sara <hesara@vaadin.com>
Fri, 10 Aug 2012 06:10:40 +0000 (09:10 +0300)
committerHenri Sara <hesara@vaadin.com>
Fri, 10 Aug 2012 06:10:40 +0000 (09:10 +0300)
WebContent/VAADIN/themes/reindeer/a-sprite-definitions/a-sprite-definitions.scss
WebContent/VAADIN/themes/reindeer/reindeer.scss
build/buildhelpers/com/vaadin/buildhelpers/CompileDefaultTheme.java
sass/src/com/vaadin/sass/parser/Parser.java
sass/src/com/vaadin/sass/parser/Parser.jj
tests/sass/resources/css/comments.css
tests/sass/resources/scss/comments.scss
tests/sass/src/com/vaadin/sass/testcases/scss/Comments.java

index 87c598956f1aa6e62e904bb75ea5396990fa66d5..ffa7ca349ae50461a85675fd277e6d633e177c32 100644 (file)
@@ -1,14 +1,14 @@
 /*------------
  * General vertical and horizontal sprites 
  * -----------*/
-/** sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-/** sprite: horizontals; sprite-image: url(../common/img/horizontal-sprites.png); sprite-layout: horizontal */
+/** sprite: verticals; sprite-image: url(common/img/vertical-sprites.png); sprite-layout: vertical */
+/** sprite: horizontals; sprite-image: url(common/img/horizontal-sprites.png); sprite-layout: horizontal */
 
-/** sprite: black-verticals; sprite-image: url(../common/img/black-vertical-sprites.png); sprite-layout: vertical; sprite-matte-color: #1e2022 */
-/** sprite: black-horizontals; sprite-image: url(../common/img/black-horizontal-sprites.png); sprite-layout: horizontal; sprite-matte-color: #1e2022 */
+/** sprite: black-verticals; sprite-image: url(common/img/black-vertical-sprites.png); sprite-layout: vertical; sprite-matte-color: #1e2022 */
+/** sprite: black-horizontals; sprite-image: url(common/img/black-horizontal-sprites.png); sprite-layout: horizontal; sprite-matte-color: #1e2022 */
 
 /*------------
  * Buttons 
  * -----------*/
-/** sprite: buttons; sprite-image: url(../button/img/button-sprites.png); sprite-layout: vertical */
-/** sprite: black-buttons; sprite-image: url(../button/img/black-button-sprites.png); sprite-layout: vertical */
\ No newline at end of file
+/** sprite: buttons; sprite-image: url(button/img/button-sprites.png); sprite-layout: vertical */
+/** sprite: black-buttons; sprite-image: url(button/img/black-button-sprites.png); sprite-layout: vertical */
index 6033466f63e2b950de123ee410f0a4a604032ad4..0cd01f7885347867e21643f3c5767f115e20872d 100644 (file)
@@ -3,7 +3,6 @@
 // common between others for now for backwards compatibility
 
 @import "accordion/accordion.scss";
-// TODO this is problematic: comments get stripped out
 @import "a-sprite-definitions/a-sprite-definitions.scss";
 @import "button/button.scss";
 
index a23e5e912e9ab84bea8333d34966497b3d09250b..45079ac21f52c91e82c17a4cbf409bb69391fa25 100644 (file)
@@ -79,23 +79,6 @@ public class CompileDefaultTheme {
                 + "\";}\n");
         cssHeader.append(".v-theme-version-" + version + " {display: none;}\n");
 
-        // TODO temporary hack for Reindeer
-        if (useSmartSprites) {
-            // TODO removed "../" from paths here
-            cssHeader
-                    .append("/** sprite: verticals; sprite-image: url(common/img/vertical-sprites.png); sprite-layout: vertical */\n");
-            cssHeader
-                    .append("/** sprite: horizontals; sprite-image: url(common/img/horizontal-sprites.png); sprite-layout: horizontal */\n");
-            cssHeader
-                    .append("/** sprite: black-verticals; sprite-image: url(common/img/black-vertical-sprites.png); sprite-layout: vertical; sprite-matte-color: #1e2022 */\n");
-            cssHeader
-                    .append("/** sprite: black-horizontals; sprite-image: url(common/img/black-horizontal-sprites.png); sprite-layout: horizontal; sprite-matte-color: #1e2022 */\n");
-            cssHeader
-                    .append("/** sprite: buttons; sprite-image: url(button/img/button-sprites.png); sprite-layout: vertical */\n");
-            cssHeader
-                    .append("/** sprite: black-buttons; sprite-image: url(button/img/black-button-sprites.png); sprite-layout: vertical */\n");
-        }
-
         String stylesCssDir = THEME_DIR + themeName + "/";
         String stylesCssName = stylesCssDir + "styles.css";
 
index 710c7d5be74205243d9e9b7525754fbc1277f4d9..152ae1ddb27257b86f2926f99d84a4f0ee2a41ae 100644 (file)
@@ -25,6 +25,7 @@ import org.w3c.flute.parser.selectors.SelectorFactoryImpl;
 import org.w3c.flute.parser.selectors.ConditionFactoryImpl;
 
 import org.w3c.flute.util.Encoding;
+
 import com.vaadin.sass.handler.*;
 
 import com.vaadin.sass.tree.*;
@@ -449,6 +450,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case S:
           jj_consume_token(S);
+          comments();
           break;
         case CDO:
         case CDC:
@@ -555,14 +557,6 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     label_7:
     while (true) {
       ;
-         if (token.specialToken != null){
-             Token tmp_t = token.specialToken;
-             while (tmp_t.specialToken != null) tmp_t = tmp_t.specialToken;
-             while (tmp_t != null) {
-                 documentHandler.comment(tmp_t.image);
-                 tmp_t = tmp_t.next;
-             }
-         }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case VARIABLE:
         variable();
@@ -2790,6 +2784,7 @@ LexicalUnit exp;
   String name;
   LexicalUnit exp;
   Token save;
+  String comment = null;
     try {
       name = property();
        save = token;
@@ -3935,6 +3930,17 @@ LexicalUnit exp;
     return convertStringIndex(s, 0, s.length());
   }
 
+  void comments() throws ParseException {
+    if (token.specialToken != null){
+        Token tmp_t = token.specialToken;
+        while (tmp_t.specialToken != null) tmp_t = tmp_t.specialToken;
+        while (tmp_t != null) {
+            documentHandler.comment(tmp_t.image);
+            tmp_t = tmp_t.next;
+        }
+    }
+  }
+
   void rejectToken(Token t) throws ParseException {
     Token fakeToken = new Token();
     t.next = token;
@@ -4149,6 +4155,26 @@ LexicalUnit exp;
     finally { jj_save(3, xla); }
   }
 
+  private boolean jj_3R_129() {
+    if (jj_scan_token(DIV)) return true;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+    }
+    return false;
+  }
+
+  private boolean jj_3R_119() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_129()) {
+    jj_scanpos = xsp;
+    if (jj_3R_130()) return true;
+    }
+    return false;
+  }
+
   private boolean jj_3R_168() {
     if (jj_scan_token(UNICODERANGE)) return true;
     return false;
@@ -4442,24 +4468,6 @@ LexicalUnit exp;
     return false;
   }
 
-  private boolean jj_3R_124() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_136()) {
-    jj_scanpos = xsp;
-    if (jj_3R_137()) {
-    jj_scanpos = xsp;
-    if (jj_3R_138()) return true;
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_136() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
   private boolean jj_3R_131() {
     Token xsp;
     xsp = jj_scanpos;
@@ -4523,6 +4531,24 @@ LexicalUnit exp;
     return false;
   }
 
+  private boolean jj_3R_124() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_136()) {
+    jj_scanpos = xsp;
+    if (jj_3R_137()) {
+    jj_scanpos = xsp;
+    if (jj_3R_138()) return true;
+    }
+    }
+    return false;
+  }
+
+  private boolean jj_3R_136() {
+    if (jj_scan_token(IDENT)) return true;
+    return false;
+  }
+
   private boolean jj_3R_108() {
     if (jj_scan_token(IDENT)) return true;
     Token xsp;
@@ -4533,11 +4559,6 @@ LexicalUnit exp;
     return false;
   }
 
-  private boolean jj_3R_135() {
-    if (jj_scan_token(PRECEDES)) return true;
-    return false;
-  }
-
   private boolean jj_3R_120() {
     Token xsp;
     xsp = jj_scanpos;
@@ -4552,6 +4573,11 @@ LexicalUnit exp;
     return false;
   }
 
+  private boolean jj_3R_135() {
+    if (jj_scan_token(PRECEDES)) return true;
+    return false;
+  }
+
   private boolean jj_3R_107() {
     Token xsp;
     xsp = jj_scanpos;
@@ -4681,26 +4707,6 @@ LexicalUnit exp;
     return false;
   }
 
-  private boolean jj_3R_129() {
-    if (jj_scan_token(DIV)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_119() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_129()) {
-    jj_scanpos = xsp;
-    if (jj_3R_130()) return true;
-    }
-    return false;
-  }
-
   /** Generated Token Manager. */
   public ParserTokenManager token_source;
   /** Current token. */
index 62892c815903175292af5f958eeb5d31f4a0b21d..c34dedc59678ba139afa78ca17077ea1db2d6171 100644 (file)
@@ -43,6 +43,7 @@ import org.w3c.flute.parser.selectors.SelectorFactoryImpl;
 import org.w3c.flute.parser.selectors.ConditionFactoryImpl;
 
 import org.w3c.flute.util.Encoding;
+
 import com.vaadin.sass.handler.*;
 
 import com.vaadin.sass.tree.*;
@@ -700,7 +701,8 @@ void parserUnit() :
     try {
        { documentHandler.startDocument(source); }
        ( charset() )?
-       ( <S> | ignoreStatement() )*
+       ( <S> comments()
+        | ignoreStatement() )*
        ( importDeclaration() ( ignoreStatement() ( <S> )* )* )*
        afterImportDeclaration()
        <EOF>
@@ -731,16 +733,6 @@ void afterImportDeclaration() :
 }
 {
   ( 
-     {
-         if (token.specialToken != null){
-             Token tmp_t = token.specialToken;
-             while (tmp_t.specialToken != null) tmp_t = tmp_t.specialToken;
-             while (tmp_t != null) {
-                 documentHandler.comment(tmp_t.image);
-                 tmp_t = tmp_t.next;
-             }
-         }
-     }     
      ( variable() | mixinDirective() | includeDirective() | styleRule() | media()| page() | fontFace() 
       | { l = getLocator(); } ret=skipStatement() 
       {
@@ -1583,6 +1575,7 @@ void declarationOrNestedProperties() :
   String name;
   LexicalUnit exp;
   Token save;
+  String comment = null;
 }
 {
  try {
@@ -2355,6 +2348,18 @@ String convertString(String s) {
     return convertStringIndex(s, 0, s.length());
 }
 
+JAVACODE
+void comments(){
+    if (token.specialToken != null){
+        Token tmp_t = token.specialToken;
+        while (tmp_t.specialToken != null) tmp_t = tmp_t.specialToken;
+        while (tmp_t != null) {
+            documentHandler.comment(tmp_t.image);
+            tmp_t = tmp_t.next;
+        }
+    }
+} 
+
 /*
  * @@HACK
  * I can't insert a token into the tokens flow.
index 2a32b49ec225efeeab97532cb57cc58ce578970b..1c773f7974e45ca1991ab2c781596e035020df26 100644 (file)
@@ -2,6 +2,8 @@
 
 /** 1sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
 
+/** 2sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+
 .v-button:focus {
        background-image: url(img/left-focus.png);/** sprite-ref: buttons */
        outline: none;
index 7e2ccac3b57539bdd3270bd8e1509658fb139648..de3fbe8e0df5d06300e548ffef9ceffa11e8995a 100644 (file)
@@ -1,6 +1,7 @@
 /** 0sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-$black:#000000;
 /** 1sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+/** 2sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+$black:#000000;
 .v-button:focus {
        background-image: url(img/left-focus.png);/** sprite-ref: buttons */
        outline: none;
index 1dcc18e568f525b40a635b8141f5f1499face2f5..3dbafc9d437521ca449b0fbf0824147b4e3fd89c 100644 (file)
@@ -32,7 +32,7 @@ public class Comments extends AbstractTestBase {
         parser.parseStyleSheet(getClass().getResource(scss).getPath());
         ScssStylesheet root = handler.getStyleSheet();
         Assert.assertNotNull(root);
-        Assert.assertEquals(5, root.getChildren().size());
+        Assert.assertEquals(6, root.getChildren().size());
         Assert.assertTrue(root.getChildren().get(0) instanceof CommentNode);
         Assert.assertTrue(root.getChildren().get(2) instanceof CommentNode);
     }
@@ -40,7 +40,5 @@ public class Comments extends AbstractTestBase {
     @Test
     public void testCompiler() throws Exception {
         testCompiler(scss, css);
-        Assert.assertEquals("Original CSS and parsed CSS doesn't match",
-                comparisonCss, parsedScss);
     }
 }