|
From: <vla...@us...> - 2008-01-14 17:22:20
|
Revision: 252
http://equanda.svn.sourceforge.net/equanda/?rev=252&view=rev
Author: vladimirt
Date: 2008-01-14 09:22:16 -0800 (Mon, 14 Jan 2008)
Log Message:
-----------
changed default parameter binding
Modified Paths:
--------------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
Modified: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-14 14:30:12 UTC (rev 251)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-14 17:22:16 UTC (rev 252)
@@ -35,16 +35,19 @@
import org.apache.tapestry.annotations.Mixin;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.Path;
+import org.apache.tapestry.annotations.SupportsInformalParameters;
import org.apache.tapestry.corelib.mixins.DiscardBody;
import org.apache.tapestry.dom.Element;
import org.apache.tapestry.ioc.annotations.Inject;
-import org.apache.tapestry.ioc.annotations.Symbol;
+import org.apache.tapestry.ioc.services.SymbolSource;
+import org.apache.tapestry.ioc.services.TypeCoercer;
/**
* Text Truncate Component
*
* @author <a href="mailto:vla...@gm...">Vladimir Tkachenko</a>
*/
+@SupportsInformalParameters
public class Truncate
{
@@ -67,27 +70,38 @@
private String suffix;
/**
- * Default max length of the text from factory defaults
+ * Injects SymbolSource object
*/
@Inject
- @Symbol( "equanda.truncate.default.length" )
- private int defaultLength;
+ private SymbolSource symbolSource;
/**
- * Default suffix from factory defaults
+ * Injects TypeCoercer object
*/
@Inject
- @Symbol( "equanda.truncate.default.suffix" )
- private String defaultSuffix;
+ private TypeCoercer typeCoercer;
/**
- * Mixin that renders all informal parameters
+ * Default binding for length parameter
+ *
+ * @return default length
*/
- // @Mixin
- // @SuppressWarnings( "unused" )
- // private RenderInformals renderInformals;
+ public Integer defaultLength()
+ {
+ return typeCoercer.coerce( symbolSource.valueForSymbol( "equanda.truncate.default.length" ), Integer.class );
+ }
/**
+ * Default binding for suffix parameter
+ *
+ * @return default suffix
+ */
+ public String defaultSuffix()
+ {
+ return symbolSource.valueForSymbol( "equanda.truncate.default.suffix" );
+ }
+
+ /**
* Mixin that discards body rendering
*/
@Mixin
@@ -115,32 +129,11 @@
*/
public String getTruncatedText()
{
- int len = getLengthValue();
- return text != null && text.length() > len ? ( text.substring( 0, len - getSuffixValue().length() ) + getSuffixValue() )
- : text;
+ int len = length;
+ return text != null && text.length() > len ? ( text.substring( 0, len - suffix.length() ) + suffix ) : text;
}
/**
- * Gets length of the truncated text
- *
- * @return length of the truncated text
- */
- private int getLengthValue()
- {
- return length != null && length > 0 ? length : defaultLength;
- }
-
- /**
- * Gets suffix that will be added to truncated text
- *
- * @return suffix
- */
- private String getSuffixValue()
- {
- return suffix != null ? suffix : defaultSuffix;
- }
-
- /**
* Renders truncated text
*
* @param writer
@@ -151,7 +144,9 @@
{
pageRenderSupport.addScriptLink( script );
pageRenderSupport.addStylesheetLink( style, null );
- writer.element( "span", "id", resources.getId() ).text( getTruncatedText() );
+ writer.element( resources.getElementName() != null ? resources.getElementName() : "span", "id",
+ resources.getId() ).text( getTruncatedText() );
+ resources.renderInformalParameters( writer );
writer.end();
}
@@ -164,7 +159,7 @@
@AfterRender
void doAfterRender( MarkupWriter writer )
{
- if ( text != null && text.length() > getLengthValue() )
+ if ( text != null && text.length() > length )
{
Element root = writer.getDocument().getRootElement();
Element body = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|