Author: etnu
Date: Wed Mar 12 02:31:04 2008
New Revision: 636263

URL: http://svn.apache.org/viewvc?rev=636263&view=rev
Log:
Fix for SHINDIG-70. Also fixed a bug that was manifesting when message bundle 
urls are empty, and improved end-user error display in GadgetRenderer.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java?rev=636263&r1=636262&r2=636263&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
 Wed Mar 12 02:31:04 2008
@@ -118,7 +118,12 @@
       bundle = MessageBundle.EMPTY;
       dir = "ltr";
     } else {
-      bundle = getBundle(localeSpec, context);
+      if (localeSpec.getMessages() != null &&
+          localeSpec.getMessages().toString().length() > 0) {
+        bundle = getBundle(localeSpec, context);
+      } else {
+        bundle = MessageBundle.EMPTY;
+      }
       dir = localeSpec.getLanguageDirection();
     }
 

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java?rev=636263&r1=636262&r2=636263&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java
 Wed Mar 12 02:31:04 2008
@@ -28,6 +28,7 @@
 import org.apache.shindig.gadgets.JsLibrary;
 import org.apache.shindig.gadgets.SyndicatorConfig;
 import org.apache.shindig.gadgets.spec.Feature;
+import org.apache.shindig.gadgets.spec.LocaleSpec;
 import org.apache.shindig.gadgets.spec.MessageBundle;
 import org.apache.shindig.gadgets.spec.ModulePrefs;
 import org.apache.shindig.gadgets.spec.View;
@@ -101,6 +102,11 @@
       outputGadget(gadget);
     } catch (GadgetException e) {
       outputErrors(e);
+    } catch (Exception e) {
+      logger.log(Level.WARNING, "Unhandled exception ", e);
+      outputErrors(new GadgetException(
+          GadgetException.Code.INTERNAL_SERVER_ERROR,
+          "There was a problem rendering the gadget: " + e.getMessage()));
     }
   }
 
@@ -147,13 +153,23 @@
 
     // TODO: Substitute gadgets.skins values in here.
     String boilerPlate
-        = "<style type=\"text/css\">" +
+        = "<html><head><style type=\"text/css\">" +
           "body,td,div,span,p{font-family:arial,sans-serif;}" +
           "a {color:#0000cc;}a:visited {color:#551a8b;}" +
           "a:active {color:#ff0000;}" +
           "body{margin: 0px;padding: 0px;background-color:white;}" +
-          "</style></head></body>";
+          "</style></head>";
     markup.append(boilerPlate);
+    LocaleSpec localeSpec = gadget.getSpec().getModulePrefs().getLocale(
+        gadget.getContext().getLocale());
+    if (localeSpec == null) {
+      markup.append("<body>");
+    } else {
+      markup.append("<body dir=\"")
+            .append(localeSpec.getLanguageDirection())
+            .append("\">");
+    }
+
     StringBuilder externJs = new StringBuilder();
     StringBuilder inlineJs = new StringBuilder();
     String externFmt = "<script src=\"%s\"></script>";


Reply via email to