KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > tutorial > TutorialInputTextRenderer


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.tutorial;
35
36 //w3c DOM
37

38 import com.icesoft.faces.context.DOMContext;
39 import com.icesoft.faces.renderkit.dom_html_basic.DomBasicInputRenderer;
40 import com.icesoft.faces.renderkit.dom_html_basic.PassThruAttributeRenderer;
41 import org.w3c.dom.Element JavaDoc;
42
43 import javax.faces.component.UIComponent;
44 import javax.faces.component.UIInput;
45 import javax.faces.context.FacesContext;
46 import java.io.IOException JavaDoc;
47 import java.util.Map JavaDoc;
48
49
50 public class TutorialInputTextRenderer extends
51                                        DomBasicInputRenderer {
52
53     public TutorialInputTextRenderer() {
54         super();
55     }
56
57     /* (non-Javadoc)
58      * @see javax.faces.render.Renderer#decode(javax.faces.context.FacesContext, javax.faces.component.UIComponent)
59      */

60     public void decode(FacesContext facesContext,
61                        UIComponent uiComponent) {
62         validateParameters(facesContext, uiComponent, null);
63         // only need to decode input components
64
if (!(uiComponent instanceof UIInput)) {
65             return;
66         }
67         // only need to decode enabled, writable components
68
if (isStatic(uiComponent)) {
69             return;
70         }
71         // extract component value from the request map
72
String JavaDoc clientId = uiComponent.getClientId(facesContext);
73         if (clientId == null) {
74             System.out.println("Client id is not defined for decoding");
75         }
76         Map JavaDoc requestMap =
77                 facesContext.getExternalContext().getRequestParameterMap();
78         if (requestMap.containsKey(clientId)) {
79             String JavaDoc decodedValue = (String JavaDoc) requestMap.get(clientId);
80             // setSubmittedValue is a method in the superclass DomBasicInputRenderer
81
setSubmittedValue(uiComponent, decodedValue);
82         }
83     }
84
85     /* (non-Javadoc)
86      * @see javax.faces.render.Renderer#encodeEnd(javax.faces.context.FacesContext, javax.faces.component.UIComponent)
87      */

88     public void encodeEnd(FacesContext facesContext, UIComponent uiComponent)
89             throws IOException JavaDoc {
90
91         DOMContext domContext =
92                 DOMContext.attachDOMContext(facesContext, uiComponent);
93
94         if (!domContext.isInitialized()) {
95             Element JavaDoc root = domContext.createRootElement("input");
96             setRootElementId(facesContext, root, uiComponent);
97             root.setAttribute("type", "text");
98             root.setAttribute("name", uiComponent.getClientId(facesContext));
99         }
100
101         Element JavaDoc root = (Element JavaDoc) domContext.getRootNode();
102
103         root.setAttribute("onkeydown", this.ICESUBMIT);
104
105         // create a new String array to hold attributes we will exclude for the PassThruAttributeRenderer
106
String JavaDoc[] excludesArray = new String JavaDoc[1];
107         excludesArray[0] = "onkeydown";
108
109         // the renderAttributes method will not overwrite any attributes contained in the excludesArray
110
PassThruAttributeRenderer
111                 .renderAttributes(facesContext, uiComponent, excludesArray);
112
113
114     }
115
116 }
Popular Tags