diff options
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; } - } |