KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > forum > tags > OptionTag


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.forum.tags;
27
28 import net.killingar.forum.internal.managers.ForumManager;
29 import net.killingar.forum.internal.managers.OptionsManager;
30
31 import javax.servlet.jsp.JspException JavaDoc;
32 import javax.servlet.jsp.JspTagException JavaDoc;
33 import javax.servlet.jsp.tagext.BodyTagSupport JavaDoc;
34
35 public class OptionTag extends BodyTagSupport JavaDoc
36 {
37     private String JavaDoc name = null, set = null;
38
39   public int doStartTag() throws JspException JavaDoc
40   {
41         try
42         {
43             ForumManager manager = (ForumManager)pageContext.getSession().getAttribute("manager");
44             OptionsManager options = (OptionsManager)manager.getManager(OptionsManager.class.getName());
45             if (
46                 (set == null || set.equalsIgnoreCase("yes") || set.equalsIgnoreCase("true")) &&
47               options.get(name) != null)
48                 return EVAL_BODY_TAG;
49             else if (
50                 set != null && (set.equalsIgnoreCase("no") || set.equalsIgnoreCase("false")) &&
51                 options.get(name) == null)
52                 return EVAL_BODY_TAG;
53
54             return SKIP_BODY;
55         }
56         catch (Exception JavaDoc ex)
57         {
58             //ex.printStackTrace(new java.io.PrintWriter(pageContext.getOut()));
59
throw new JspTagException JavaDoc("OptionTag exception: " + ex);
60             //return SKIP_BODY;
61
}
62   }
63
64     public void setName(String JavaDoc name)
65     {
66         this.name = name;
67     }
68
69     public void setSet(String JavaDoc set)
70     {
71         this.set = set;
72     }
73
74     public int doAfterBody() throws JspTagException JavaDoc
75     {
76         return SKIP_BODY;
77     }
78
79   public int doEndTag() throws JspTagException JavaDoc
80   {
81     try
82         {
83             if(bodyContent != null)
84                 bodyContent.writeOut(bodyContent.getEnclosingWriter());
85
86             bodyContent = null;
87         }
88         catch(java.io.IOException JavaDoc e)
89         {
90             throw new JspTagException JavaDoc("IO Error: " + e.getMessage());
91         }
92         return EVAL_PAGE;
93   }
94 }
Popular Tags