You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2013/05/30 08:28:49 UTC

svn commit: r1487763 - in /wookie/trunk/src: org/apache/wookie/controller/WidgetInstancesController.java org/apache/wookie/helpers/WidgetInstanceHelper.java widgetserver.properties

Author: scottbw
Date: Thu May 30 06:28:48 2013
New Revision: 1487763

URL: http://svn.apache.org/r1487763
Log:
Made default height/width attributes configurable. See WOOKIE-401

Modified:
    wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
    wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceHelper.java
    wookie/trunk/src/widgetserver.properties

Modified: wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
URL: http://svn.apache.org/viewvc/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java?rev=1487763&r1=1487762&r2=1487763&view=diff
==============================================================================
--- wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java (original)
+++ wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java Thu May 30 06:28:48 2013
@@ -136,12 +136,25 @@ public class WidgetInstancesController e
 	    response.setStatus(HttpServletResponse.SC_OK);
 
 	    //
+	    // Use default sizes where none provided?
+	    //
+	    boolean useDefaultSizes = true;
+	    Configuration properties = (Configuration) request.getSession().getServletContext().getAttribute("properties"); //$NON-NLS-1$
+	    if (properties.containsKey("widget.use_default_sizes")){
+	    	try {
+				useDefaultSizes = properties.getBoolean("widget.use_default_sizes");
+			} catch (Exception e) {
+				useDefaultSizes = true;
+			}
+	    }
+	    
+	    //
 	    // Return XML or JSON 
 	    //
 	    switch(format(request)){
-	    case XML: returnXml(WidgetInstanceHelper.createXMLWidgetInstanceDocument(instance, url, locale), response); break;
-	    case JSON: returnJson(WidgetInstanceHelper.toJson(instance, url, locale), response); break;
-	    default: returnXml(WidgetInstanceHelper.createXMLWidgetInstanceDocument(instance, url, locale), response); break;
+	    case XML: returnXml(WidgetInstanceHelper.createXMLWidgetInstanceDocument(instance, url, locale, useDefaultSizes), response); break;
+	    case JSON: returnJson(WidgetInstanceHelper.toJson(instance, url, locale, useDefaultSizes), response); break;
+	    default: returnXml(WidgetInstanceHelper.createXMLWidgetInstanceDocument(instance, url, locale, useDefaultSizes), response); break;
 	    }
 
 	  }
@@ -271,10 +284,23 @@ public class WidgetInstancesController e
 			response.setStatus(HttpServletResponse.SC_NOT_FOUND);	
 		}
 		
+	    //
+	    // Use default sizes where none provided?
+	    //
+	    boolean useDefaultSizes = true;
+	    Configuration properties = (Configuration) request.getSession().getServletContext().getAttribute("properties"); //$NON-NLS-1$
+	    if (properties.containsKey("widget.use_default_sizes")){
+	    	try {
+				useDefaultSizes = properties.getBoolean("widget.use_default_sizes");
+			} catch (Exception e) {
+				useDefaultSizes = true;
+			}
+	    }
+		
 		String url = getUrl(request, instance);
 		response.setContentType(CONTENT_TYPE);
 		PrintWriter out = response.getWriter();
-		out.println(WidgetInstanceHelper.createXMLWidgetInstanceDocument(instance, url, locale));
+		out.println(WidgetInstanceHelper.createXMLWidgetInstanceDocument(instance, url, locale, useDefaultSizes));
 	}  
 	
 	/**

Modified: wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceHelper.java
URL: http://svn.apache.org/viewvc/wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceHelper.java?rev=1487763&r1=1487762&r2=1487763&view=diff
==============================================================================
--- wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceHelper.java (original)
+++ wookie/trunk/src/org/apache/wookie/helpers/WidgetInstanceHelper.java Thu May 30 06:28:48 2013
@@ -37,14 +37,21 @@ public class WidgetInstanceHelper {
 	 * @param locale the locale of the widget instance
 	 * @return an XML representation of the Widget Instance as a String
 	 */
