1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.commons.exporter;
20
21 import java.io.IOException;
22
23 import javax.el.ELException;
24 import javax.el.ValueExpression;
25 import javax.faces.FacesException;
26 import javax.faces.component.ActionSource;
27 import javax.faces.component.UIComponent;
28
29 import com.sun.facelets.FaceletContext;
30 import com.sun.facelets.FaceletException;
31 import com.sun.facelets.tag.TagAttribute;
32 import com.sun.facelets.tag.TagConfig;
33 import com.sun.facelets.tag.TagHandler;
34 import com.sun.facelets.tag.jsf.ComponentSupport;
35
36
37
38
39
40 public class FaceletsExporterActionListenerTag extends TagHandler
41 {
42
43 private final TagAttribute _for;
44
45 private final TagAttribute _fileType;
46
47 private final TagAttribute _fileName;
48
49 public FaceletsExporterActionListenerTag(TagConfig tagConfig)
50 {
51 super(tagConfig);
52 this._for = getRequiredAttribute(ExporterActionListener.FOR_KEY);
53 this._fileType = getRequiredAttribute(ExporterActionListener.FILE_TYPE_KEY);
54 this._fileName = getRequiredAttribute(ExporterActionListener.FILENAME_KEY);
55 }
56
57 public void apply(FaceletContext faceletContext, UIComponent parent)
58 throws IOException, FacesException, FaceletException, ELException
59 {
60 if (ComponentSupport.isNew(parent))
61 {
62 ValueExpression forVE = _for.getValueExpression(faceletContext,
63 Object.class);
64 ValueExpression fileTypeVE = _fileType.getValueExpression(
65 faceletContext, Object.class);
66 ValueExpression fileNameVE = _fileName.getValueExpression(
67 faceletContext, Object.class);
68
69 ActionSource actionSource = (ActionSource) parent;
70 actionSource.addActionListener(new ExporterActionListener(
71 (String) forVE.getValue(faceletContext),
72 (String) fileTypeVE.getValue(faceletContext),
73 (String) fileNameVE.getValue(faceletContext)));
74 }
75 }
76 }