Author: scottbw
Date: Mon Apr 4 09:08:54 2011
New Revision: 1088515
URL: http://svn.apache.org/viewvc?rev=1088515&view=rev
Log:
Return widget metadata using i18n encoded strings. See WOOKIE-204.
Modified:
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java?rev=1088515&r1=1088514&r2=1088515&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/ajaxmodel/impl/WidgetAPIImpl.java
Mon Apr 4 09:08:54 2011
@@ -24,6 +24,8 @@ import javax.servlet.http.HttpServletReq
import org.apache.log4j.Logger;
import org.apache.wookie.Messages;
import org.apache.wookie.ajaxmodel.IWidgetAPI;
+import org.apache.wookie.beans.IDescription;
+import org.apache.wookie.beans.IName;
import org.apache.wookie.beans.IPreference;
import org.apache.wookie.beans.ISharedData;
import org.apache.wookie.beans.IWidget;
@@ -36,6 +38,8 @@ import org.apache.wookie.helpers.Notifie
import org.apache.wookie.queues.QueueManager;
import org.apache.wookie.server.ContextListener;
import org.apache.wookie.server.LocaleHandler;
+import org.apache.wookie.util.WidgetFormattingUtils;
+import org.apache.wookie.w3c.util.LocalizationUtils;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
@@ -93,18 +97,41 @@ public class WidgetAPIImpl implements IW
IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey(id_key);
if(widgetInstance==null) return map;
- // Add in metadata
+
+ // Get i18n-enabled metadata for the Widget's locale and encode
it using unicode control characters.
+
+ String locales[] = {widgetInstance.getLang()};
IWidget widget = widgetInstance.getWidget();
+
+ String author = "";
+ if (widget.getWidgetAuthor() != null) author =
WidgetFormattingUtils.getEncoded(widget.getDir(), widget.getWidgetAuthor());
+
+ String name = "";
+ IName iname =
(IName)LocalizationUtils.getLocalizedElement(widget.getNames().toArray(new
IName[widget.getNames().size()]), locales);
+ if (iname != null && iname.getName() != null) name =
WidgetFormattingUtils.getEncoded(iname.getDir(), iname.getName());
+ String shortName = "";
+ if (iname != null && iname.getShortName() != null) shortName =
WidgetFormattingUtils.getEncoded(iname.getDir(), iname.getShortName());
+
+ String description = "";
+ IDescription idescription =
(IDescription)LocalizationUtils.getLocalizedElement(widget.getDescriptions().toArray(new
IDescription[widget.getDescriptions().size()]), locales);
+ if (idescription != null && idescription.getContent() != null)
description = WidgetFormattingUtils.getEncoded(idescription.getDir(),
idescription.getContent());
+
+ String version = "";
+ if (widget.getVersion() != null) version =
WidgetFormattingUtils.getEncoded(widget.getDir(), widget.getVersion());
+
+ // Add in metadata
+
map.put("id", String.valueOf(widget.getGuid()));
//$NON-NLS-1$
- map.put("author", String.valueOf(widget.getWidgetAuthor()));
//$NON-NLS-1$
+ map.put("author", author); //$NON-NLS-1$
map.put("authorEmail",
String.valueOf(widget.getWidgetAuthorEmail()));//$NON-NLS-1$
map.put("authorHref",
String.valueOf(widget.getWidgetAuthorHref()));//$NON-NLS-1$
- map.put("name",
String.valueOf(widget.getWidgetTitle()));//$NON-NLS-1$
- map.put("description",
String.valueOf(widget.getWidgetDescription()));//$NON-NLS-1$
- map.put("shortName",
String.valueOf(widget.getWidgetShortName())); //$NON-NLS-1$
- map.put("version", widget.getVersion());//$NON-NLS-1$
+ map.put("name", name);//$NON-NLS-1$
+ map.put("description", description);//$NON-NLS-1$
+ map.put("shortName", shortName); //$NON-NLS-1$
+ map.put("version",version);//$NON-NLS-1$
map.put("width",
String.valueOf(widget.getWidth()));//$NON-NLS-1$
map.put("height",
String.valueOf(widget.getHeight()));//$NON-NLS-1$
+
return map;
}