diff options
author | Marc Englund <marc@vaadin.com> | 2012-10-09 16:55:25 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2012-10-10 09:09:06 +0300 |
commit | ce56841cce14cd4015b1840e5330de14ac2e15a0 (patch) | |
tree | eb5efad00d9fdab2dfc388b3a4d69310fe722871 | |
parent | 54b1050799e25a420fdc3982f5c224126501606f (diff) | |
download | vaadin-framework-ce56841cce14cd4015b1840e5330de14ac2e15a0.tar.gz vaadin-framework-ce56841cce14cd4015b1840e5330de14ac2e15a0.zip |
Fixed Sass resolver to work with themes both unpacked and in jar
Change-Id: I9978e311429248f3ffe868cdf583ee22f047cf6c
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; } - } |