KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > mlw > vlh > web > tag > FocusStatusTag


1 /**
2  * Copyright (c) 2003 held jointly by the individual authors.
3  *
4  * This library is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU Lesser General Public License as published
6  * by the Free Software Foundation; either version 2.1 of the License, or
7  * (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; with out even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library; if not, write to the Free Software Foundation,
16  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17  *
18  * > http://www.gnu.org/copyleft/lesser.html
19  * > http://www.opensource.org/licenses/lgpl-license.php
20  */

21 package net.mlw.vlh.web.tag;
22
23 import java.util.Locale JavaDoc;
24
25 import javax.servlet.http.HttpServletRequest JavaDoc;
26 import javax.servlet.jsp.JspException JavaDoc;
27
28 import net.mlw.vlh.ValueListInfo;
29 import net.mlw.vlh.web.util.DisplayHelper;
30 import net.mlw.vlh.web.util.JspUtils;
31
32 import org.springframework.context.MessageSource;
33 import org.springframework.context.NoSuchMessageException;
34
35 /**
36  * Create focus status table. If info.isFocusEnabled() is false, skip all body
37  * content. <b>Warning </b> info.doFosus is diferent that info.isFocuseEnabled.
38  *
39  * @see net.mlw.vlh.web.ValueListInfo#isFocusEnabled
40  * @see net.mlw.vlh.web.ValueListInfo#doFocus
41  * @author Andrej Zachar
42  * @version $Revision: 1.8 $ $Date: 2005/11/23 15:02:16 $
43  */

44 public class FocusStatusTag extends ConfigurableTag
45 {
46
47    /**
48     * @see javax.servlet.jsp.tagext.Tag#doStartTag()
49     */

50    public int doStartTag() throws JspException JavaDoc
51    {
52       ValueListSpaceTag rootTag = (ValueListSpaceTag) JspUtils.getParent(this, ValueListSpaceTag.class);
53
54       Locale JavaDoc local = rootTag.getConfig().getLocaleResolver().resolveLocale((HttpServletRequest JavaDoc) pageContext.getRequest());
55       MessageSource message = rootTag.getConfig().getMessageSource();
56
57       ValueListInfo info = rootTag.getValueList().getValueListInfo();
58       if (info.isFocusEnabled())
59       {
60          StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
61
62          sb.append("<table ").append(getCellAttributes().getCellAttributesAsString()).append(">");
63          sb.append("\n <tr>");
64          sb.append(generateFocusStatus(info, message, local, rootTag));
65          sb.append("\n </tr>");
66          sb.append("\n <tr>");
67          JspUtils.write(pageContext, sb.toString());
68          pageContext.setAttribute("focusStatus" + rootTag.getTableInfo().getId(), new Integer JavaDoc(info.getFocusStatus()));
69          return EVAL_BODY_INCLUDE;
70       }
71       return SKIP_BODY;
72
73    }
74
75    /**
76     *
77     * @param info
78     * @param message
79     * @param local
80     * @param rootTag
81     * @return
82     * @throws NoSuchMessageException
83     * @throws JspException
84     */

85    private StringBuffer JavaDoc generateFocusStatus(ValueListInfo info, MessageSource message, Locale JavaDoc local, ValueListSpaceTag rootTag)
86          throws NoSuchMessageException, JspException JavaDoc
87    {
88
89       StringBuffer JavaDoc sb = new StringBuffer JavaDoc("");
90
91       if ((!info.isDoFocus()) || (info.getFocusStatus() == ValueListInfo.FOCUS_FOUND))
92       {
93          return sb;
94       }
95
96       DisplayHelper displayHelper = rootTag.getConfig().getDisplayHelper();
97
98       sb.append("\n <td>");
99       if (info.getFocusStatus() == ValueListInfo.FOCUS_NOT_FOUND)
100       {
101          sb.append(displayHelper.help(pageContext, message.getMessage("focusStatus.notFound", new String JavaDoc[]
102          { info.getFocusValue() }, local)));
103       }
104       else
105       {
106          if (info.getFocusStatus() == ValueListInfo.FOCUS_TOO_MANY_ITEMS)
107          {
108             sb.append(displayHelper.help(pageContext, message.getMessage("focusStatus.tooManyItems", null, local)));
109          }
110       }
111       sb.append("</td>");
112       String JavaDoc delim = displayHelper.help(pageContext, message.getMessage("paging.delim", null, "", local));
113       if (delim.length() > 0)
114       {
115          sb.append(delim);
116       }
117       return sb;
118    }
119
120    /**
121     * @see javax.servlet.jsp.tagext.Tag#doStartTag()
122     */

123    public int doEndTag() throws JspException JavaDoc
124    {
125       ValueListSpaceTag rootTag = (ValueListSpaceTag) JspUtils.getParent(this, ValueListSpaceTag.class);
126       ValueListInfo info = rootTag.getValueList().getValueListInfo();
127       if (info.isFocusEnabled())
128       {
129          JspUtils.write(pageContext, "\n </tr>\n</table>");
130       }
131
132       release();
133
134       return EVAL_PAGE;
135    }
136 }
Popular Tags