diff options
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.java | 173 |
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()); } - } + } } |
