⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlradiorenderer.java

📁 一个使用struts+hibernate+spring开发的完的网站源代码。
💻 JAVA
字号:
/* * Copyright 2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.myfaces.renderkit.html.ext;import org.apache.myfaces.component.UserRoleUtils;import org.apache.myfaces.custom.radio.HtmlRadio;import org.apache.myfaces.renderkit.RendererUtils;import org.apache.myfaces.renderkit.html.HTML;import org.apache.myfaces.renderkit.html.HtmlRadioRendererBase;import javax.faces.FacesException;import javax.faces.component.UIComponent;import javax.faces.component.UISelectOne;import javax.faces.context.FacesContext;import javax.faces.context.ResponseWriter;import javax.faces.convert.Converter;import javax.faces.model.SelectItem;import java.io.IOException;import java.util.List;/** * @author Manfred Geiler (latest modification by $Author: matze $) * @author Thomas Spiegl * @version $Revision: 1.9 $ $Date: 2004/10/13 11:50:59 $ * $Log: HtmlRadioRenderer.java,v $ * Revision 1.9  2004/10/13 11:50:59  matze * renamed packages to org.apache * * Revision 1.8  2004/08/13 15:47:08  manolito * No decode for spread checkbox or radio * * Revision 1.7  2004/07/01 21:53:06  mwessendorf * ASF switch * * Revision 1.6  2004/06/04 00:26:16  o_rossmueller * modified renderes to comply with JSF 1.1 * * Revision 1.5  2004/05/18 14:31:38  manolito * user role support completely moved to components source tree * * Revision 1.4  2004/04/05 09:11:03  manolito * extended exception messages * * Revision 1.3  2004/04/02 13:57:11  manolito * extended HtmlSelectManyCheckbox with layout "spread" and custom Checkbox component * * Revision 1.2  2004/03/31 15:15:59  royalts * no message * * Revision 1.1  2004/03/31 13:26:08  manolito * extended radio renderer * */public class HtmlRadioRenderer        extends HtmlRadioRendererBase{    //private static final Log log = LogFactory.getLog(HtmlRadioRenderer.class);    private static final String LAYOUT_SPREAD = "spread";    public void encodeEnd(FacesContext context, UIComponent component) throws IOException    {        if (context == null) throw new NullPointerException("context");        if (component == null) throw new NullPointerException("component");        if (component instanceof HtmlRadio)        {            renderRadio(context, (HtmlRadio)component);        }        else if (component instanceof UISelectOne)        {            String layout = getLayout(component);            if (layout != null && layout.equals(LAYOUT_SPREAD))            {                return; //radio inputs are rendered by spread radio components            }            else            {                super.encodeEnd(context, component);            }        }        else        {            throw new IllegalArgumentException("Unsupported component class " + component.getClass().getName());        }    }    private void renderRadio(FacesContext facesContext, HtmlRadio radio) throws IOException    {        String forAttr = radio.getFor();        if (forAttr == null)        {            throw new IllegalStateException("mandatory attribute 'for'");        }        int index = radio.getIndex();        if (index < 0)        {            throw new IllegalStateException("positive index must be given");        }        UIComponent uiComponent = radio.findComponent(forAttr);        if (uiComponent == null)        {            throw new IllegalStateException("Could not find component '" + forAttr + "' (calling findComponent on component '" + radio.getClientId(facesContext) + "')");        }        if (!(uiComponent instanceof UISelectOne))        {            throw new IllegalStateException("UISelectOne expected");        }        UISelectOne uiSelectOne = (UISelectOne)uiComponent;        Converter converter;        List selectItemList = RendererUtils.getSelectItemList(uiSelectOne);        if (index >= selectItemList.size())        {            throw new IndexOutOfBoundsException("index " + index + " >= " + selectItemList.size());        }        try        {            converter = RendererUtils.findUIOutputConverter(facesContext, uiSelectOne);        }        catch (FacesException e)        {            converter = null;        }        Object currentValue = uiSelectOne.getValue();        SelectItem selectItem = (SelectItem)selectItemList.get(index);        Object itemValue = selectItem.getValue();        String itemStrValue;        if (converter == null)        {            itemStrValue = itemValue.toString();        }        else        {            itemStrValue = converter.getAsString(facesContext, uiSelectOne, itemValue);        }        ResponseWriter writer = facesContext.getResponseWriter();        writer.startElement(HTML.LABEL_ELEM, uiSelectOne);        renderRadio(facesContext,                    uiSelectOne,                    itemStrValue,                    selectItem.getLabel(),                    currentValue == null && itemValue == null ||                    currentValue != null && currentValue.equals(itemValue), false);        writer.endElement(HTML.LABEL_ELEM);            }    protected boolean isDisabled(FacesContext facesContext, UIComponent uiComponent)    {        if (!UserRoleUtils.isEnabledOnUserRole(uiComponent))        {            return false;        }        else        {            return super.isDisabled(facesContext, uiComponent);        }    }    public void decode(FacesContext facesContext, UIComponent uiComponent)    {        if (uiComponent instanceof HtmlRadio)        {            //nothing to decode        }        else        {            super.decode(facesContext, uiComponent);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -