1 /***
2 * The contents of this file are subject to the Mozilla Public
3 * License Version 1.1 (the "License"); you may not use this file
4 * except in compliance with the License. You may obtain a copy of
5 * the License at http://www.mozilla.org/MPL/
6 *
7 * Software distributed under the License is distributed on an "AS
8 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9 * implied. See the License for the specific language governing
10 * rights and limitations under the License.
11 *
12 * The Original Code is pow2WebGui library.
13 *
14 * The Initial Owner of the Original Code is Power Of Two S.R.L.
15 * Portions created by Power Of Two S.R.L. are Copyright (C) Power Of Two S.R.L.
16 * All Rights Reserved.
17 *
18 * Contributor(s):
19 */
20
21 package com.pow2.webgui.taglib;
22
23 import java.util.Collection;
24 import java.util.HashMap;
25
26 import javax.servlet.jsp.JspException;
27 import javax.servlet.jsp.JspTagException;
28 import javax.servlet.jsp.tagext.TagSupport;
29
30 import org.apache.log4j.Category;
31
32 import com.pow2.webgui.Widget;
33
34 /***
35 * ContentProviderTag class.
36 * <br>
37 *
38 * <code>
39 * <gui:lister drawer="amazon" titleType="image" title= "pics/listerTitle-category.gif">
40 * <gui:contentProvider name="lister" collection=<%=myCollection %>" />
41 * </gui:lister>
42 * </code>
43 *
44 * @author Luca Fossato
45 * @created 22 September 2001
46 */
47 public class ContentProviderTag extends TagSupport
48 {
49 protected final static String KEY_TEMPLATE = "com.pow2.webgui.contentprovider.template";
50 protected final static String KEY_COLLECTION = "com.pow2.webgui.contentprovider.collection";
51 protected final static String KEY_PROPERTIESMAP = "com.pow2.webgui.contentprovider.propertiesMap";
52
53 /*** Log4j category */
54 private static Category cat = Category.getInstance(ContentProviderTag.class);
55
56 private String name = null;
57 private Collection collection = null;
58 private String template = null;
59 private HashMap propertiesMap = null;
60 private Widget parent = null;
61
62
63 /***
64 * Constructor
65 */
66 public ContentProviderTag()
67 {
68 super();
69 }
70
71
72 /***
73 * Gets the collection attribute of the CollectionContentProvider object
74 *
75 * @return The collection value
76 */
77 public Collection getCollection()
78 {
79 return collection;
80 }
81
82
83 /***
84 * Sets the collection attribute of the CollectionContentProvider object
85 *
86 * @param collection The new collection value
87 */
88 public void setCollection(Collection collection)
89 {
90 this.collection = collection;
91 }
92
93
94 /***
95 * Gets the name attribute of the CollectionContentProviderTag object
96 *
97 * @return The name value
98 */
99 public String getName()
100 {
101 return name;
102 }
103
104
105 /***
106 * Gets the propertiesMap attribute of the BaseContentProvider object
107 *
108 * @return The propertiesMap value
109 */
110 public HashMap getPropertiesMap()
111 {
112 return propertiesMap;
113 }
114
115
116 /***
117 * Sets the name attribute of the CollectionContentProviderTag object
118 *
119 * @param name The new name value
120 */
121 public void setName(String name)
122 {
123 this.name = name;
124 }
125
126
127 /***
128 * Gets the template attribute of the CollectionContentProviderTag object
129 *
130 * @return The template value
131 */
132 public String getTemplate()
133 {
134 return template;
135 }
136
137
138 /***
139 * Sets the template attribute of the CollectionContentProviderTag object
140 *
141 * @param template The new template value
142 */
143 public void setTemplate(String template)
144 {
145 this.template = template;
146 }
147
148
149 /***
150 * Sets the propertiesMap attribute of the BaseContentProvider object
151 *
152 * @param propertiesMap The new propertiesMap value
153 */
154 public void setPropertiesMap(HashMap propertiesMap)
155 {
156 this.propertiesMap = propertiesMap;
157 }
158
159
160 /***
161 * @return Description of the Returned Value
162 * @exception JspException Description of Exception
163 */
164 public int doEndTag() throws JspException
165 {
166 if ((parent = (Widget)findAncestorWithClass(this, Widget.class)) == null)
167 {
168 String err = "cannot retrieve the parent tag class (must be a Widget subclass)";
169 cat.error("::doEndTag - " + err);
170 throw new JspTagException(err);
171 }
172
173 parent.setContentProviderName(name);
174 if (template != null) pageContext.setAttribute(KEY_TEMPLATE, template);
175 if (collection != null) pageContext.setAttribute(KEY_COLLECTION, collection);
176 if (propertiesMap != null) pageContext.setAttribute(KEY_PROPERTIESMAP, propertiesMap);
177
178 return EVAL_PAGE;
179 }
180 }