KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opensubsystems > patterns > listdata > www > ListDataFormContentTag


1 /*
2  * Copyright (c) 2003 - 2007 OpenSubsystems s.r.o. Slovak Republic. All rights reserved.
3  *
4  * Project: OpenSubsystems
5  *
6  * $Id: ListDataFormContentTag.java,v 1.3 2007/02/20 04:18:18 bastafidli Exp $
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; version 2 of the License.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */

21  
22 package org.opensubsystems.patterns.listdata.www;
23
24 import java.io.UnsupportedEncodingException JavaDoc;
25 import java.net.URLEncoder JavaDoc;
26
27 import javax.servlet.jsp.JspException JavaDoc;
28
29 import org.opensubsystems.core.util.GlobalConstants;
30 import org.opensubsystems.core.util.StringUtils;
31 import org.opensubsystems.core.www.TagUtils;
32 import org.opensubsystems.core.www.WebUIServlet;
33 import org.opensubsystems.patterns.listdata.data.DataCondition;
34 import org.opensubsystems.patterns.listdata.data.ListOptions;
35
36 /**
37  * Custom tag to create and insert to the page all form variables required by
38  * the list data pattern. This tag needs to be in a HTML form which can be
39  * submitted to the server to an instance of ListBrowserServlet.
40  *
41  * @version $Id: ListDataFormContentTag.java,v 1.3 2007/02/20 04:18:18 bastafidli Exp $
42  * @author Miro Halas
43  * @code.reviewer Miro Halas
44  * @code.reviewed Initial revision
45  */

