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;


Reply via email to