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 import javax.faces.view.facelets.ComponentHandler;
29 import javax.faces.view.facelets.FaceletContext;
30 import javax.faces.view.facelets.FaceletException;
31 import javax.faces.view.facelets.TagAttribute;
32 import javax.faces.view.facelets.TagConfig;
33 import javax.faces.view.facelets.TagHandler;
34
35
36
37
38
39 public class FaceletsExporterActionListenerTag extends TagHandler
40 {
41
42 private final TagAttribute _for;
43
44 private final TagAttribute _fileType;
45
46 private final TagAttribute _fileName;
47
48 public FaceletsExporterActionListenerTag(TagConfig tagConfig)
49 {
50 super(tagConfig);
51 this._for = getRequiredAttribute(ExporterActionListener.FOR_KEY);
52 this._fileType = getRequiredAttribute(ExporterActionListener.FILE_TYPE_KEY);
53 this._fileName = getRequiredAttribute(ExporterActionListener.FILENAME_KEY);
54 }
55
56 public void apply(FaceletContext faceletContext, UIComponent parent)
57 throws IOException, FacesException, FaceletException, ELException
58 {
59 if (ComponentHandler.isNew(parent))
60 {
61 ValueExpression forVE = _for.getValueExpression(faceletContext,
62 Object.class);
63 ValueExpression fileTypeVE = _fileType.getValueExpression(
64 faceletContext, Object.class);
65 ValueExpression fileNameVE = _fileName.getValueExpression(
66 faceletContext, Object.class);
67
68 ActionSource actionSource = (ActionSource) parent;
69 actionSource.addActionListener(new ExporterActionListener(
70 (String) forVE.getValue(faceletContext),
71 (String) fileTypeVE.getValue(faceletContext),
72 (String) fileNameVE.getValue(faceletContext)));
73 }
74 }
75 }