1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.facelets;
21
22 import org.apache.myfaces.tobago.component.UIScript;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 import javax.faces.component.UIComponent;
27 import javax.faces.view.facelets.ComponentConfig;
28 import javax.faces.view.facelets.ComponentHandler;
29 import javax.faces.view.facelets.FaceletContext;
30 import javax.faces.view.facelets.FaceletHandler;
31 import javax.faces.view.facelets.TextHandler;
32
33 public class ScriptHandler extends ComponentHandler {
34
35 private static final Logger LOG = LoggerFactory.getLogger(ScriptHandler.class);
36
37 public ScriptHandler(ComponentConfig config) {
38 super(config);
39 }
40
41 public void onComponentCreated(FaceletContext context, UIComponent component, UIComponent parent) {
42 StringBuilder content = new StringBuilder();
43 final FaceletHandler next = getComponentConfig().getNextHandler();
44 if (next instanceof TextHandler) {
45 content.append(((TextHandler) next).getText(context));
46 } else {
47
48
49 LOG.warn("Not applied for handler: " + next.getClass().getName());
50 }
51
52 ((UIScript) component).setScript(content.toString());
53 }
54
55 public void applyNextHandler(FaceletContext ctx, UIComponent c) {
56 }
57 }