KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > taglibs > html > actions > ActionMenuTag


1 package org.jahia.taglibs.html.actions;
2
3 import java.io.IOException JavaDoc;
4 import java.util.Map JavaDoc;
5 import javax.servlet.ServletRequest JavaDoc;
6 import javax.servlet.jsp.JspException JavaDoc;
7 import javax.servlet.jsp.JspWriter JavaDoc;
8 import javax.servlet.jsp.tagext.BodyTagSupport JavaDoc;
9
10 import org.jahia.data.beans.RequestBean;
11 import org.jahia.params.ParamBean;
12 import org.jahia.gui.GuiBean;
13 import org.jahia.gui.HTMLToolBox;
14
15 /**
16  * <p>Title: Tag that generates the HTML for the action menu GUI interface</p>
17  * <p>Description: this tag is for the moment not very generic but it is
18  * here to help template developers to include easily all the actions for
19  * a given content object without having to know all the possible actions for
20  * a specific content object. It also generates the GUI for the locking
21  * information.</p>
22  * <p>Warning: this tag supposses the use of some Javascript functions that
23  * must be declared in the page for this menu to work !</p>
24  * <p>Copyright: Copyright (c) 2002</p>
25  * <p>Company: Jahia Ltd</p>
26  * @author Serge Huber
27  * @version 1.0
28  */

29
30 public class ActionMenuTag extends BodyTagSupport JavaDoc {
31
32     private static org.apache.log4j.Logger logger =
33         org.apache.log4j.Logger.getLogger(ActionMenuTag.class);
34
35     private boolean useFieldSet = true;
36     private String JavaDoc namePostFix = null;
37     private String JavaDoc name = null;
38     private Map JavaDoc actionURIBeans = null;
39     private RequestBean requestBean = null;
40     private ParamBean paramBean = null;
41     private GuiBean guiBean = null;
42     private HTMLToolBox htmlToolBox = null;
43     private String JavaDoc resourceBundle = null;
44     private String JavaDoc lockIcon = null;
45     private String JavaDoc actionIcon = null;
46     private String JavaDoc labelKey = null;
47
48     public ActionMenuTag() {
49     }
50
51     public boolean isUseFieldSet() {
52         return useFieldSet;
53     }
54     public void setUseFieldSet(boolean useFieldSet) {
55         this.useFieldSet = useFieldSet;
56     }
57     public String JavaDoc getNamePostFix() {
58         return namePostFix;
59     }
60     public void setNamePostFix(String JavaDoc namePostFix) {
61         this.namePostFix = namePostFix;
62     }
63     public String JavaDoc getName() {
64         return name;
65     }
66     public void setName(String JavaDoc name) {
67         this.name = name;
68     }
69     public String JavaDoc getResourceBundle() {
70         return resourceBundle;
71     }
72     public void setResourceBundle(String JavaDoc resourceBundle) {
73         this.resourceBundle = resourceBundle;
74     }
75     public String JavaDoc getLockIcon() {
76         return lockIcon;
77     }
78     public void setLockIcon(String JavaDoc lockIcon) {
79         this.lockIcon = lockIcon;
80     }
81     public String JavaDoc getActionIcon() {
82         return actionIcon;
83     }
84     public void setActionIcon(String JavaDoc actionIcon) {
85         this.actionIcon = actionIcon;
86     }
87     public String JavaDoc getLabelKey() {
88         return labelKey;
89     }
90     public void setLabelKey(String JavaDoc labelKey) {
91         this.labelKey = labelKey;
92     }
93
94     public int doStartTag () {
95
96         ServletRequest JavaDoc request = pageContext.getRequest();
97
98         requestBean = (RequestBean) pageContext.findAttribute("currentRequest");
99         paramBean = requestBean.getParamBean();
100         guiBean = new GuiBean(paramBean);
101         htmlToolBox = new HTMLToolBox(guiBean, paramBean);
102         Object JavaDoc contentObject = pageContext.findAttribute(name);
103         if (contentObject == null) {
104             logger.error("Couldn't find any object with name " + name);
105             return EVAL_BODY_BUFFERED;
106         }
107
108         JspWriter JavaDoc out = pageContext.getOut();
109         try {
110
111             htmlToolBox.drawBeginActionMenu(contentObject, lockIcon, actionIcon, useFieldSet, namePostFix, resourceBundle, labelKey, out);
112
113         } catch (IOException JavaDoc ioe) {
114             logger.error("IO exception while trying to display action menu for object " + name, ioe);
115         }
116
117         return EVAL_BODY_BUFFERED;
118     }
119
120     // Body is evaluated one time, so just writes it on standard output
121
public int doAfterBody () {
122
123         JspWriter JavaDoc out = bodyContent.getEnclosingWriter();
124         try {
125             bodyContent.writeOut(out);
126         } catch (IOException JavaDoc ioe) {
127             logger.error("Error:", ioe);
128         }
129
130
131         Object JavaDoc contentObject = pageContext.findAttribute(name);
132         if (contentObject == null) {
133             logger.error("Couldn't find any object with name " + name);
134             return SKIP_BODY;
135         }
136
137         try {
138
139             htmlToolBox.drawEndActionMenu(contentObject, lockIcon, actionIcon, useFieldSet, namePostFix, resourceBundle, labelKey, out);
140
141         } catch (IOException JavaDoc ioe) {
142             logger.error("IO exception while trying to display action menu for object " + name, ioe);
143         }
144
145         return SKIP_BODY;
146     }
147
148     public int doEndTag ()
149         throws JspException JavaDoc {
150         // let's reinitialize the tag variables to allow tag object reuse in
151
// pooling.
152
useFieldSet = true;
153         namePostFix = null;
154         name = null;
155         actionURIBeans = null;
156         paramBean = null;
157         requestBean = null;
158         guiBean = null;
159         htmlToolBox = null;
160         resourceBundle = null;
161         lockIcon = null;
162         actionIcon = null;
163         labelKey = null;
164         return EVAL_PAGE;
165     }
166
167
168 }
Popular Tags