1 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 ; 40 41 import javax.faces.component.UIComponent; 42 import javax.faces.context.FacesContext; 43 import java.io.IOException ; 44 import java.util.Iterator ; 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 { 54 DOMContext domContext = 55 DOMContext.attachDOMContext(facesContext, uiComponent); 56 57 if (!domContext.isInitialized()) { 58 Element rootSpan = domContext.createElement(HTML.DIV_ELEM); 59 domContext.setRootNode(rootSpan); 60 setRootElementId(facesContext, rootSpan, uiComponent); 61 } 62 Element root = (Element ) domContext.getRootNode(); 63 String 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 { 75 validateParameters(facesContext, uiComponent, null); 76 DOMContext domContext = 77 DOMContext.attachDOMContext(facesContext, uiComponent); 78 Element root = (Element ) 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 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 |