KickJava   Java API By Example, From Geeks To Geeks.

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


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.ext.HtmlCommandLink;
37 import com.icesoft.faces.renderkit.dom_html_basic.HTML;
38
39 import org.w3c.dom.Element JavaDoc;
40
41 import javax.faces.FacesException;
42 import javax.faces.component.UICommand;
43 import javax.faces.component.UIComponent;
44 import javax.faces.context.FacesContext;
45 import java.io.IOException JavaDoc;
46 import java.util.Map JavaDoc;
47
48 public class CommandLinkRenderer extends
49         com.icesoft.faces.renderkit.dom_html_basic.CommandLinkRenderer {
50
51     public void encodeBegin(FacesContext facesContext, UIComponent uiComponent)
52             throws IOException JavaDoc {
53
54         super.encodeBegin(facesContext, uiComponent);
55     }
56
57     public void renderOnClick(FacesContext facesContext,
58             UIComponent uiComponent, Element JavaDoc root, Map JavaDoc parameters) {
59         HtmlCommandLink link = (HtmlCommandLink) uiComponent;
60         if (link.isDisabled()) {
61             root.removeAttribute("onclick");
62         } else if (link.getPartialSubmit()) {
63             UIComponent uiForm = findForm(uiComponent);
64             if (uiForm == null) {
65                 throw new FacesException(
66                     "CommandLink must be contained in a form");
67             }
68             String JavaDoc uiFormClientId = uiForm.getClientId(facesContext);
69
70             Object JavaDoc passThruOnClick = uiComponent.getAttributes().get(
71                 HTML.ONCLICK_ATTR);
72
73             String JavaDoc onClick = "";
74             // if onClick attribute set by the user, pre append it.
75
if (passThruOnClick != null) {
76                 onClick = passThruOnClick.toString()
77                     + ";"
78                     + this.getJavaScriptPartialOnClickString(facesContext,
79                           uiComponent, uiFormClientId, parameters);
80             } else {
81                 onClick = this.getJavaScriptPartialOnClickString(facesContext,
82                     uiComponent, uiFormClientId, parameters);
83             }
84             root.setAttribute("onclick", onClick);
85         } else {
86             super.renderOnClick(facesContext, uiComponent, root, parameters);
87         }
88     }
89
90     private String JavaDoc getJavaScriptPartialOnClickString(FacesContext facesContext,
91             UIComponent uiComponent, String JavaDoc formClientId, Map JavaDoc parameters) {
92         return com.icesoft.faces.renderkit.dom_html_basic.CommandLinkRenderer
93                 .getJavascriptHiddenFieldSetters(facesContext,
94                         (UICommand) uiComponent, formClientId, parameters)
95                 + "iceSubmitPartial("
96                 + " document.forms['"
97                 + formClientId
98                 + "']," + " this,event); " + "return false;";
99     }
100
101 }
102
Popular Tags