View Javadoc

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 javax.servlet.jsp.JspException;
24  
25  import net.mlw.vlh.web.util.JspUtils;
26  
27  /***
28   * Base class for columnTags 
29   * @author  Andrej Zachar
30   * @version $Revision: 1.5 $ $Date: 2006/01/06 10:53:24 $
31   */
32  public class BaseColumnTag extends ConfigurableTag
33  {
34  
35     private DefaultRowTag rowTag;
36  
37     /*** The value to display in the column header. */
38     private String title;
39  
40     private String titleKey;
41  
42     /***
43      * The value to display in the column header tooltip. 
44      * (In html rendered as the attribute 'title' of <th>).
45      */
46     private String toolTip;
47  
48     /***
49      * A key of the localized message to be displayed in the column header tooltip. 
50      * (In html rendered as the attribute 'title' of <th>).
51      */
52     private String toolTipKey;
53  
54     /***
55      * @return Returns the title.
56      */
57     public String getTitle()
58     {
59        return title;
60     }
61  
62     /***
63      * Sets the value to display in the column header.
64      * 
65      * @param title
66      *            The value to display in the column header.
67      */
68     public void setTitle(String title)
69     {
70        this.title = title;
71     }
72  
73     /***
74      * @return Returns the titleKey.
75      */
76     public String getTitleKey()
77     {
78        return titleKey;
79     }
80  
81     /***
82      * @param titleKey
83      *            The titleKey to set.
84      */
85     public void setTitleKey(String titleKey)
86     {
87        this.titleKey = titleKey;
88     }
89  
90     /***
91      * The value to display in the column header tooltip.
92      * It's shown when a mouse pointer is over the title.
93      * It's useful when you don't want a long title but still you'd like to
94      * provide to a user a more detailed info about the column.
95      * (In html rendered as the attribute 'title' of <th>). 
96      * @return The value to display in the column header tooltip.
97      */
98     public String getToolTip()
99     {
100       return toolTip;
101    }
102 
103    /***
104     * The value to display in the column header tooltip.
105     * (In html rendered as the attribute 'title' of <th>).
106     * @param toolTip
107     *       The value to display in the column header tooltip.
108     */
109    public void setToolTip(String toolTip)
110    {
111       this.toolTip = toolTip;
112    }
113 
114    /***
115     * Return the key of the localized message to be displayed in the column header tooltip. 
116     * (In html rendered as the attribute 'title' of <th>).
117     * 
118     * @return The key of the localized message to be displayed in the column header tooltip.
119     * @see org.springframework.context.support.ResourceBundleMessageSource
120     */
121    public String getToolTipKey()
122    {
123       return toolTipKey;
124    }
125 
126    /***
127     * Set the key of the localized message to be displayed in the column header tooltip. 
128     * (In html rendered as the attribute 'title' of <th>).
129     * 
130     * @param toolTipKey
131     *           The key of the localized message to be displayed in the column header tooltip.
132     * @see org.springframework.context.support.ResourceBundleMessageSource
133     */
134    public void setToolTipKey(String toolTipKey)
135    {
136       this.toolTipKey = toolTipKey;
137    }
138 
139    /***
140     * @see javax.servlet.jsp.tagext.Tag#doEndTag()
141     */
142    public int doEndTag() throws JspException
143    {
144       int result = super.doEndTag();
145       reset();
146       return result;
147    }
148 
149    public DefaultRowTag getRowTag() throws JspException
150    {
151       if (rowTag == null)
152       {
153          rowTag = (DefaultRowTag) JspUtils.getParent(this, DefaultRowTag.class);
154       }
155       return rowTag;
156    }
157 
158    private void reset()
159    {
160       this.rowTag = null;
161       this.title = null;
162       this.titleKey = null;
163       this.toolTip = null;
164       this.toolTipKey = null;
165    }
166 
167    /***
168     * Called on a Tag handler to release state.
169     * The page compiler guarantees that JSP page implementation
170     * objects will invoke this method on all tag handlers,
171     * but there may be multiple invocations on doStartTag and doEndTag in between.
172     * 
173     * @see javax.servlet.jsp.tagext.Tag#release()
174     */
175    public void release()
176    {
177       super.release();
178       reset();
179    }
180 }