46 public class ListDataFormContentTag extends ListDataBaseTag
47 {
48    // Attributes ///////////////////////////////////////////////////////////////
49

50    /**
51     * Generated serial version UID
52     */

53    private static final long serialVersionUID = -4495791780917057495L;
54
55    // Constructors /////////////////////////////////////////////////////////////
56

57    /**
58     * Constructor for custom tag.
59     */

60    public ListDataFormContentTag()
61    {
62       super();
63    }
64    
65    // Business logic ///////////////////////////////////////////////////////////
66

67    /**
68     * {@inheritDoc}
69     */

70    public int doStartTag(
71    ) throws JspException JavaDoc
72    {
73       StringBuffer JavaDoc sbHtml = new StringBuffer JavaDoc();
74       ListOptions listoptions;
75       DataCondition extracondition;
76       String JavaDoc strTemp;
77       
78       listoptions = getOptionsObject();
79       extracondition = getExtraConditionObject();
80
81       if (GlobalConstants.ERROR_CHECKING)
82       {
83          assert listoptions != null
84                 : "Options attribute doesnt't identify name of existing list" +
85                   " options.";
86          assert extracondition != null
87                 : "Extra condition attribute doesnt't identify name of" +
88                   " existing data condition.";
89       }
90       
91       /*
92       <%-- If the form is being submitted then whoever submits it
93            must set this variable to action is wants to execute --%>
94       <input type="hidden" id="FORM_NAME" name="FORM_NAME" value="">
95       
96       <input type="hidden" id="LIST_FILTER_ID" name="LIST_FILTER_ID"
97              value="<bean:write name="listoptions" property="definitionId" format="#"/>">
98       <input type="hidden" id="LIST_PAGE_SIZE" name="LIST_PAGE_SIZE"
99              value="<bean:write name="listoptions" property="pageSize" format="#"/>">
100       <input type="hidden" id="ORDER_CODE" name="ORDER_CODE"
101              value="<%= StringUtils.parseIntArrayToString(listoptions.getOrderColumnCodes(), ",") %>">
102       <input type="hidden" id="ORDER_TYPE" name="ORDER_TYPE"
103              value="<%= StringUtils.concat(listoptions.getOrderDirections(), ",", null) %>">
104       <input type="hidden" id="CLIENT_ORDER_CODE" name="CLIENT_ORDER_CODE"
105              value="<bean:write name="listoptions" property="clientOrderCode" format="#"/>">
106       <input type="hidden" id="CLIENT_ORDER_TYPE" name="CLIENT_ORDER_TYPE"
107              value="<bean:write name="listoptions" property="clientOrderDirection"/>">
108       <input type="hidden" id="BEGIN_POSITION" name="BEGIN_POSITION"
109              value="<bean:write name="listoptions" property="beginPosition" format="#"/>">
110       <input type="hidden" id="END_POSITION" name="END_POSITION"
111              value="<bean:write name="listoptions" property="endPosition" format="#"/>">
112       <input type="hidden" id="ACTUAL_PAGE" name="ACTUAL_PAGE"
113              value="<bean:write name="listoptions" property="actualPage" format="#"/>">
114       <input type="hidden" id="FIRST_VISIBLE_ITEM" name="FIRST_VISIBLE_ITEM"
115              value="<bean:write name="listoptions" property="firstVisibleItem" format="#"/>">
116       <input type="hidden" id="SELECTED_ITEMS" name="SELECTED_ITEMS"
117              value="<bean:write name="listoptions" property="selectedItemIDs"/>">
118       <input type="hidden" id="MARKED_ITEMS" name="MARKED_ITEMS"
119              value="<bean:write name="listoptions" property="markedItemIDs"/>">
120       <input type="hidden" id="LIST_PARENT_DATA_TYPE" name="LIST_PARENT_DATA_TYPE"
121              value="<bean:write name="listoptions" property="parentDataType" format="#"/>">
122       <input type="hidden" id="LIST_PARENT_IDENTIFIER" name="LIST_PARENT_IDENTIFIER"
123              value="<bean:write name="listoptions" property="parentId" format="#"/>">
124       <input type="hidden" id="LIST_DOMAIN_ID" name="LIST_DOMAIN_ID"
125              value="<bean:write name="listoptions" property="domainId" format="#"/>">
126       <input type="hidden" id="IGNORED_ITEMS" name="IGNORED_ITEMS"
127              value="<bean:write name="listoptions" property="ignoredItemIDs"/>">
128       <input type="hidden" id="EXTRA_CONDITION_ATTRIBUTE" name="EXTRA_CONDITION_ATTRIBUTE"
129              value="<bean:write name="extracondition" property="attribute" format="#"/>">
130       <input type="hidden" id="EXTRA_CONDITION_OPERAND" name="EXTRA_CONDITION_OPERAND"
131              value="<bean:write name="extracondition" property="operation" format="#"/>">
132       <input type="hidden" id="EXTRA_CONDITION_VALUE_TYPE" name="EXTRA_CONDITION_VALUE_TYPE"
133              value="<bean:write name="extracondition" property="valueType" format="#"/>">
134       <input type="hidden" id="EXTRA_CONDITION_VALUE" name="EXTRA_CONDITION_VALUE"
135              value="<%=URLEncoder.encode(extracondition.getValueString(), "UTF-8")%>">
136       <input type="hidden" id="KEEP_SELECTED" name="KEEP_SELECTED"
137              value="<bean:write name="listoptions" property="keepSelected" format="#"/>">
138       <input type="hidden" id="SHOW_COLUMN_CODES" name="SHOW_COLUMN_CODES"
139              value="<%= StringUtils.parseIntArrayToString(listoptions.getShowColumnCodes(), ",") %>">
140       */

141       strTemp = listoptions.getDefinitionId();
142       sbHtml.append("<input type=\"hidden\" id=\"");
143       sbHtml.append(WebUIServlet.FORM_NAME_REQUEST_PARAM);
144       sbHtml.append("\" name=\"");
145       sbHtml.append(WebUIServlet.FORM_NAME_REQUEST_PARAM);
146       sbHtml.append("\" value=\"\">");
147       sbHtml.append("<input type=\"hidden\" id=\"");
148       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_FILTER_ID);
149       sbHtml.append("\" name=\"");
150       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_FILTER_ID);
151       sbHtml.append("\" value=\"");
152       sbHtml.append(strTemp != null ? strTemp : "");
153       sbHtml.append("\">\n");
154       sbHtml.append("<input type=\"hidden\" id=\"");
155       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_PAGE_SIZE);
156       sbHtml.append("\" name=\"");
157       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_PAGE_SIZE);
158       sbHtml.append("\" value=\"");
159       sbHtml.append(listoptions.getPageSize());
160       sbHtml.append("\">\n");
161       sbHtml.append("<input type=\"hidden\" id=\"");
162       sbHtml.append(ListBrowserServlet.LIST_PARAM_ORDER_CODE);
163       sbHtml.append("\" name=\"");
164       sbHtml.append(ListBrowserServlet.LIST_PARAM_ORDER_CODE);
165       sbHtml.append("\" value=\"");
166       sbHtml.append(StringUtils.parseIntArrayToString(
167                        listoptions.getOrderColumnCodes(), ","));
168       sbHtml.append("\">\n");
169       sbHtml.append("<input type=\"hidden\" id=\"");
170       sbHtml.append(ListBrowserServlet.LIST_PARAM_ORDER_TYPE);
171       sbHtml.append("\" name=\"");
172       sbHtml.append(ListBrowserServlet.LIST_PARAM_ORDER_TYPE);
173       sbHtml.append("\" value=\"");
174       sbHtml.append(StringUtils.concat(
175                        listoptions.getOrderDirections(), ",", null));
176       sbHtml.append("\">\n");
177       sbHtml.append("<input type=\"hidden\" id=\"");
178       sbHtml.append(ListBrowserServlet.LIST_PARAM_CLIENT_ORDER_CODE);
179       sbHtml.append("\" name=\"");
180       sbHtml.append(ListBrowserServlet.LIST_PARAM_CLIENT_ORDER_CODE);
181       sbHtml.append("\" value=\"");
182       sbHtml.append(listoptions.getClientOrderCode());
183       sbHtml.append("\">\n");
184       strTemp = listoptions.getClientOrderDirection();
185       sbHtml.append("<input type=\"hidden\" id=\"");
186       sbHtml.append(ListBrowserServlet.LIST_PARAM_CLIENT_ORDER_TYPE);
187       sbHtml.append("\" name=\"");
188       sbHtml.append(ListBrowserServlet.LIST_PARAM_CLIENT_ORDER_TYPE);
189       sbHtml.append("\" value=\"");
190       sbHtml.append(strTemp != null ? strTemp : "");
191       sbHtml.append("\">\n");
192       sbHtml.append("<input type=\"hidden\" id=\"");
193       sbHtml.append(ListBrowserServlet.LIST_PARAM_BEGIN_POSITION);
194       sbHtml.append("\" name=\"");
195       sbHtml.append(ListBrowserServlet.LIST_PARAM_BEGIN_POSITION);
196       sbHtml.append("\" value=\"");
197       sbHtml.append(listoptions.getBeginPosition());
198       sbHtml.append("\">\n");
199       sbHtml.append("<input type=\"hidden\" id=\"");
200       sbHtml.append(ListBrowserServlet.LIST_PARAM_END_POSITION);
201       sbHtml.append("\" name=\"");
202       sbHtml.append(ListBrowserServlet.LIST_PARAM_END_POSITION);
203       sbHtml.append("\" value=\"");
204       sbHtml.append(listoptions.getEndPosition());
205       sbHtml.append("\">\n");
206       sbHtml.append("<input type=\"hidden\" id=\"");
207       sbHtml.append(ListBrowserServlet.LIST_PARAM_ACTUAL_PAGE);
208       sbHtml.append("\" name=\"");
209       sbHtml.append(ListBrowserServlet.LIST_PARAM_ACTUAL_PAGE);
210       sbHtml.append("\" value=\"");
211       sbHtml.append(listoptions.getActualPage());
212       sbHtml.append("\">\n");
213       sbHtml.append("<input type=\"hidden\" id=\"");
214       sbHtml.append(ListBrowserServlet.LIST_PARAM_FIRST_VISIBLE_ITEM);
215       sbHtml.append("\" name=\"");
216       sbHtml.append(ListBrowserServlet.LIST_PARAM_FIRST_VISIBLE_ITEM);
217       sbHtml.append("\" value=\"");
218       sbHtml.append(listoptions.getFirstVisibleItem());
219       sbHtml.append("\">\n");
220       strTemp = listoptions.getSelectedItemIDs();
221       sbHtml.append("<input type=\"hidden\" id=\"");
222       sbHtml.append(ListBrowserServlet.LIST_PARAM_SELECTED_ITEMS);
223       sbHtml.append("\" name=\"");
224       sbHtml.append(ListBrowserServlet.LIST_PARAM_SELECTED_ITEMS);
225       sbHtml.append("\" value=\"");
226       sbHtml.append(strTemp != null ? strTemp : "");
227       sbHtml.append("\">\n");
228       strTemp = listoptions.getMarkedItemIDs();
229       sbHtml.append("<input type=\"hidden\" id=\"");
230       sbHtml.append(ListBrowserServlet.LIST_PARAM_MARKED_ITEMS);
231       sbHtml.append("\" name=\"");
232       sbHtml.append(ListBrowserServlet.LIST_PARAM_MARKED_ITEMS);
233       sbHtml.append("\" value=\"");
234       sbHtml.append(strTemp != null ? strTemp : "");
235       sbHtml.append("\">\n");
236       sbHtml.append("<input type=\"hidden\" id=\"");
237       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_PARENT_DATA_TYPE);
238       sbHtml.append("\" name=\"");
239       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_PARENT_DATA_TYPE);
240       sbHtml.append("\" value=\"");
241       sbHtml.append(listoptions.getParentDataType());
242       sbHtml.append("\">\n");
243       sbHtml.append("<input type=\"hidden\" id=\"");
244       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_PARENT_IDENTIFIER);
245       sbHtml.append("\" name=\"");
246       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_PARENT_IDENTIFIER);
247       sbHtml.append("\" value=\"");
248       sbHtml.append(listoptions.getParentId());
249       sbHtml.append("\">\n");
250       sbHtml.append("<input type=\"hidden\" id=\"");
251       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_DOMAIN_ID);
252       sbHtml.append("\" name=\"");
253       sbHtml.append(ListBrowserServlet.LIST_PARAM_LIST_DOMAIN_ID);
254       sbHtml.append("\" value=\"");
255       sbHtml.append(listoptions.getDomainId());
256       sbHtml.append("\">\n");
257       strTemp = listoptions.getIgnoredItemIDs();
258       sbHtml.append("<input type=\"hidden\" id=\"");
259       sbHtml.append(ListBrowserServlet.LIST_PARAM_IGNORED_ITEMS);
260       sbHtml.append("\" name=\"");
261       sbHtml.append(ListBrowserServlet.LIST_PARAM_IGNORED_ITEMS);
262       sbHtml.append("\" value=\"");
263       sbHtml.append(strTemp != null ? strTemp : "");
264       sbHtml.append("\">\n");
265       sbHtml.append("<input type=\"hidden\" id=\"");
266       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_ATTRIBUTE);
267       sbHtml.append("\" name=\"");
268       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_ATTRIBUTE);
269       sbHtml.append("\" value=\"");
270       sbHtml.append(extracondition.getAttribute());
271       sbHtml.append("\">\n");
272       sbHtml.append("<input type=\"hidden\" id=\"");
273       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_OPERAND);
274       sbHtml.append("\" name=\"");
275       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_OPERAND);
276       sbHtml.append("\" value=\"");
277       sbHtml.append(extracondition.getOperation());
278       sbHtml.append("\">\n");
279       sbHtml.append("<input type=\"hidden\" id=\"");
280       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_VALUE_TYPE);
281       sbHtml.append("\" name=\"");
282       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_VALUE_TYPE);
283       sbHtml.append("\" value=\"");
284       sbHtml.append(extracondition.getValueType());
285       sbHtml.append("\">\n");
286       strTemp = extracondition.getValueString();
287       sbHtml.append("<input type=\"hidden\" id=\"");
288       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_VALUE);
289       sbHtml.append("\" name=\"");
290       sbHtml.append(ListBrowserServlet.LIST_PARAM_EXTRA_CONDITION_VALUE);
291       sbHtml.append("\" value=\"");
292       try
293       {
294          sbHtml.append(URLEncoder.encode(strTemp != null ? strTemp : "", "UTF-8"));
295       }
296       catch (UnsupportedEncodingException JavaDoc ueeExc)
297       {
298          throw new JspException JavaDoc(ueeExc);
299       }
300       sbHtml.append("\">\n");
301       sbHtml.append("<input type=\"hidden\" id=\"");
302       sbHtml.append(ListBrowserServlet.LIST_PARAM_KEEP_SELECTED);
303       sbHtml.append("\" name=\"");
304       sbHtml.append(ListBrowserServlet.LIST_PARAM_KEEP_SELECTED);
305       sbHtml.append("\" value=\"");
306       sbHtml.append(listoptions.getKeepSelected());
307       sbHtml.append("\">\n");
308       sbHtml.append("<input type=\"hidden\" id=\"");
309       sbHtml.append(ListBrowserServlet.LIST_PARAM_SHOW_COLUMN_CODES);
310       sbHtml.append("\" name=\"");
311       sbHtml.append(ListBrowserServlet.LIST_PARAM_SHOW_COLUMN_CODES);
312       sbHtml.append("\" value=\"");
313       sbHtml.append(StringUtils.parseIntArrayToString(
314                        listoptions.getShowColumnCodes(), ","));
315       sbHtml.append("\">\n");
316
317       TagUtils.write(pageContext, sbHtml.toString());
318       
319       return (SKIP_BODY);
320    }
321
322    /**
323     * {@inheritDoc}
324     */

325    public int doEndTag(
326    ) throws JspException JavaDoc
327    {
328       return (EVAL_PAGE);
329    }
330 }
331
Popular Tags