Revision: 6558
Author: fabb...@google.com
Date: Fri Oct 30 10:59:29 2009
Log: Merge of trunk 6458:6459, fix for CssProperty space bug on IE

http://code.google.com/p/google-web-toolkit/source/detail?r=6558

Modified:
   
/branches/snapshot-2009.10.23-r6446/user/src/com/google/gwt/resources/css/GenerateCssAst.java
   
/branches/snapshot-2009.10.23-r6446/user/src/com/google/gwt/resources/css/ast/CssProperty.java

=======================================
---  
/branches/snapshot-2009.10.23-r6446/user/src/com/google/gwt/resources/css/GenerateCssAst.java
    
Sat Oct 10 13:50:54 2009
+++  
/branches/snapshot-2009.10.23-r6446/user/src/com/google/gwt/resources/css/GenerateCssAst.java
    
Fri Oct 30 10:59:29 2009
@@ -38,6 +38,7 @@
  import com.google.gwt.resources.css.ast.CssProperty.ListValue;
  import com.google.gwt.resources.css.ast.CssProperty.NumberValue;
  import com.google.gwt.resources.css.ast.CssProperty.StringValue;
+import com.google.gwt.resources.css.ast.CssProperty.TokenValue;
  import com.google.gwt.resources.css.ast.CssProperty.Value;

  import org.w3c.css.sac.AttributeCondition;
@@ -916,7 +917,7 @@
        case LexicalUnit.SAC_URI:
          return new IdentValue("url(" + value.getStringValue() + ")");
        case LexicalUnit.SAC_OPERATOR_COMMA:
-        return new IdentValue(",");
+        return new TokenValue(",");
        case LexicalUnit.SAC_COUNTER_FUNCTION:
        case LexicalUnit.SAC_COUNTERS_FUNCTION:
        case LexicalUnit.SAC_FUNCTION: {
@@ -971,25 +972,25 @@
        case LexicalUnit.SAC_INHERIT:
          return new IdentValue("inherit");
        case LexicalUnit.SAC_OPERATOR_EXP:
-        return new IdentValue("^");
+        return new TokenValue("^");
        case LexicalUnit.SAC_OPERATOR_GE:
-        return new IdentValue(">=");
+        return new TokenValue(">=");
        case LexicalUnit.SAC_OPERATOR_GT:
-        return new IdentValue(">");
+        return new TokenValue(">");
        case LexicalUnit.SAC_OPERATOR_LE:
-        return new IdentValue("<=");
+        return new TokenValue("<=");
        case LexicalUnit.SAC_OPERATOR_LT:
-        return new IdentValue("<");
+        return new TokenValue("<");
        case LexicalUnit.SAC_OPERATOR_MINUS:
-        return new IdentValue("-");
+        return new TokenValue("-");
        case LexicalUnit.SAC_OPERATOR_MOD:
-        return new IdentValue("%");
+        return new TokenValue("%");
        case LexicalUnit.SAC_OPERATOR_MULTIPLY:
-        return new IdentValue("*");
+        return new TokenValue("*");
        case LexicalUnit.SAC_OPERATOR_PLUS:
-        return new IdentValue("+");
+        return new TokenValue("+");
        case LexicalUnit.SAC_OPERATOR_SLASH:
-        return new IdentValue("/");
+        return new TokenValue("/");
        case LexicalUnit.SAC_OPERATOR_TILDE:
          return new IdentValue("~");
        case LexicalUnit.SAC_RECT_FUNCTION: {
=======================================
---  
/branches/snapshot-2009.10.23-r6446/user/src/com/google/gwt/resources/css/ast/CssProperty.java
   
Tue Mar 17 11:59:31 2009
+++  
/branches/snapshot-2009.10.23-r6446/user/src/com/google/gwt/resources/css/ast/CssProperty.java
   
Fri Oct 30 10:59:29 2009
@@ -40,6 +40,7 @@
        this.suffix = suffix;
      }

+    @Override
      public String getExpression() {
        return path.replace(".", "().") + "() + \"" +  
Generator.escape(suffix)
            + "\"";
@@ -58,6 +59,7 @@
        return this;
      }

+    @Override
      public String toCss() {
        return "value(\"" + path + "\""
            + (suffix == null ? "" : (", \"" + suffix + "\"")) + ")";
@@ -74,6 +76,7 @@
        this.expression = expression;
      }

+    @Override
      public String getExpression() {
        return expression;
      }
@@ -83,6 +86,7 @@
        return this;
      }

+    @Override
      public String toCss() {
        return "/* Java expression */";
      }
@@ -106,6 +110,7 @@
        this.ident = ident;
      }

+    @Override
      public String getExpression() {
        return '"' + Generator.escape(ident) + '"';
      }
@@ -119,6 +124,7 @@
        return this;
      }

+    @Override
      public String toCss() {
        return ident;
      }
@@ -138,13 +144,20 @@
        this(Arrays.asList(values));
      }

+    @Override
      public String getExpression() {
        StringBuilder toReturn = new StringBuilder();
+      boolean first = true;
        for (Iterator<Value> i = values.iterator(); i.hasNext();) {
-        toReturn.append(i.next().getExpression());
+        Value value = i.next();
+        if (!first && value.isSpaceRequired()) {
+          toReturn.append("\" \" +");
+        }
+        toReturn.append(value.getExpression());
          if (i.hasNext()) {
-          toReturn.append("+ \" \" +");
-        }
+          toReturn.append("+ ");
+        }
+        first = false;
        }
        return toReturn.toString();
      }
@@ -158,6 +171,7 @@
        return this;
      }

+    @Override
      public String toCss() {
        StringBuilder sb = new StringBuilder();
        for (Value v : values) {
@@ -204,6 +218,7 @@
        }
      }

+    @Override
      public String getExpression() {
        return expression;
      }
@@ -221,6 +236,7 @@
        return this;
      }

+    @Override
      public String toCss() {
        return css;
      }
@@ -275,6 +291,7 @@
        this.value = value;
      }

+    @Override
      public String getExpression() {
        // The escaped CSS content has to be escaped to be a valid Java  
literal
        return "\"" + Generator.escape(toCss()) + "\"";
@@ -292,10 +309,26 @@
      /**
       * Returns a escaped, quoted representation of the underlying value.
       */
+    @Override
      public String toCss() {
        return '"' + escapeValue(value, true) + '"';
      }
    }
+
+  /**
+   * Represents a token in the CSS source.
+   */
+  public static class TokenValue extends IdentValue {
+
+    public TokenValue(String token) {
+      super(token);
+    }
+
+    @Override
+    public boolean isSpaceRequired() {
+      return false;
+    }
+  }

    /**
     * An abstract encapsulation of property values in GWT CSS.
@@ -325,6 +358,10 @@
      public NumberValue isNumberValue() {
        return null;
      }
+
+    public boolean isSpaceRequired() {
+      return true;
+    }

      public StringValue isStringValue() {
        return null;

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to