aboutsummaryrefslogtreecommitdiffstats
path: root/theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java
diff options
context:
space:
mode:
authorHaijian Wang <haijian@vaadin.com>2013-01-08 16:29:18 +0200
committerHaijian Wang <haijian@vaadin.com>2013-01-09 13:27:49 +0200
commit2cc7ad1cd43132fce201aa21d2a31fd56f093815 (patch)
treed74a99dd51cd2d661b3fb2d78593adb251454025 /theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java
parent97b03bae695663ee4924d82fa97af54f89a841ae (diff)
downloadvaadin-framework-2cc7ad1cd43132fce201aa21d2a31fd56f093815.tar.gz
vaadin-framework-2cc7ad1cd43132fce201aa21d2a31fd56f093815.zip
Supports @keyframes, related to Ticket #10000
Change-Id: Ic65defdccb4d0aa8f54aa941acde21554f0bf989
Diffstat (limited to 'theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java')
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java
new file mode 100644
index 0000000000..b9984bc647
--- /dev/null
+++ b/theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java
@@ -0,0 +1,47 @@
+package com.vaadin.sass.internal.tree;
+
+import java.util.ArrayList;
+import java.util.regex.Pattern;
+
+import com.vaadin.sass.internal.ScssStylesheet;
+
+public class KeyframesNode extends Node implements IVariableNode {
+ private String keyframeName;
+ private String animationName;
+
+ public KeyframesNode(String keyframeName, String animationName) {
+ this.keyframeName = keyframeName;
+ this.animationName = animationName;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder string = new StringBuilder();
+ string.append(keyframeName).append(" ").append(animationName)
+ .append(" {\n");
+ for (Node child : children) {
+ string.append("\t\t").append(child.toString()).append("\n");
+ }
+ string.append("\t}");
+ return string.toString();
+ }
+
+ @Override
+ public void traverse() {
+ replaceVariables(ScssStylesheet.getVariables());
+ }
+
+ @Override
+ public void replaceVariables(ArrayList<VariableNode> variables) {
+ for (final VariableNode node : variables) {
+ String interpolation = "#{$" + node.getName() + "}";
+ if (animationName != null && animationName.contains(interpolation)) {
+ if (animationName.contains(interpolation)) {
+ animationName = animationName.replaceAll(Pattern
+ .quote(interpolation), node.getExpr().toString());
+ }
+ }
+ }
+ }
+
+}