Author: scottbw
Date: Tue Dec 7 12:25:49 2010
New Revision: 1043002
URL: http://svn.apache.org/viewvc?rev=1043002&view=rev
Log:
Use BIDI-formatting rules for displaying human-readable widget metadata as used
in the Wookie UI - title, short title, description, license etc. This is to
enable us to pass W3C's i18n tests in the P&C test suite. This change affects
the Widget Gallery view and the Admin views, but does not affect the REST API,
which does not use the convenience methods in IWidget.
Added:
incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFormattingUtils.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java
Modified: incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java?rev=1043002&r1=1043001&r2=1043002&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java Tue Dec 7
12:25:49 2010
@@ -18,6 +18,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.apache.wookie.util.WidgetFormattingUtils;
import org.apache.wookie.w3c.IW3CXMLConfiguration;
import org.apache.wookie.w3c.util.LocalizationUtils;
@@ -326,6 +327,10 @@ public interface IWidget extends IBean
/**
* Get widget title for locale.
*
+ * Note that the title is automatically formatted
+ * to use CSS BIDI properties. To get the "raw" name
+ * you should call getNames().
+ *
* @param widget widget
* @param locale locale
* @return widget title
@@ -334,11 +339,15 @@ public interface IWidget extends IBean
{
IName[] names = widget.getNames().toArray(new
IName[widget.getNames().size()]);
IName name = (IName)LocalizationUtils.getLocalizedElement(names,
new String[]{locale});
- return ((name != null) ? name.getName() :
IW3CXMLConfiguration.UNKNOWN);
+ return ((name != null) ?
WidgetFormattingUtils.getFormattedWidgetName(name) :
IW3CXMLConfiguration.UNKNOWN);
}
/**
* Get widget description for locale.
+ *
+ * Note that the description is automatically formatted
+ * to use CSS BIDI properties. To get the "raw" description
+ * you should call getDescriptions().
*
* @param widget widget
* @param locale locale
@@ -348,11 +357,15 @@ public interface IWidget extends IBean
{
IDescription[] descriptions =
widget.getDescriptions().toArray(new
IDescription[widget.getDescriptions().size()]);
IDescription description =
(IDescription)LocalizationUtils.getLocalizedElement(descriptions, new
String[]{locale});
- return ((description != null) ? description.getContent() : null);
+ return ((description != null) ?
WidgetFormattingUtils.getFormattedWidgetDescription(description) : null);
}
/**
* Get widget short name for locale.
+ *
+ * Note that the short name is automatically formatted
+ * to use CSS BIDI properties. To get the "raw" name
+ * you should call getNames().
*
* @param widget widget
* @param locale locale
@@ -362,7 +375,7 @@ public interface IWidget extends IBean
{
IName[] names = widget.getNames().toArray(new
IName[widget.getNames().size()]);
IName name = (IName)LocalizationUtils.getLocalizedElement(names,
new String[]{locale});
- return ((name != null) ? name.getShortName() :
IW3CXMLConfiguration.UNKNOWN);
+ return ((name != null) ?
WidgetFormattingUtils.getFormattedWidgetShortName(name) :
IW3CXMLConfiguration.UNKNOWN);
}
/**
Added:
incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFormattingUtils.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFormattingUtils.java?rev=1043002&view=auto
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFormattingUtils.java
(added)
+++
incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFormattingUtils.java
Tue Dec 7 12:25:49 2010
@@ -0,0 +1,82 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wookie.util;
+
+import org.apache.wookie.beans.IDescription;
+import org.apache.wookie.beans.ILicense;
+import org.apache.wookie.beans.IName;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.w3c.util.FormattingUtils;
+
+/**
+ * i18n formatting utilities
+ *
+ * The methods in this class can be used to generate i18n strings using
+ * CSS bidi properties for use in display. This involves inserting HTML
+ * <span> tags containing CSS styling properties for text direction
+ *
+ */
+public class WidgetFormattingUtils extends FormattingUtils{
+
+ /**
+ * Returns the CSS formatted i18n string for the widget name
+ * @param name the Widget's Name
+ * @return a CSS-formatted i18n string
+ */
+ public static String getFormattedWidgetName(IName name){
+ return getFormatted(name.getDir(), name.getName());
+ }
+ /**
+ * Returns the CSS formatted i18n string for the widget short name
+ * @param name the Widget's Name
+ * @return a CSS-formatted i18n string
+ */
+ public static String getFormattedWidgetShortName(IName name){
+ return getFormatted(name.getDir(), name.getShortName());
+ }
+ /**
+ * Returns the CSS formatted i18n string for the widget version
+ * @param widget the Widget
+ * @return a CSS-formatted i18n string
+ */
+ public static String getFormattedWidgetVersion(IWidget widget){
+ return getFormatted(widget.getVersion());
+ }
+ /**
+ * Returns the CSS formatted i18n string for the widget description
+ * @param description the Widget's description
+ * @return a CSS-formatted i18n string
+ */
+ public static String getFormattedWidgetDescription(IDescription
description){
+ return getFormatted(description.getDir(),
description.getContent());
+ }
+ /**
+ * Returns the CSS formatted i18n string for the widget author's name
+ * @param widget the Widget
+ * @return a CSS-formatted i18n string
+ */
+ public static String getFormattedWidgetAuthor(IWidget widget){
+ return getFormatted(widget.getWidgetAuthor());
+ }
+ /**
+ * Returns the CSS formatted i18n string for the widget license
+ * @param license the Widget's License
+ * @return a CSS-formatted i18n string
+ */
+ public static String getFormattedWidgetLicense(ILicense license){
+ return getFormatted(license.getDir(), license.getText());
+ }
+
+
+}