1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.commons.outputClientId;
20
21 import java.io.IOException;
22
23 import javax.faces.component.UIComponent;
24 import javax.faces.component.UIComponentBase;
25 import javax.faces.context.FacesContext;
26
27 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
28 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
29
30
31
32
33
34
35
36 @JSFComponent(
37 name = "mc:outputClientId",
38 clazz = "org.apache.myfaces.commons.outputClientId.OutputClientId",
39 tagClass = "org.apache.myfaces.commons.outputClientId.OutputClientIdTag")
40 public abstract class AbstractOutputClientId extends UIComponentBase
41 {
42 public static final String COMPONENT_FAMILY = "javax.faces.Output";
43 public static final String COMPONENT_TYPE = "org.apache.myfaces.commons.OutputClientId";
44
45
46
47
48
49
50 @JSFProperty
51 public abstract String getFor();
52
53 @Override
54 public void encodeBegin(FacesContext context) throws IOException
55 {
56 super.encodeBegin(context);
57
58 String forId = getFor();
59 UIComponent referencedComponent = null;
60
61 if (forId == null)
62 {
63 referencedComponent = getParent();
64 }
65 else
66 {
67 referencedComponent = this.findComponent(forId);
68 }
69
70 if (referencedComponent == null)
71 {
72 throw new IllegalStateException("No component found for id : "
73 + forId);
74 }
75
76 context.getResponseWriter().write(
77 referencedComponent.getClientId(context));
78 }
79 }