| 1 33 34 package com.icesoft.faces.component.menubar; 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.renderkit.dom_html_basic.PassThruAttributeRenderer; 40 import org.w3c.dom.Element ; 41 42 import javax.faces.component.UIComponent; 43 import javax.faces.context.FacesContext; 44 import java.io.IOException ; 45 46 public class MenuBarRenderer extends DomBasicRenderer { 47 48 49 public static final String PATH_DELIMITER = "-"; 50 51 public boolean getRendersChildren() { 52 return true; 53 } 54 55 public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) 56 throws IOException { 57 validateParameters(facesContext, uiComponent, MenuBar.class); 58 59 DOMContext domContext = 60 DOMContext.attachDOMContext(facesContext, uiComponent); 61 if (!domContext.isInitialized()) { 62 domContext.createRootElement(HTML.DIV_ELEM); 63 } 64 Element menuDiv = (Element ) domContext.getRootNode(); 65 menuDiv.setAttribute(HTML.ID_ATTR, 66 uiComponent.getClientId(facesContext)); 67 68 MenuBar menuComponent = (MenuBar) uiComponent; 69 menuDiv.setAttribute(HTML.CLASS_ATTR, menuComponent.getStyleClass()); 70 String style = menuComponent.getStyle(); 71 if(style != null && style.length() > 0) 72 menuDiv.setAttribute(HTML.STYLE_ATTR, style); 73 else 74 menuDiv.removeAttribute(HTML.STYLE_ATTR); 75 DOMContext.removeChildren(menuDiv); 76 77 if (PassThruAttributeRenderer.passThruAttributeExists(uiComponent)) { 78 PassThruAttributeRenderer 79 .renderAttributes(facesContext, uiComponent, null); 80 } 81 82 domContext.streamWrite(facesContext, uiComponent, 83 domContext.getRootNode(), menuDiv); 84 domContext.stepInto(uiComponent); 85 } 86 87 public void encodeChildren(FacesContext context, UIComponent component) 88 throws IOException { 89 for (int i = 0; i < component.getChildCount(); i++) { 90 encodeParentAndChildren(context, (UIComponent) component 91 .getChildren().get(i)); 92 } 93 } 94 95 public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) 96 throws IOException { 97 DOMContext domContext = 98 DOMContext.getDOMContext(facesContext, uiComponent); 99 super.encodeEnd(facesContext, uiComponent); 100 domContext.streamWrite(facesContext, uiComponent); 101 } 102 103 } 104 | Popular Tags |