KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > component > outputconnectionstatus > OutputConnectionStatusRenderer


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.outputconnectionstatus;
35
36 import com.icesoft.faces.context.DOMContext;
37 import com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer;
38 import com.icesoft.faces.renderkit.dom_html_basic.HTML;
39 import com.icesoft.faces.util.DOMUtils;
40
41 import org.w3c.dom.Element JavaDoc;
42 import org.w3c.dom.Text JavaDoc;
43
44 import javax.faces.component.UIComponent;
45 import javax.faces.context.FacesContext;
46 import java.io.IOException JavaDoc;
47
48 public class OutputConnectionStatusRenderer extends DomBasicRenderer {
49
50     public void encodeBegin(FacesContext facesContext, UIComponent uiComponent)
51             throws IOException JavaDoc {
52         validateParameters(facesContext, uiComponent, null);
53         OutputConnectionStatus component =
54                 ((OutputConnectionStatus) uiComponent);
55         DOMContext domContext =
56                 DOMContext.attachDOMContext(facesContext, uiComponent);
57         if (!domContext.isInitialized()) {
58             Element JavaDoc root = domContext.createRootElement(HTML.DIV_ELEM);
59             domContext.setRootNode(root);
60
61             root.setAttribute(HTML.ID_ATTR, "connection-status");
62             root.setAttribute(HTML.CLASS_ATTR, component.getStyleClass());
63             String JavaDoc style = component.getStyle();
64             if(style != null && style.length() > 0)
65                 root.setAttribute(HTML.STYLE_ATTR, style);
66             else
67                 root.removeAttribute(HTML.STYLE_ATTR);
68
69             root.appendChild(getNextNode(domContext,
70                                          component.getInactiveClass(),
71                                          component.getInactiveLabel(),
72                                          "connection-idle", true));
73             root.appendChild(getNextNode(domContext, component.getActiveClass(),
74                                          component.getActiveLabel(),
75                                          "connection-working", false));
76             root.appendChild(getNextNode(domContext,
77                                          component.getCautionClass(),
78                                          component.getCautionLabel(),
79                                          "connection-trouble", false));
80             root.appendChild(getNextNode(domContext,
81                                          component.getDisconnectedClass(),
82                                          component.getDisconnectedLabel(),
83                                          "connection-lost", false));
84         }
85
86         domContext.stepOver();
87         domContext.streamWrite(facesContext, uiComponent);
88     }
89
90     public Element JavaDoc getNextNode(DOMContext domContext, String JavaDoc classString,
91                                String JavaDoc label, String JavaDoc id, boolean visible) {
92         Element JavaDoc div = (Element JavaDoc) domContext.createElement(HTML.DIV_ELEM);
93         div.setAttribute(HTML.ID_ATTR, id);
94         div.setAttribute(HTML.CLASS_ATTR, classString);
95         if (!visible) {
96             div.setAttribute(HTML.STYLE_ATTR, "visibility: hidden;");
97         }
98         if (label != null) {
99             label = DOMUtils.escapeAnsi(label);
100         }
101         Text JavaDoc text = (Text JavaDoc) domContext.createTextNode(label);
102         div.appendChild(text);
103         return div;
104     }
105 }
106
Popular Tags