summaryrefslogtreecommitdiff
path: root/projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WOString.java
diff options
context:
space:
mode:
Diffstat (limited to 'projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WOString.java')
-rw-r--r--projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WOString.java173
1 files changed, 74 insertions, 99 deletions
diff --git a/projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WOString.java b/projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WOString.java
index ef5b771..0c471d7 100644
--- a/projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WOString.java
+++ b/projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WOString.java
@@ -25,112 +25,87 @@ import net.wotonomy.foundation.NSNumberFormatter;
import net.wotonomy.foundation.NSTimestampFormatter;
/**
-* WOString renders a dynamically generated string in the output.
-* Bindings are:
-* <ul>
-* <li>value: a property returning a value which will be rendered as the
-* output. If a formatter is not used, then the value must be convertable
-* to a String with toString().</li>
-* <li>escapeHTML: a property returning a value convertable to a Boolean
-* indicating whether the any html characters in the output should be
-* escaped so they are shown as html characters rather than interpreted
-* as html.</li>
-* <li>formatter: a property returning a Format object that will be
-* used to format the value into a String.</li>
-* <li>dateformat: a property returning a DateFormat object that will be
-* used to format the value into a String.</li>
-* <li>numberformat: a property returning a NumberFormat object that will be
-* used to format the value into a String. Not yet implemented.</li>
-* <li>valueWhenEmpty: a property returning a String that will be used
-* in place of an empty or null value. Not yet implemented.</li>
-* </ul>
-*
-* @author michael@mpowers.net
-* @author $Author: cgruber $
-* @version $Revision: 905 $
-*/
-public class WOString extends WODynamicElement
-{
+ * WOString renders a dynamically generated string in the output. Bindings are:
+ * <ul>
+ * <li>value: a property returning a value which will be rendered as the output.
+ * If a formatter is not used, then the value must be convertable to a String
+ * with toString().</li>
+ * <li>escapeHTML: a property returning a value convertable to a Boolean
+ * indicating whether the any html characters in the output should be escaped so
+ * they are shown as html characters rather than interpreted as html.</li>
+ * <li>formatter: a property returning a Format object that will be used to
+ * format the value into a String.</li>
+ * <li>dateformat: a property returning a DateFormat object that will be used to
+ * format the value into a String.</li>
+ * <li>numberformat: a property returning a NumberFormat object that will be
+ * used to format the value into a String. Not yet implemented.</li>
+ * <li>valueWhenEmpty: a property returning a String that will be used in place
+ * of an empty or null value. Not yet implemented.</li>
+ * </ul>
+ *
+ * @author michael@mpowers.net
+ * @author $Author: cgruber $
+ * @version $Revision: 905 $
+ */
+public class WOString extends WODynamicElement {
protected Object value;
protected boolean escapeHTML;
protected Format formatter;
protected String dateformat;
protected String numberformat;
- protected Object valueWhenEmpty;
+ protected Object valueWhenEmpty;
/**
- * The default constructor.
- */
- protected WOString ()
- {
- }
-
- public WOString (
- String aName, NSDictionary anAssociationMap, WOElement aRootElement)
- {
- super( aName, anAssociationMap, aRootElement );
- escapeHTML = true;
- }
+ * The default constructor.
+ */
+ protected WOString() {
+ }
+
+ public WOString(String aName, NSDictionary anAssociationMap, WOElement aRootElement) {
+ super(aName, anAssociationMap, aRootElement);
+ escapeHTML = true;
+ }
+
+ public void appendToResponse(WOResponse aResponse, WOContext aContext) {
+ WOComponent c = aContext.component();
+ numberformat = stringForProperty("numberformat", c);
+ dateformat = stringForProperty("dateformat", c);
+ formatter = (Format) valueForProperty("formatter", c);
+ escapeHTML = booleanForProperty("escapeHTML", c);
+ value = valueForProperty("value", c);
+ valueWhenEmpty = valueForProperty("valueWhenEmpty", c);
- public void appendToResponse (WOResponse aResponse, WOContext aContext)
- {
- WOComponent c = aContext.component();
- numberformat = stringForProperty("numberformat", c );
- dateformat = stringForProperty("dateformat", c );
- formatter = (Format) valueForProperty("formatter", c );
- escapeHTML = booleanForProperty("escapeHTML", c );
- value = valueForProperty("value", c );
- valueWhenEmpty = valueForProperty("valueWhenEmpty", c );
-
- Object result = value;
- if ( result != null )
- {
- if ( formatter != null )
- {
- try
- {
- result = formatter.format( result );
- }
- catch ( IllegalArgumentException exc )
- {
- }
- }
- if ( dateformat != null )
- {
- try
- {
- result = new NSTimestampFormatter( dateformat ).format( result );
- }
- catch ( IllegalArgumentException exc )
- {
- }
- }
- if ( numberformat != null )
- {
- try
- {
- result = new NSNumberFormatter( numberformat ).format( result );
- }
- catch ( IllegalArgumentException exc )
- {
- }
- }
- }
- if ( result == null )
- {
- result = valueWhenEmpty;
- if ( result == null )
- {
- result = "nil";
- }
- }
- if ( escapeHTML )
- {
- aResponse.appendContentHTMLString( result.toString() );
- }
- else
- {
- aResponse.appendContentString( result.toString() );
+ Object result = value;
+ if (result != null) {
+ if (formatter != null) {
+ try {
+ result = formatter.format(result);
+ } catch (IllegalArgumentException exc) {
+ }
+ }
+ if (dateformat != null) {
+ try {
+ result = new NSTimestampFormatter(dateformat).format(result);
+ } catch (IllegalArgumentException exc) {
+ }
+ }
+ if (numberformat != null) {
+ try {
+ result = new NSNumberFormatter(numberformat).format(result);
+ } catch (IllegalArgumentException exc) {
+ }
+ }
+ }
+ if (result == null) {
+ result = valueWhenEmpty;
+ if (result == null) {
+ result = "nil";
+ }
+ }
+ if (escapeHTML) {
+ aResponse.appendContentHTMLString(result.toString());
+ } else {
+ aResponse.appendContentString(result.toString());
}
- }
+ }
}