]> source.dussan.org Git - vaadin-framework.git/commitdiff
Enable finding theme resources without a Callback instance
authorLeif Åstrand <leif@vaadin.com>
Tue, 20 Dec 2011 14:18:46 +0000 (16:18 +0200)
committerLeif Åstrand <leif@vaadin.com>
Tue, 20 Dec 2011 14:18:56 +0000 (16:18 +0200)
src/com/vaadin/terminal/gwt/server/AbstractApplicationPortlet.java
src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java
src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java
src/com/vaadin/terminal/gwt/server/CommunicationManager.java
src/com/vaadin/terminal/gwt/server/PortletCommunicationManager.java

index 08b608db0d6c40dbe761123b0703292b075450b6..a28b9e53ecfea8cdca63e8032ca9d07c5b73ec57 100644 (file)
@@ -188,14 +188,6 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
                     (MimeResponse) portletResponse, cap, msg, details,
                     outOfSyncURL);
         }
-
-        public InputStream getThemeResourceAsStream(String themeName,
-                String resource) throws IOException {
-            return portlet.getPortletContext().getResourceAsStream(
-                    "/" + AbstractApplicationPortlet.THEME_DIRECTORY_PATH
-                            + themeName + "/" + resource);
-        }
-
     }
 
     /**
index afdaabcee0a7bc27fd6048608607a79205c70ec4..b2d3a7f89f2ed4c568db9ac9fabe48fa23030b9d 100644 (file)
@@ -81,14 +81,6 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
                             .getHttpServletResponse(), cap, msg, details,
                     outOfSyncURL);
         }
-
-        public InputStream getThemeResourceAsStream(String themeName,
-                String resource) throws IOException {
-            return servlet.getServletContext().getResourceAsStream(
-                    "/" + AbstractApplicationServlet.THEME_DIRECTORY_PATH
-                            + themeName + "/" + resource);
-        }
-
     }
 
     // TODO Move some (all?) of the constants to a separate interface (shared
index a2f3fb72dd0b7fb794038cf6c6d9e1d904310a5b..71a783f1254eef305e86487b9b16bcb2324d060a 100644 (file)
@@ -106,10 +106,6 @@ public abstract class AbstractCommunicationManager implements
         public void criticalNotification(WrappedRequest request,
                 WrappedResponse response, String cap, String msg,
                 String details, String outOfSyncURL) throws IOException;
-
-        public InputStream getThemeResourceAsStream(String themeName,
-                String resource) throws IOException;
-
     }
 
     static class UploadInterruptedException extends Exception {
@@ -714,7 +710,7 @@ public abstract class AbstractCommunicationManager implements
             outWriter.print(getSecurityKeyUIDL(request));
         }
 
-        writeUidlResponce(callback, repaintAll, outWriter, root, analyzeLayouts);
+        writeUidlResponce(repaintAll, outWriter, root, analyzeLayouts);
 
         closeJsonMessage(outWriter);
 
@@ -757,7 +753,7 @@ public abstract class AbstractCommunicationManager implements
         return seckey;
     }
 
-    public void writeUidlResponce(Callback callback, boolean repaintAll,
+    public void writeUidlResponce(boolean repaintAll,
             final PrintWriter outWriter, Root root, boolean analyzeLayouts)
             throws PaintException {
         outWriter.print("\"changes\":[");
@@ -970,8 +966,7 @@ public abstract class AbstractCommunicationManager implements
             final String resource = (String) i.next();
             InputStream is = null;
             try {
-                is = callback
-                        .getThemeResourceAsStream(getTheme(root), resource);
+                is = getThemeResourceAsStream(root, getTheme(root), resource);
             } catch (final Exception e) {
                 // FIXME: Handle exception
                 logger.log(Level.FINER, "Failed to get theme resource stream.",
@@ -1037,12 +1032,15 @@ public abstract class AbstractCommunicationManager implements
         }
     }
 
+    protected abstract InputStream getThemeResourceAsStream(Root root,
+            String themeName, String resource);
+
     private int getTimeoutInterval() {
         return maxInactiveInterval;
     }
 
     private String getTheme(Root root) {
-        String themeName = null;// window.getTheme();
+        String themeName = root.getApplication().getThemeForRoot(root);
         String requestThemeName = getRequestTheme();
 
         if (requestThemeName != null) {
@@ -2041,7 +2039,7 @@ public abstract class AbstractCommunicationManager implements
         if (isXSRFEnabled(root.getApplication())) {
             pWriter.print(getSecurityKeyUIDL(request));
         }
-        writeUidlResponce(null, true, pWriter, root, false);
+        writeUidlResponce(true, pWriter, root, false);
         pWriter.print("}");
         String initialUIDL = sWriter.toString();
         return initialUIDL;
index 2e908ae12a837de6c52e9f59adf95c21ef9d21da..05b852445c9088b455483d1e1bdae2d9c04a78f1 100644 (file)
@@ -5,11 +5,14 @@
 package com.vaadin.terminal.gwt.server;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
+import javax.servlet.ServletContext;
+
 import com.vaadin.Application;
 import com.vaadin.terminal.PaintException;
 import com.vaadin.terminal.Paintable;
@@ -238,4 +241,16 @@ public class CommunicationManager extends AbstractCommunicationManager {
             }
         };
     }
+
+    @Override
+    protected InputStream getThemeResourceAsStream(Root root, String themeName,
+            String resource) {
+        WebApplicationContext context = (WebApplicationContext) root
+                .getApplication().getContext();
+        ServletContext servletContext = context.getHttpSession()
+                .getServletContext();
+        return servletContext.getResourceAsStream("/"
+                + AbstractApplicationServlet.THEME_DIRECTORY_PATH + themeName
+                + "/" + resource);
+    }
 }
index 61a9dbc821cc9ab12e99b25f8916425b9b3af214..8f999ade5ab749e58af7607f135dc95fac8d0d39 100644 (file)
@@ -4,10 +4,12 @@
 package com.vaadin.terminal.gwt.server;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
 
 import javax.portlet.MimeResponse;
+import javax.portlet.PortletContext;
 import javax.portlet.PortletRequest;
 import javax.portlet.PortletResponse;
 import javax.portlet.RenderRequest;
@@ -230,4 +232,16 @@ public class PortletCommunicationManager extends AbstractCommunicationManager {
 
     }
 
+    @Override
+    protected InputStream getThemeResourceAsStream(Root root, String themeName,
+            String resource) {
+        PortletApplicationContext2 context = (PortletApplicationContext2) root
+                .getApplication().getContext();
+        PortletContext portletContext = context.getPortletSession()
+                .getPortletContext();
+        return portletContext.getResourceAsStream("/"
+                + AbstractApplicationPortlet.THEME_DIRECTORY_PATH + themeName
+                + "/" + resource);
+    }
+
 }