aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Englund <marc@vaadin.com>2012-10-09 16:55:25 +0300
committerArtur Signell <artur@vaadin.com>2012-10-10 09:09:06 +0300
commitce56841cce14cd4015b1840e5330de14ac2e15a0 (patch)
treeeb5efad00d9fdab2dfc388b3a4d69310fe722871
parent54b1050799e25a420fdc3982f5c224126501606f (diff)
downloadvaadin-framework-ce56841cce14cd4015b1840e5330de14ac2e15a0.tar.gz
vaadin-framework-ce56841cce14cd4015b1840e5330de14ac2e15a0.zip
Fixed Sass resolver to work with themes both unpacked and in jar
Change-Id: I9978e311429248f3ffe868cdf583ee22f047cf6c
-rw-r--r--WebContent/VAADIN/themes/chameleon/chameleon.scss2
-rw-r--r--WebContent/VAADIN/themes/liferay/liferay.scss2
-rw-r--r--WebContent/VAADIN/themes/reindeer/reindeer.scss2
-rw-r--r--WebContent/VAADIN/themes/runo/runo.scss2
-rw-r--r--theme-compiler/src/com/vaadin/sass/resolver/VaadinResolver.java27
5 files changed, 21 insertions, 14 deletions
diff --git a/WebContent/VAADIN/themes/chameleon/chameleon.scss b/WebContent/VAADIN/themes/chameleon/chameleon.scss
index 8a24a73cbf..e510e27d70 100644
--- a/WebContent/VAADIN/themes/chameleon/chameleon.scss
+++ b/WebContent/VAADIN/themes/chameleon/chameleon.scss
@@ -1,4 +1,4 @@
-@import "../base/base.scss";
+@import "base.scss";
@import "common/common.scss";
@import "components/components.scss";
@import "compound/compound.scss";
diff --git a/WebContent/VAADIN/themes/liferay/liferay.scss b/WebContent/VAADIN/themes/liferay/liferay.scss
index 7ec561ffc9..9491740268 100644
--- a/WebContent/VAADIN/themes/liferay/liferay.scss
+++ b/WebContent/VAADIN/themes/liferay/liferay.scss
@@ -1,4 +1,4 @@
-@import "../base/base.scss";
+@import "base.scss";
@import "accordion/accordion.scss";
@import "button/button.scss";
diff --git a/WebContent/VAADIN/themes/reindeer/reindeer.scss b/WebContent/VAADIN/themes/reindeer/reindeer.scss
index e102e99bc5..52989dc487 100644
--- a/WebContent/VAADIN/themes/reindeer/reindeer.scss
+++ b/WebContent/VAADIN/themes/reindeer/reindeer.scss
@@ -1,4 +1,4 @@
-@import "../base/base.scss";
+@import "base.scss";
// common between others for now for backwards compatibility
@import "accordion/accordion.scss";
diff --git a/WebContent/VAADIN/themes/runo/runo.scss b/WebContent/VAADIN/themes/runo/runo.scss
index 6db7c335cb..aca94d19d7 100644
--- a/WebContent/VAADIN/themes/runo/runo.scss
+++ b/WebContent/VAADIN/themes/runo/runo.scss
@@ -1,4 +1,4 @@
-@import "../base/base.scss";
+@import "base.scss";
@import "absolutelayout/absolutelayout.scss";
@import "accordion/accordion.scss";
diff --git a/theme-compiler/src/com/vaadin/sass/resolver/VaadinResolver.java b/theme-compiler/src/com/vaadin/sass/resolver/VaadinResolver.java
index 93fdf6bfec..acf22a3168 100644
--- a/theme-compiler/src/com/vaadin/sass/resolver/VaadinResolver.java
+++ b/theme-compiler/src/com/vaadin/sass/resolver/VaadinResolver.java
@@ -1,24 +1,32 @@
package com.vaadin.sass.resolver;
+import java.io.File;
+
import org.w3c.css.sac.InputSource;
public class VaadinResolver implements ScssStylesheetResolver {
@Override
public InputSource resolve(String identifier) {
- String ext = ".scss";
if (identifier.endsWith(".css")) {
- ext = ".css";
+ ScssStylesheetResolver resolver = new FilesystemResolver();
+ return resolver.resolve(identifier);
}
- // 'normalize' identifier to use in themeFile
- String fileName = identifier;
- if (identifier.endsWith(ext)) {
+ if (identifier.endsWith(".scss")) {
identifier = identifier.substring(0,
- identifier.length() - ext.length());
+ identifier.length() - ".scss".length());
+ }
+ String fileName = identifier + ".scss";
+
+ String name = new File(identifier).getName();
+ File parent = new File(identifier).getParentFile();
+ if (parent != null) {
+ parent = parent.getParentFile();
}
- // also look here
- String themeFile = "VAADIN/themes/" + identifier + "/" + fileName;
+
+ String themeFile = (parent == null ? "" : parent + "/") + name + "/"
+ + name + ".scss";
// first plain file
ScssStylesheetResolver resolver = new FilesystemResolver();
@@ -37,10 +45,9 @@ public class VaadinResolver implements ScssStylesheetResolver {
}
if (source == null) {
// then try theme via classloader
- source = resolver.resolve(themeFile);
+ source = resolver.resolve("VAADIN/themes/" + themeFile);
}
return source;
}
-
}