1 28 29 package com.caucho.jsf.html; 30 31 import java.io.*; 32 import java.util.*; 33 34 import javax.faces.context.*; 35 import javax.faces.render.*; 36 37 public class HtmlBasicRenderKit extends RenderKit { 38 private HashMap<Key,Renderer> _rendererMap 39 = new HashMap<Key,Renderer>(); 40 41 private Key _key = new Key(); 42 43 public HtmlBasicRenderKit() 44 { 45 addRenderer("javax.faces.Output", "javax.faces.Text", 46 HtmlOutputTextRenderer.RENDERER); 47 48 addRenderer("javax.faces.Panel", "javax.faces.Grid", 49 HtmlPanelGridRenderer.RENDERER); 50 } 51 52 public void addRenderer(String family, 53 String rendererType, 54 Renderer renderer) 55 { 56 _rendererMap.put(new Key(family, rendererType), renderer); 57 } 58 59 public Renderer getRenderer(String family, 60 String rendererType) 61 { 62 if (family == null || rendererType == null) 63 return null; 64 65 _key.init(family, rendererType); 66 67 return _rendererMap.get(_key); 68 } 69 70 public ResponseStateManager getResponseStateManager() 71 { 72 return null; 73 } 74 75 public ResponseWriter createResponseWriter(Writer writer, 76 String contentTypeList, 77 String characterEncoding) 78 { 79 return new HtmlResponseWriter(writer, contentTypeList, characterEncoding); 80 } 81 82 public ResponseStream createResponseStream(OutputStream out) 83 { 84 throw new UnsupportedOperationException (); 85 } 86 87 public String toString() 88 { 89 return "HtmlBasicRenderKit[]"; 90 } 91 92 static final class Key { 93 private String _family; 94 private String _type; 95 96 Key() 97 { 98 } 99 100 Key(String family, String type) 101 { 102 _family = family; 103 _type = type; 104 } 105 106 public void init(String family, String type) 107 { 108 _family = family; 109 _type = type; 110 } 111 112 @Override 113 public int hashCode() 114 { 115 if (_type != null) 116 return _family.hashCode() * 65521 + _type.hashCode(); 117 else 118 return _family.hashCode(); 119 } 120 121 public boolean equals(Object o) 122 { 123 Key key = (Key) o; 124 125 if (_type != null) 126 return _family.equals(key._family) && _type.equals(key._type); 127 else 128 return _family.equals(key._family) && key._type != null; 129 } 130 131 public String toString() 132 { 133 return "Key[" + _family + ", " + _type + "]"; 134 } 135 } 136 } 137 | Popular Tags |