KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > opencms > workplace > CmsTaskHead


1 /*
2 * File : $Source: /usr/local/cvs/opencms/src-modules/com/opencms/workplace/CmsTaskHead.java,v $
3 * Date : $Date: 2005/06/27 23:22:07 $
4 * Version: $Revision: 1.5 $
5 *
6 * This library is part of OpenCms -
7 * the Open Source Content Mananagement System
8 *
9 * Copyright (C) 2001 The OpenCms Group
10 *
11 * This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Lesser General Public
13 * License as published by the Free Software Foundation; either
14 * version 2.1 of the License, or (at your option) any later version.
15 *
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Lesser General Public License for more details.
20 *
21 * For further information about OpenCms, please see the
22 * OpenCms Website: http://www.opencms.org
23 *
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with this library; if not, write to the Free Software
26 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 */

28
29
30 package com.opencms.workplace;
31
32 import org.opencms.db.CmsUserSettings;
33 import org.opencms.file.CmsObject;
34 import org.opencms.main.CmsException;
35 import org.opencms.main.CmsLog;
36 import org.opencms.workflow.CmsTaskService;
37
38 import com.opencms.core.I_CmsSession;
39 import com.opencms.legacy.CmsXmlTemplateLoader;
40 import com.opencms.template.A_CmsXmlContent;
41 import com.opencms.template.CmsXmlTemplateFile;
42
43 import java.util.Hashtable JavaDoc;
44 import java.util.Vector JavaDoc;
45
46 /**
47  * Template class for displaying OpenCms workplace task head screens.
48  * <P>
49  *
50  * @author Andreas Schouten
51  * @version $Revision: 1.5 $ $Date: 2005/06/27 23:22:07 $
52  * @see com.opencms.workplace.CmsXmlWpTemplateFile
53  *
54  * @deprecated Will not be supported past the OpenCms 6 release.
55  */

56
57 public class CmsTaskHead extends CmsWorkplaceDefault {
58        
59     /** Constant for filter */
60     private static final String JavaDoc C_SPACER = "------------------------------------------------";
61     
62     /**
63      * User method to get the checked value.
64      *
65      * @param cms CmsObject Object for accessing system resources.
66      * @param tagcontent Unused in this special case of a user method. Can be ignored.
67      * @param doc Reference to the A_CmsXmlContent object of the initiating XLM document <em>(not used here)</em>.
68      * @param userObj Hashtable with parameters <em>(not used here)</em>.
69      * @return String with the pics URL.
70      * @throws CmsException
71      */

72     
73     public Object JavaDoc checked(CmsObject cms, String JavaDoc tagcontent, A_CmsXmlContent doc, Object JavaDoc userObj) throws CmsException {
74         I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);
75         Object JavaDoc allProjects = session.getValue(CmsWorkplaceDefault.C_SESSION_TASK_ALLPROJECTS);
76         
77         // was the allprojects checkbox checked?
78
if((allProjects != null) && (((Boolean JavaDoc)allProjects).booleanValue())) {
79             return "checked";
80         }
81         else {
82             return "";
83         }
84     }
85     
86     /**
87      * Gets the content of a defined section in a given template file and its subtemplates
88      * with the given parameters.
89      *
90      * @see #getContent(CmsObject, String, String, Hashtable, String)
91      * @param cms CmsObject Object for accessing system resources.
92      * @param templateFile Filename of the template file.
93      * @param elementName Element name of this template in our parent template.
94      * @param parameters Hashtable with all template class parameters.
95      * @param templateSelector template section that should be processed.
96      */

