KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > component > ext > renderkit > SecretRenderer


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.faces.component.ext.renderkit;
35
36 import com.icesoft.faces.component.IceExtended;
37 import com.icesoft.faces.component.ext.HtmlInputSecret;
38 import com.icesoft.faces.component.ext.KeyEvent;
39 import com.icesoft.faces.component.ext.taglib.Util;
40 import com.icesoft.faces.component.menubar.MenuItem;
41 import com.icesoft.faces.context.DOMContext;
42 import com.icesoft.faces.renderkit.dom_html_basic.PassThruAttributeRenderer;
43
44 import org.w3c.dom.Element JavaDoc;
45
46 import javax.faces.component.UIComponent;
47 import javax.faces.component.UIInput;
48 import javax.faces.context.FacesContext;
49 import javax.faces.event.ActionEvent;
50
51 import java.io.IOException JavaDoc;
52 import java.util.HashSet JavaDoc;
53 import java.util.Map JavaDoc;
54
55 public class SecretRenderer
56         extends com.icesoft.faces.renderkit.dom_html_basic.SecretRenderer {
57     
58     
59     protected void addJavaScript(FacesContext facesContext,
60                                  UIComponent uiComponent, Element JavaDoc root,
61                                  HashSet JavaDoc excludes) {
62         
63         //exclude following events
64
excludes.add("onkeypress");
65         excludes.add("onfocus");
66         excludes.add("onblur");
67         
68         String JavaDoc onkeypress = ((HtmlInputSecret)uiComponent).getOnkeypress() != null ? ((HtmlInputSecret)uiComponent).getOnkeypress() : "";
69         String JavaDoc onfocus = ((HtmlInputSecret)uiComponent).getOnfocus() != null ? ((HtmlInputSecret)uiComponent).getOnfocus() : "";
70         String JavaDoc onblur = ((HtmlInputSecret)uiComponent).getOnblur() != null ? ((HtmlInputSecret)uiComponent).getOnblur() : "";
71                 
72         //Add the enter key behavior by default
73
root.setAttribute("onkeypress", onkeypress + this.ICESUBMIT);
74         // set the focus id
75
root.setAttribute("onfocus", onfocus + "setFocus(this.id);");
76         // clear focus id
77
root.setAttribute("onblur", onblur + "setFocus('');");
78         
79         if (((IceExtended) uiComponent).getPartialSubmit()) {
80             root.setAttribute("onblur", onblur + "setFocus('');" +
81                                         "iceSubmitPartial(form,this,event); return false;");
82         }
83         
84     }
85
86     public void decode(FacesContext facesContext, UIComponent uiComponent) {
87         HtmlInputSecret inputSecret = (HtmlInputSecret)uiComponent;
88         // check if we are processing a partial submit
89
Map JavaDoc requestParameterMap =
90             facesContext.getExternalContext().getRequestParameterMap();
91         String JavaDoc partial = "partial";
92         boolean test = Boolean.valueOf(
93             (String JavaDoc) requestParameterMap.get(partial)).booleanValue();
94         if (test) {
95             // force the redisplay for partialSubmit enabled inputSecret components
96
if (!inputSecret.isRedisplay()) {
97                 inputSecret.setRedisplay(true);
98             }
99         }
100         
101         super.decode(facesContext, uiComponent);
102         if (Util.isEventSource(facesContext, uiComponent)) {
103             queueEventIfEnterKeyPressed(facesContext, uiComponent);
104         }
105         
106     }
107
108
109     public void queueEventIfEnterKeyPressed(FacesContext facesContext,
110                                             UIComponent uiComponent) {
111         try {
112             KeyEvent keyEvent =
113                 new KeyEvent(uiComponent, facesContext.getExternalContext().getRequestParameterMap());
114             if (keyEvent.getKeyCode() == KeyEvent.CARRIAGE_RETURN) {
115                 uiComponent.queueEvent(new ActionEvent(uiComponent));
116             }
117         } catch (Exception JavaDoc e) {
118             e.printStackTrace();
119         }
120     }
121     
122     /**
123      * @param uiComponent
124      * @return boolean
125      */

126     private boolean redisplayAttributeIsTrue(UIComponent uiComponent, FacesContext facesContext) {
127         if (Util.isEventSource(facesContext,uiComponent)) {
128             return true;
129         }
130         Object JavaDoc redisplayAttribute =
131                 uiComponent.getAttributes().get("redisplay");
132         return redisplayAttribute != null
133                && redisplayAttribute.toString().toLowerCase().equals("true");
134     }
135     
136 }
Popular Tags