Advertisement
Guest User

Untitled

a guest
Oct 21st, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. package co.gov.shd.jsf.render;
  2.  
  3. import com.sun.faces.renderkit.html_basic.TextRenderer;
  4.  
  5. import java.io.IOException;
  6.  
  7. import javax.faces.component.UIComponent;
  8. import javax.faces.context.FacesContext;
  9. import javax.faces.context.ResponseWriter;
  10. import javax.faces.context.ResponseWriterWrapper;
  11.  
  12. /**
  13. * @link http://stackoverflow.com/a/7886942/4253946
  14. */
  15. public class InputRenderer extends com.sun.faces.renderkit.html_basic.TextRenderer {
  16.  
  17. private static final String[] ATTRIBUTES = { "data-toggle" };
  18.  
  19. @Override
  20. protected void getEndTextToRender(FacesContext context, UIComponent component,
  21. String currentValue) throws IOException {
  22. final ResponseWriter originalResponseWriter = context.getResponseWriter();
  23. context.setResponseWriter(new ResponseWriterWrapper() {
  24. @Override
  25. // As of JSF 1.2 this method is now public.
  26. public ResponseWriter getWrapped() {
  27. return originalResponseWriter;
  28. }
  29.  
  30. @Override
  31. public void startElement(String name, UIComponent component) throws IOException {
  32. super.startElement(name, component);
  33. if ("input".equals(name)) {
  34. for (String attribute : ATTRIBUTES) {
  35. Object value = component.getAttributes().get(attribute);
  36. if (value != null) {
  37. super.writeAttribute(attribute, value, attribute);
  38. }
  39. }
  40. }
  41. }
  42. });
  43. super.getEndTextToRender(context, component, currentValue);
  44. context.setResponseWriter(originalResponseWriter); // Restore original writer.
  45. }
  46. }
  47.  
  48. <?xml version="1.0" encoding="UTF-8"?>
  49. <faces-config version="2.1" xmlns="http://java.sun.com/xml/ns/javaee">
  50. <render-kit>
  51. <renderer>
  52. <component-family>javax.faces.Input</component-family>
  53. <renderer-type>javax.faces.Text</renderer-type>
  54. <renderer-class>co.gov.shd.jsf.render.InputRenderer</renderer-class>
  55. </renderer>
  56. <renderer>
  57. <component-family>javax.faces.Input</component-family>
  58. <renderer-type>javax.faces.Menu</renderer-type>
  59. <renderer-class>co.gov.shd.jsf.render.SelectRenderer</renderer-class>
  60. </renderer>
  61. </render-kit>
  62. </faces-config>
  63.  
  64. <div class="form-group">
  65. <h:outputLabel class="col-md-4 control-label" for="mySelect">my Label Select</h:outputLabel>
  66. <div class="col-md-7">
  67. <h:selectOneMenu id="mySelect" name="mySelect" class="form-control" data-toggle='tooltip'>
  68. <f:selectItem itemValue="0" itemLabel="Dummy Label 1" />
  69. <f:selectItem itemValue="1" itemLabel="Dummy Label 1" />
  70. </h:selectOneMenu >
  71. </div>
  72. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement