From 457afbaeda4373541a634b12d195dd847948f1e2 Mon Sep 17 00:00:00 2001 From: John Ahlroos Date: Thu, 18 Apr 2013 12:37:06 +0300 Subject: Ensure addon css styles are before scss styles in addons.scss #11390 Change-Id: I3737a94f076917cd896bd90e2936a5b752ccd801 --- .../themeutils/SASSAddonImportFileCreator.java | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'client-compiler') diff --git a/client-compiler/src/com/vaadin/server/themeutils/SASSAddonImportFileCreator.java b/client-compiler/src/com/vaadin/server/themeutils/SASSAddonImportFileCreator.java index 98ce639d16..5cec9bd9d5 100644 --- a/client-compiler/src/com/vaadin/server/themeutils/SASSAddonImportFileCreator.java +++ b/client-compiler/src/com/vaadin/server/themeutils/SASSAddonImportFileCreator.java @@ -21,6 +21,10 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.net.URL; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; import java.util.Map; import com.vaadin.server.widgetsetutils.ClassPathExplorer; @@ -89,8 +93,29 @@ public class SASSAddonImportFileCreator { printStream.println(); Map addonThemes = info.getAddonStyles(); - for (String path : addonThemes.keySet()) { + + // Sort addon styles so that CSS imports are first and SCSS import + // last + List paths = new ArrayList(addonThemes.keySet()); + Collections.sort(paths, new Comparator() { + + @Override + public int compare(String path1, String path2) { + if (path1.toLowerCase().endsWith(".css") + && path2.toLowerCase().endsWith(".scss")) { + return -1; + } + if (path1.toLowerCase().endsWith(".scss") + && path2.toLowerCase().endsWith(".css")) { + return 1; + } + return 0; + } + }); + + for (String path : paths) { addImport(printStream, path, addonThemes.get(path)); + printStream.println(); } } catch (FileNotFoundException e) { -- cgit v1.2.3