Add boolean 'enabled' (optional) attribute to stripes:link tag
--------------------------------------------------------------

                 Key: STS-417
                 URL: http://mc4j.org/jira/browse/STS-417
             Project: Stripes
          Issue Type: New Feature
          Components: Tag Library
    Affects Versions: Release 1.5
            Reporter: Frederic Daoud
         Assigned To: Tim Fennell
            Priority: Minor


As discussed in this thread:
http://thread.gmane.org/gmane.comp.java.stripes.user/4612

I suggest adding a boolean attribute, 'enabled', to the stripes:link tag. This 
attribute would be optional and true by default. If set to false, the tag 
renders the body but not the link, such that the link appears as plain text 
only. This is useful, for example, to enable links based on some dynamic 
condition, e.g. user rights.

<stripes:link href="..." enabled="${user.allowed}">Link</stripes:link>

Very easy to implement, for example, against SVN trunk version 608:

Index: src/net/sourceforge/stripes/tag/LinkTag.java
===================================================================
--- src/net/sourceforge/stripes/tag/LinkTag.java        (revision 608)
+++ src/net/sourceforge/stripes/tag/LinkTag.java        (working copy)
@@ -31,6 +31,7 @@
  * @author Tim Fennell
  */
 public class LinkTag extends LinkTagSupport implements BodyTag {
+    private boolean enabled = true;

     /**
      * Does nothing.
@@ -62,13 +63,17 @@
     @Override
     public int doEndTag() throws JspException {
         try {
-            set("href", buildUrl());
-            writeOpenTag(getPageContext().getOut(), "a");
+            if (enabled) {
+                set("href", buildUrl());
+                writeOpenTag(getPageContext().getOut(), "a");
+            }
             String body = getBodyContentAsString();
             if (body != null) {
                 getPageContext().getOut().write(body.trim());
             }
-            writeCloseTag(getPageContext().getOut(), "a");
+            if (enabled) {
+                writeCloseTag(getPageContext().getOut(), "a");
+            }
         }
         catch (IOException ioe) {
             throw new StripesJspException("IOException while writing output in 
LinkTag.", ioe);
@@ -80,6 +85,12 @@
         return EVAL_PAGE;
     }

+    /** Sets the (optional) flag that indicates if the link is enabled. */
+    public void setEnabled(boolean enabled) { this.enabled = enabled; }
+
+    /** Gets the (optional) flag that indicates if the link is enabled. */
+    public boolean isEnabled() { return enabled; }
+
     /** Pass through to [EMAIL PROTECTED] LinkTagSupport#setUrl(String)}. */
     public void   setHref(String href) { setUrl(href); }
     /** Pass through to [EMAIL PROTECTED] LinkTagSupport#getUrl()}. */
Index: resources/stripes.tld
===================================================================
--- resources/stripes.tld       (revision 608)
+++ resources/stripes.tld       (working copy)
@@ -807,6 +807,16 @@
             <type>java.lang.Object</type>
         </attribute>
         <attribute>
+            <description>
+                An optional flag indicating whether or not the link should be 
enabled. If set to
+                false, the link is considered to be disabled, and the link 
tags will not be
+                rendered; the link body will be rendered as plain text.
+                Default value is true.
+            </description>
+            
<name>enabled</name><required>false</required><rtexprvalue>true</rtexprvalue>
+            <type>boolean</type>
+        </attribute>
+        <attribute>
             <description>The character set used to encode the referenced page. 
(HTML Pass-through)</description>
             
<name>charset</name><required>false</required><rtexprvalue>true</rtexprvalue>
         </attribute>

What do you think?

Thanks,
Freddy


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://mc4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to