1 33 34 package com.icesoft.faces.renderkit.dom_html_basic; 35 36 import com.icesoft.faces.context.DOMContext; 37 import org.w3c.dom.Element ; 38 import org.w3c.dom.Text ; 39 40 import javax.faces.component.UIComponent; 41 import javax.faces.component.UISelectOne; 42 import javax.faces.context.FacesContext; 43 import javax.faces.model.SelectItem; 44 import java.io.IOException ; 45 import java.util.HashSet ; 46 import java.util.Set ; 47 48 49 public class RadioRenderer extends SelectManyCheckboxListRenderer { 50 51 protected void renderOption(FacesContext facesContext, 52 UIComponent uiComponent, 53 SelectItem selectItem, boolean renderVertically, 54 Element rootTR, int counter, 55 Object componentValue) 56 throws IOException { 57 UISelectOne uiSelectOne = (UISelectOne) uiComponent; 58 DOMContext domContext = 59 DOMContext.attachDOMContext(facesContext, uiSelectOne); 60 Element rootTable = (Element ) domContext.getRootNode(); 61 62 Object submittedValue = uiSelectOne.getSubmittedValue(); 63 if (submittedValue == null) { 64 submittedValue = componentValue; 65 } 66 if (renderVertically) { 67 rootTR = domContext.createElement("tr"); 68 rootTable.appendChild(rootTR); 69 } 70 String labelClass = null; 71 boolean disabled = false; 72 if (uiSelectOne.getAttributes().get("disabled") != null && 73 uiSelectOne.getAttributes().get("disabled") 74 .equals(Boolean.TRUE)) { 75 disabled = true; 76 77 } 78 if (selectItem.isDisabled()) { 79 disabled = true; 80 } 81 labelClass = (String ) uiSelectOne.getAttributes().get("styleClass"); 82 if (labelClass != null && disabled) { 83 labelClass += "-dis"; 84 } 85 86 87 Element td = domContext.createElement("td"); 88 rootTR.appendChild(td); 89 90 Element input = domContext.createElement("input"); 91 td.appendChild(input); 92 input.setAttribute("type", "radio"); 93 94 if (disabled) { 95 input.setAttribute("disabled", "disabled"); 96 } 97 98 HashSet excludes = new HashSet (); 99 String accesskey = 100 (String ) uiComponent.getAttributes().get("accesskey"); 101 if (accesskey != null) { 102 input.setAttribute("accesskey", accesskey); 103 excludes.add("accesskey"); 104 } 105 106 Object selectItemValue = selectItem.getValue(); 107 108 if (selectItemValue != null && String.valueOf(selectItemValue).equals(String.valueOf(componentValue))) { 109 input.setAttribute("checked", "checked"); 110 } else { 111 input.removeAttribute("checked"); 112 } 113 114 input.setAttribute("name", uiSelectOne.getClientId(facesContext)); 115 input.setAttribute("id", 116 uiComponent.getClientId(facesContext) + ":_" + 117 counter); 118 input.setAttribute("value", (formatComponentValue(facesContext, 119 uiSelectOne, 120 selectItem.getValue()))); 121 122 addJavaScript(facesContext, uiSelectOne, input, excludes); 123 excludes.add("style"); 125 excludes.add("readonly"); 126 excludes.add("disabled"); 127 128 PassThruAttributeRenderer. 129 renderAttributes( 130 facesContext, uiSelectOne, getExcludesArray(excludes)); 131 132 Element label = domContext.createElement("label"); 133 td.appendChild(label); 134 135 if (labelClass != null) { 136 label.setAttribute("class", labelClass); 137 } 138 String itemLabel = selectItem.getLabel(); 139 if (itemLabel != null) { 140 Text labelText = domContext.getDocument().createTextNode(itemLabel); 141 label.appendChild(labelText); 142 } 143 } 144 145 protected void addJavaScript(FacesContext facesContext, 146 UIComponent uiSelectOne, Element input, 147 Set excludes) { 148 } 149 } | Popular Tags |