97     
98     public byte[] getContent(CmsObject cms, String JavaDoc templateFile, String JavaDoc elementName, Hashtable JavaDoc parameters,
99             String JavaDoc templateSelector) throws CmsException {
100         if(CmsLog.getLog(this).isDebugEnabled() && C_DEBUG) {
101             CmsLog.getLog(this).debug("Getting content of element " + ((elementName==null)?"<root>":elementName));
102             CmsLog.getLog(this).debug("Template file is: " + templateFile);
103             CmsLog.getLog(this).debug("Selected template section is: " + ((templateSelector==null)?"<default>":templateSelector));
104         }
105         I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);
106         CmsXmlTemplateFile xmlTemplateDocument = getOwnTemplateFile(cms, templateFile, elementName, parameters, templateSelector);
107         
108         // is this the first-time, this page is viewed?
109
if(session.getValue(CmsWorkplaceDefault.C_SESSION_TASK_ALLPROJECTS) == null) {
110             
111             // YES! read the relevant userproperties
112
CmsUserSettings settings = new CmsUserSettings(cms);
113             String JavaDoc startupFilter = settings.getTaskStartupFilter();
114             boolean allProjects = settings.getTaskShowAllProjects();
115                 
116             // the tasksettings exists - use them
117
session.putValue(CmsWorkplaceDefault.C_SESSION_TASK_ALLPROJECTS, new Boolean JavaDoc(allProjects));
118             session.putValue(CmsWorkplaceDefault.C_SESSION_TASK_FILTER, startupFilter);
119        
120         }
121         
122         // is this the result of a submit?
123
if(parameters.get("filter") != null) {
124             
125             // YES: get the checkbox-value
126
if("OK".equals(parameters.get("ALL"))) {
127                 session.putValue(CmsWorkplaceDefault.C_SESSION_TASK_ALLPROJECTS, new Boolean JavaDoc(true));
128             }
129             else {
130                 session.putValue(CmsWorkplaceDefault.C_SESSION_TASK_ALLPROJECTS, new Boolean JavaDoc(false));
131             }
132         }
133         
134         // is the listbox chosen?
135
if((parameters.get("filter") != null) && (!(parameters.get("filter").equals("-")))) {
136             session.putValue(CmsWorkplaceDefault.C_SESSION_TASK_FILTER, parameters.get("filter"));
137         }
138         
139         // Now load the template file and start the processing
140
return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector);
141     }
142     
143     /**
144      * Gets all filters available in the task screen.
145      * <P>
146      * The given vectors <code>names</code> and <code>values</code> will
147      * be filled with the appropriate information to be used for building
148      * a select box.
149      * <P>
150      * <code>names</code> will contain language specific view descriptions
151      * and <code>values</code> will contain the correspondig URL for each
152      * of these views after returning from this method.
153      * <P>
154      *
155      * @param cms CmsObject Object for accessing system resources.
156      * @param lang reference to the currently valid language file
157      * @param names Vector to be filled with the appropriate values in this method.
158      * @param values Vector to be filled with the appropriate values in this method.
159      * @param parameters Hashtable containing all user parameters <em>(not used here)</em>.
160      * @return Index representing the user's current filter view in the vectors.
161      * @throws CmsException
162      */

163     
164     public Integer JavaDoc getFilters(CmsObject cms, CmsXmlLanguageFile lang, Vector JavaDoc values, Vector JavaDoc names,
165             Hashtable JavaDoc parameters) throws CmsException {
166         
167         // Let's see if we have a session
168
I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);
169         String JavaDoc filter = (String JavaDoc)session.getValue(CmsWorkplaceDefault.C_SESSION_TASK_FILTER);
170         int selected = 0;
171         names.addElement("a1");
172         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "a1"));
173         if("a1".equals(filter)) {
174             selected = 0;
175         }
176         names.addElement("b1");
177         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "b1"));
178         if("b1".equals(filter)) {
179             selected = 1;
180         }
181         names.addElement("c1");
182         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "c1"));
183         if("c1".equals(filter)) {
184             selected = 2;
185         }
186         names.addElement("-");
187         values.addElement(C_SPACER);
188         names.addElement("a2");
189         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "a2"));
190         if("a2".equals(filter)) {
191             selected = 4;
192         }
193         names.addElement("b2");
194         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "b2"));
195         if("b2".equals(filter)) {
196             selected = 5;
197         }
198         names.addElement("c2");
199         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "c2"));
200         if("c2".equals(filter)) {
201             selected = 6;
202         }
203         names.addElement("-");
204         values.addElement(C_SPACER);
205         names.addElement("a3");
206         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "a3"));
207         if("a3".equals(filter)) {
208             selected = 8;
209         }
210         names.addElement("b3");
211         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "b3"));
212         if("b3".equals(filter)) {
213             selected = 9;
214         }
215         names.addElement("c3");
216         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "c3"));
217         if("c3".equals(filter)) {
218             selected = 10;
219         }
220         names.addElement("-");
221         values.addElement(C_SPACER);
222         names.addElement("d1");
223         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "d1"));
224         if("d1".equals(filter)) {
225             selected = 12;
226         }
227         names.addElement("d2");
228         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "d2"));
229         if("d2".equals(filter)) {
230             selected = 13;
231         }
232         names.addElement("d3");
233         values.addElement(lang.getLanguageValue(CmsTaskService.TASK_FILTER + "d3"));
234         if("d3".equals(filter)) {
235             selected = 14;
236         }
237         return (new Integer JavaDoc(selected));
238     }
239     
240     /**
241      * Indicates if the results of this class are cacheable.
242      *
243      * @param cms CmsObject Object for accessing system resources
244      * @param templateFile Filename of the template file
245      * @param elementName Element name of this template in our parent template.
246      * @param parameters Hashtable with all template class parameters.
247      * @param templateSelector template section that should be processed.
248      * @return <EM>true</EM> if cacheable, <EM>false</EM> otherwise.
249      */

250     
251     public boolean isCacheable(CmsObject cms, String JavaDoc templateFile, String JavaDoc elementName,
252             Hashtable JavaDoc parameters, String JavaDoc templateSelector) {
253         return false;
254     }
255 }
256
Popular Tags