-	public static String createXMLWidgetInstanceDocument(IWidgetInstance instance, String url, String locale){
+	public static String createXMLWidgetInstanceDocument(IWidgetInstance instance, String url, String locale, boolean useDefaultSizes){
 		String xml = XMLDECLARATION;
 		IWidget widget = instance.getWidget();
 		
+
+		
+		String width = null;
+		String height = null;
+		
 		// Return a default width and height where the original value is either not provided
 		// or of an invalid range (<0)
-		String width = String.valueOf(IW3CXMLConfiguration.DEFAULT_WIDTH_LARGE);
-		String height = String.valueOf(IW3CXMLConfiguration.DEFAULT_HEIGHT_LARGE);
+		if (useDefaultSizes){
+			width = String.valueOf(IW3CXMLConfiguration.DEFAULT_WIDTH_LARGE);
+			height = String.valueOf(IW3CXMLConfiguration.DEFAULT_HEIGHT_LARGE);
+		}
 		if (widget.getWidth()!=null && widget.getWidth()>0) width = widget.getWidth().toString();
 		if (widget.getHeight()!=null && widget.getHeight()>0) height = widget.getHeight().toString();
 				
@@ -52,17 +59,23 @@ public class WidgetInstanceHelper {
 		xml += "\t<url>"+url+"</url>"; //$NON-NLS-1$ //$NON-NLS-2$
 		xml += "\t<identifier>"+instance.getIdKey()+"</identifier>\n"; //$NON-NLS-1$ //$NON-NLS-2$
 		xml += "\t<title>"+StringEscapeUtils.escapeXml(widget.getLocalName(locale))+"</title>\n"; //$NON-NLS-1$ //$NON-NLS-2$
-		xml += "\t<height>"+height+"</height>\n"; //$NON-NLS-1$ //$NON-NLS-2$
-		xml += "\t<width>"+width+"</width>\n"; //$NON-NLS-1$ //$NON-NLS-2$
+		if (height != null) xml += "\t<height>"+height+"</height>\n"; //$NON-NLS-1$ //$NON-NLS-2$
+		if (width != null) xml += "\t<width>"+width+"</width>\n"; //$NON-NLS-1$ //$NON-NLS-2$
 		xml += "</widgetdata>"; //$NON-NLS-1$
 		
 		return xml;
 	}
 	
-  public static String toJson(IWidgetInstance instance, String url, String locale) {
+  public static String toJson(IWidgetInstance instance, String url, String locale, boolean useDefaultSizes) {
     IWidget widget = instance.getWidget();
-    String width = String.valueOf(IW3CXMLConfiguration.DEFAULT_WIDTH_LARGE);
-    String height = String.valueOf(IW3CXMLConfiguration.DEFAULT_HEIGHT_LARGE);
+    
+    String width = null;
+    String height = null;
+    
+    if (useDefaultSizes){
+    	width = String.valueOf(IW3CXMLConfiguration.DEFAULT_WIDTH_LARGE);
+    	height = String.valueOf(IW3CXMLConfiguration.DEFAULT_HEIGHT_LARGE);
+    }
     if (widget.getWidth() != null && widget.getWidth() > 0)
       width = widget.getWidth().toString();
     if (widget.getHeight() != null && widget.getHeight() > 0)
@@ -72,8 +85,8 @@ public class WidgetInstanceHelper {
       json.put("url", url);
       json.put("identifier", instance.getIdKey());
       json.put("title", widget.getLocalName(locale));
-      json.put("height", height);
-      json.put("width", width);
+      if (height != null) json.put("height", height);
+      if (width != null) json.put("width", width);
     } catch (JSONException e) {
       logger.error("Problem rendering instance using JSON",e);
     }

Modified: wookie/trunk/src/widgetserver.properties
URL: http://svn.apache.org/viewvc/wookie/trunk/src/widgetserver.properties?rev=1487763&r1=1487762&r2=1487763&view=diff
==============================================================================
--- wookie/trunk/src/widgetserver.properties (original)
+++ wookie/trunk/src/widgetserver.properties Thu May 30 06:28:48 2013
@@ -6,6 +6,13 @@ widget.web.page=http://wookie.apache.org
 widget.debug=true
 
 #######################################################################
+# When set to true, Wookie will supply default values for height and 
+# width for widgets where these aren't supplied in the widget metadata. 
+# Set to false it will simply omit height and or width attributes when 
+# returning widget instance metadata from the REST API
+widget.use_default_sizes=true
+
+#######################################################################
 # By default Wookie will use the same scheme/host/port it is being
 # served from when generating URLs for widgets. By changing these
 # settings you can override this, for example when deploying Wookie