KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > component > panelseries > PanelSeriesRenderer


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.panelseries;
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 org.w3c.dom.Element JavaDoc;
40
41 import javax.faces.component.UIComponent;
42 import javax.faces.context.FacesContext;
43 import java.io.IOException JavaDoc;
44 import java.util.Iterator JavaDoc;
45
46
47 public class PanelSeriesRenderer extends DomBasicRenderer {
48     public boolean getRendersChildren() {
49         return true;
50     }
51
52     public void encodeBegin(FacesContext facesContext, UIComponent uiComponent)
53             throws IOException JavaDoc {
54         DOMContext domContext =
55                 DOMContext.attachDOMContext(facesContext, uiComponent);
56
57         if (!domContext.isInitialized()) {
58             Element JavaDoc rootSpan = domContext.createElement(HTML.DIV_ELEM);
59             domContext.setRootNode(rootSpan);
60             setRootElementId(facesContext, rootSpan, uiComponent);
61         }
62         Element JavaDoc root = (Element JavaDoc) domContext.getRootNode();
63         String JavaDoc style = ((PanelSeries) uiComponent).getStyle();
64         if(style != null && style.length() > 0)
65             root.setAttribute(HTML.STYLE_ATTR, style);
66         else
67             root.removeAttribute(HTML.STYLE_ATTR);
68         root.setAttribute(HTML.CLASS_ATTR,
69                           ((PanelSeries) uiComponent).getStyleClass());
70         domContext.stepInto(uiComponent);
71     }
72
73     public void encodeChildren(FacesContext facesContext,
74                                UIComponent uiComponent) throws IOException JavaDoc {
75         validateParameters(facesContext, uiComponent, null);
76         DOMContext domContext =
77                 DOMContext.attachDOMContext(facesContext, uiComponent);
78         Element JavaDoc root = (Element JavaDoc) domContext.getRootNode();
79         DOMContext.removeChildren(root);
80         PanelSeries list = (PanelSeries) uiComponent;
81         UISeries uiList = (UISeries) uiComponent;
82         int rowIndex = uiList.getFirst();
83         uiList.setRowIndex(rowIndex);
84         int numberOfRowsToDisplay = uiList.getRows();
85         int countOfRowsDisplayed = 0;
86         while (uiList.isRowAvailable()) {
87             if ((numberOfRowsToDisplay > 0) &&
88                 (countOfRowsDisplayed >= numberOfRowsToDisplay)) {
89                 break;
90             }
91             Iterator JavaDoc childs;
92             childs = list.getChildren().iterator();
93             while (childs.hasNext()) {
94                 UIComponent nextChild = (UIComponent) childs.next();
95                 if (nextChild.isRendered()) {
96                     domContext.setCursorParent(root);
97                     domContext.streamWrite(facesContext, uiComponent,
98                                            domContext.getRootNode(), root);
99                     encodeParentAndChildren(facesContext, nextChild);
100                 }
101             }
102             rowIndex++;
103             countOfRowsDisplayed++;
104             uiList.setRowIndex(rowIndex);
105         }
106         uiList.setRowIndex(-1);
107
108     }
109 }
110
Popular Tags