From 15c9eb5b393ec08aa9b3be849dfb394916cd5535 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 18 Jun 2013 21:22:09 +0300 Subject: Enable using @Stylesheet with vaadin:// (#9934) Change-Id: I895fad31ef5b31a395cea95e64d6b183d718056f --- client/src/com/vaadin/client/ApplicationConnection.java | 8 ++++++++ server/src/com/vaadin/annotations/StyleSheet.java | 5 +++++ shared/src/com/vaadin/shared/ApplicationConstants.java | 1 + 3 files changed, 14 insertions(+) diff --git a/client/src/com/vaadin/client/ApplicationConnection.java b/client/src/com/vaadin/client/ApplicationConnection.java index d873cc8dc6..236417f23b 100644 --- a/client/src/com/vaadin/client/ApplicationConnection.java +++ b/client/src/com/vaadin/client/ApplicationConnection.java @@ -2940,6 +2940,14 @@ public class ApplicationConnection { uidlUri = serviceUrl + relativeUrl; } } + if (uidlUri.startsWith(ApplicationConstants.VAADIN_PROTOCOL_PREFIX)) { + final String vaadinUri = configuration.getVaadinDirUrl(); + String relativeUrl = uidlUri + .substring(ApplicationConstants.VAADIN_PROTOCOL_PREFIX + .length()); + uidlUri = vaadinUri + relativeUrl; + } + return uidlUri; } diff --git a/server/src/com/vaadin/annotations/StyleSheet.java b/server/src/com/vaadin/annotations/StyleSheet.java index e06140fcd5..2e15d9481c 100644 --- a/server/src/com/vaadin/annotations/StyleSheet.java +++ b/server/src/com/vaadin/annotations/StyleSheet.java @@ -32,6 +32,11 @@ import com.vaadin.server.ClientConnector; * Relative urls are mapped to APP/PUBLISHED/[url] which are by default served * from the classpath relative to the class where the annotation is defined. *

+ * Special Vaadin urls are also supported. The most useful is vaadin:// which + * maps to the location of the automatically published VAADIN folder. Using the + * VAADIN folder and vaadin:// you can publish stylesheets which use images or + * other files with relative paths. + *

* Example: {@code @StyleSheet( "http://host.com/file1.css", "file2.css"})} on * the class com.example.MyConnector would load the file * http://host.com/file1.css as is and file2.css from /com/example/file2.css on diff --git a/shared/src/com/vaadin/shared/ApplicationConstants.java b/shared/src/com/vaadin/shared/ApplicationConstants.java index 15b81cd9a4..d7de435735 100644 --- a/shared/src/com/vaadin/shared/ApplicationConstants.java +++ b/shared/src/com/vaadin/shared/ApplicationConstants.java @@ -34,6 +34,7 @@ public class ApplicationConstants implements Serializable { + "PUBLISHED"; public static final String APP_PROTOCOL_PREFIX = "app://"; + public static final String VAADIN_PROTOCOL_PREFIX = "vaadin://"; public static final String PUBLISHED_PROTOCOL_NAME = "published"; public static final String PUBLISHED_PROTOCOL_PREFIX = PUBLISHED_PROTOCOL_NAME + "://"; -- cgit v1.2.3