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 2011/06/07 18:44:48 UTC

svn commit: r1133092 - in /incubator/wookie/trunk: parser/java/src/org/apache/wookie/w3c/ parser/java/src/org/apache/wookie/w3c/impl/ src/org/apache/wookie/util/gadgets/

Author: scottbw
Date: Tue Jun  7 16:44:48 2011
New Revision: 1133092

URL: http://svn.apache.org/viewvc?rev=1133092&view=rev
Log:
Added defaultLocale attribute to the W3C parser module, and changed localization calls to use it. See WOOKIE-211.

Modified:
    incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/IW3CXMLConfiguration.java
    incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java
    incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java
    incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java

Modified: incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/IW3CXMLConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/IW3CXMLConfiguration.java?rev=1133092&r1=1133091&r2=1133092&view=diff
==============================================================================
--- incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/IW3CXMLConfiguration.java (original)
+++ incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/IW3CXMLConfiguration.java Tue Jun  7 16:44:48 2011
@@ -20,6 +20,7 @@ package org.apache.wookie.w3c;
 public interface IW3CXMLConfiguration {
 	
 	public static final String WIDGET_ELEMENT = "widget";
+	  public static final String DEFAULTLOCALE_ATTRIBUTE = "defaultlocale"; // widget
 		public static final String ID_ATTRIBUTE = "id";  // widget
 		public static final String VERSION_ATTRIBUTE = "version"; // widget
 		public static final String MODE_ATTRIBUTE = "viewmodes"; //widget

Modified: incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java?rev=1133092&r1=1133091&r2=1133092&view=diff
==============================================================================
--- incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java (original)
+++ incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java Tue Jun  7 16:44:48 2011
@@ -24,6 +24,12 @@ import java.util.List;
  */
 public interface W3CWidget extends ILocalizedEntity{
 
+  /**
+   * Get the default locale
+   * @return a locale string, or Null if no default locale is specified
+   */
+  public String getDefaultLocale();
+  
 	/**
 	 * Get the list of access request entities for the widget
 	 */

Modified: incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java?rev=1133092&r1=1133091&r2=1133092&view=diff
==============================================================================
--- incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java (original)
+++ incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java Tue Jun  7 16:44:48 2011
@@ -55,6 +55,7 @@ public class WidgetManifestModel extends
 	
 	static Logger fLogger = Logger.getLogger(WidgetManifestModel.class.getName());
 	
+	private String defaultLocale;
 	private String defaultIdentifier;
 	private String fIdentifier;
 	private String fVersion;
@@ -146,6 +147,10 @@ public class WidgetManifestModel extends
 			}
 		}
 	}
+	
+	public String getDefaultLocale(){
+	  return defaultLocale;
+	}
 
 	public String getViewModes() {
 		return fViewModes;
@@ -217,7 +222,7 @@ public class WidgetManifestModel extends
 	}
 
 	public String getLocalName(String locale){
-		INameEntity name = (INameEntity)LocalizationUtils.getLocalizedElement(fNamesList.toArray(new INameEntity[fNamesList.size()]), new String[]{locale});
+		INameEntity name = (INameEntity)LocalizationUtils.getLocalizedElement(fNamesList.toArray(new INameEntity[fNamesList.size()]), new String[]{locale}, defaultLocale);
 		if (name != null) return name.getName();
 		return IW3CXMLConfiguration.UNKNOWN;
 	}
@@ -257,6 +262,11 @@ public class WidgetManifestModel extends
 				fIdentifier = "http://incubator.apache.org/wookie/generated/" + r.toString();
 			}
 		}
+		
+		// DEFAULTLOCALE IS OPTIONAL
+		defaultLocale = UnicodeUtils.normalizeSpaces(element.getAttributeValue(IW3CXMLConfiguration.DEFAULTLOCALE_ATTRIBUTE));
+		locales = addDefaultLocale(locales, defaultLocale);
+		
 		// VERSION IS OPTIONAL		
 		fVersion = UnicodeUtils.normalizeSpaces(element.getAttributeValue(IW3CXMLConfiguration.VERSION_ATTRIBUTE));
 		
@@ -415,6 +425,28 @@ public class WidgetManifestModel extends
 			if (StringUtils.equals(entity.getLang(), ent.getLang())) first = false;
 		return first;
 	}
+	
+	/**
+	 * Adds the defaultLocale to the locales array, provided it isn't null
+	 * and doesn't duplicate an existing locale
+	 * @param locales
+	 * @param defaultLocale
+	 * @return the updated locale array
+	 */
+	private String[] addDefaultLocale(String[] locales, String defaultLocale){
+	  if (defaultLocale == null) return locales;
+	  // If there is no locales list, create a new one with the defaultLocale in it
+	  if (locales == null) return new String[]{defaultLocale};
+	  // If it already exists, return the existing locales array
+	  for (String locale:locales){
+	    if (locale.equals(defaultLocale)) return locales;
+	  }
+	  // Create a copy of the locales array and add the defaultlocale to the end
+	  String[] newLocales = new String[locales.length+1];
+	  System.arraycopy(locales, 0, newLocales, 0, locales.length);
+	  newLocales[newLocales.length-1] = defaultLocale;
+	  return newLocales;
+	}
 
 	public Element toXml() {
 		Element widgetElem = new Element(IW3CXMLConfiguration.WIDGET_ELEMENT,IW3CXMLConfiguration.MANIFEST_NAMESPACE);

Modified: incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java?rev=1133092&r1=1133091&r2=1133092&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java Tue Jun  7 16:44:48 2011
@@ -127,6 +127,10 @@ public class GadgetAdapter implements W3
 		}
 		return defaultValue;
 	}
+	
+	public String getDefaultLocale(){
+	  return null;
+	}
 
 	public String getViewModes() {
 		return null;