Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package co.gov.shd.jsf.render;
- import com.sun.faces.renderkit.html_basic.TextRenderer;
- import java.io.IOException;
- import javax.faces.component.UIComponent;
- import javax.faces.context.FacesContext;
- import javax.faces.context.ResponseWriter;
- import javax.faces.context.ResponseWriterWrapper;
- /**
- * @link http://stackoverflow.com/a/7886942/4253946
- */
- public class InputRenderer extends com.sun.faces.renderkit.html_basic.TextRenderer {
- private static final String[] ATTRIBUTES = { "data-toggle" };
- @Override
- protected void getEndTextToRender(FacesContext context, UIComponent component,
- String currentValue) throws IOException {
- final ResponseWriter originalResponseWriter = context.getResponseWriter();
- context.setResponseWriter(new ResponseWriterWrapper() {
- @Override
- // As of JSF 1.2 this method is now public.
- public ResponseWriter getWrapped() {
- return originalResponseWriter;
- }
- @Override
- public void startElement(String name, UIComponent component) throws IOException {
- super.startElement(name, component);
- if ("input".equals(name)) {
- for (String attribute : ATTRIBUTES) {
- Object value = component.getAttributes().get(attribute);
- if (value != null) {
- super.writeAttribute(attribute, value, attribute);
- }
- }
- }
- }
- });
- super.getEndTextToRender(context, component, currentValue);
- context.setResponseWriter(originalResponseWriter); // Restore original writer.
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <faces-config version="2.1" xmlns="http://java.sun.com/xml/ns/javaee">
- <render-kit>
- <renderer>
- <component-family>javax.faces.Input</component-family>
- <renderer-type>javax.faces.Text</renderer-type>
- <renderer-class>co.gov.shd.jsf.render.InputRenderer</renderer-class>
- </renderer>
- <renderer>
- <component-family>javax.faces.Input</component-family>
- <renderer-type>javax.faces.Menu</renderer-type>
- <renderer-class>co.gov.shd.jsf.render.SelectRenderer</renderer-class>
- </renderer>
- </render-kit>
- </faces-config>
- <div class="form-group">
- <h:outputLabel class="col-md-4 control-label" for="mySelect">my Label Select</h:outputLabel>
- <div class="col-md-7">
- <h:selectOneMenu id="mySelect" name="mySelect" class="form-control" data-toggle='tooltip'>
- <f:selectItem itemValue="0" itemLabel="Dummy Label 1" />
- <f:selectItem itemValue="1" itemLabel="Dummy Label 1" />
- </h:selectOneMenu >
- </div>
- </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement