diff options
author | Haijian Wang <haijian@vaadin.com> | 2013-01-08 16:29:18 +0200 |
---|---|---|
committer | Haijian Wang <haijian@vaadin.com> | 2013-01-09 13:27:49 +0200 |
commit | 2cc7ad1cd43132fce201aa21d2a31fd56f093815 (patch) | |
tree | d74a99dd51cd2d661b3fb2d78593adb251454025 /theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java | |
parent | 97b03bae695663ee4924d82fa97af54f89a841ae (diff) | |
download | vaadin-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.java | 47 |
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()); + } + } + } + } + +} |