KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > facelets > UIXhtmlTagLibrary


1 package com.icesoft.faces.facelets;
2
3 import com.sun.facelets.tag.TagLibrary;
4 import com.sun.facelets.tag.TagHandler;
5 import com.sun.facelets.tag.TagConfig;
6 import com.sun.facelets.tag.Tag;
7 import com.sun.facelets.tag.jsf.ComponentConfig;
8 import com.sun.facelets.tag.jsf.ComponentHandler;
9 import com.sun.facelets.FaceletHandler;
10 import com.icesoft.faces.component.UIXhtmlComponent;
11
12 import javax.faces.FacesException;
13 import java.lang.reflect.Method JavaDoc;
14
15 /**
16  * @author Mark Collette
17  * @since 1.6
18  */

19 public class UIXhtmlTagLibrary implements TagLibrary {
20     static final String JavaDoc NAMESPACE =
21             "http://www.icesoft.com/icefaces/html/internal";
22     private static final String JavaDoc[] MATCHING_NAMESPACES = new String JavaDoc[] {
23             NAMESPACE,
24             "http://www.w3.org/1999/xhtml",
25             ""
26     };
27     
28     public UIXhtmlTagLibrary() {
29         super();
30     }
31     
32     /**
33      * @see TagLibrary#containsNamespace(String)
34      */

35     public boolean containsNamespace(String JavaDoc ns) {
36         boolean matches = false;
37         if( ns == null )
38             matches = true;
39         else {
40             for(int i = 0; i < MATCHING_NAMESPACES.length; i++) {
41                 if( ns.equals(MATCHING_NAMESPACES[i]) ) {
42                     matches = true;
43                     break;
44                 }
45             }
46         }
47 //System.out.println("UIXhtmlTagLibrary.containsNamespace() ns: " + ns + " ==> " + matches);
48
return matches;
49     }
50
51     /**
52      * @see TagLibrary#containsTagHandler(String, String)
53      */

54     public boolean containsTagHandler(String JavaDoc ns, String JavaDoc localName) {
55 //System.out.println("UIXhtmlTagLibrary.containsTagHandler() ns: " + ns + " localName: " + localName);
56
return containsNamespace( ns );
57     }
58
59     /**
60      * @see TagLibrary#createTagHandler(String, String, TagConfig)
61      */

62     public TagHandler createTagHandler(
63         String JavaDoc ns, String JavaDoc localName, TagConfig tagConfig) throws FacesException
64     {
65 //System.out.println("UIXhtmlTagLibrary.createTagHandler() ns: " + ns + " localName: " + localName + " tagConfig: " + tagConfig);
66
ComponentConfig ccfg = new ComponentConfigWrapper(
67             tagConfig,
68             UIXhtmlComponent.COMPONENT_FAMILY,
69             UIXhtmlComponent.RENDERER_TYPE);
70         return new UIXhtmlComponentHandler(ccfg);
71     }
72
73     /**
74      * @see TagLibrary#containsFunction(String, String)
75      */

76     public boolean containsFunction(String JavaDoc ns, String JavaDoc name) {
77         return false;
78     }
79     
80     /**
81      * @see TagLibrary#createFunction(String, String)
82      */

83     public Method JavaDoc createFunction(String JavaDoc ns, String JavaDoc name) {
84         return null;
85     }
86     
87     
88     private static class ComponentConfigWrapper implements ComponentConfig {
89         private final TagConfig wrapped;
90         private final String JavaDoc componentType;
91         private final String JavaDoc rendererType;
92
93         public ComponentConfigWrapper(
94             TagConfig parent, String JavaDoc componentType, String JavaDoc rendererType)
95         {
96             this.wrapped = parent;
97             this.componentType = componentType;
98             this.rendererType = rendererType;
99         }
100         
101         public String JavaDoc getComponentType() {
102             return componentType;
103         }
104
105         public String JavaDoc getRendererType() {
106             return rendererType;
107         }
108
109         public FaceletHandler getNextHandler() {
110             return wrapped.getNextHandler();
111         }
112
113         public Tag getTag() {
114             return wrapped.getTag();
115         }
116
117         public String JavaDoc getTagId() {
118             return wrapped.getTagId();
119         }
120     }
121 }
122
Popular Tags