KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2 * File : $Source: /usr/local/cvs/opencms/src-modules/com/opencms/workplace/CmsAdminModuleDelete.java,v $
3 * Date : $Date: 2005/06/27 23:22:07 $
4 * Version: $Revision: 1.4 $
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 package com.opencms.workplace;
30
31 import org.opencms.file.CmsObject;
32 import org.opencms.file.CmsProject;
33 import org.opencms.file.CmsRequestContext;
34 import org.opencms.main.CmsException;
35 import org.opencms.main.CmsLog;
36 import org.opencms.main.OpenCms;
37 import org.opencms.module.CmsModule;
38 import org.opencms.module.CmsModuleDependency;
39 import org.opencms.module.CmsModuleManager;
40 import org.opencms.report.A_CmsReportThread;
41 import org.opencms.workplace.threads.CmsModuleDeleteThread;
42
43 import com.opencms.core.I_CmsSession;
44 import com.opencms.legacy.CmsXmlTemplateLoader;
45
46 import java.util.ArrayList JavaDoc;
47 import java.util.Hashtable JavaDoc;
48 import java.util.List JavaDoc;
49 import java.util.Vector JavaDoc;
50
51 /**
52  * Template class for displaying OpenCms workplace administration module delete.
53  *
54  * Creation date: (12.09.00 10:28:08)
55  * @author Hanjo Riege
56  *
57  * @deprecated Will not be supported past the OpenCms 6 release.
58  */

59 public class CmsAdminModuleDelete extends CmsWorkplaceDefault {
60     
61     private static final String JavaDoc C_MODULE = "module";
62     private static final String JavaDoc C_STEP = "step";
63     private static final String JavaDoc C_DELETE = "delete";
64     private static final String JavaDoc C_WARNING = "warning";
65     private static final String JavaDoc C_ERROR = "error";
66     private static final String JavaDoc C_SESSION_MODULENAME = "deletemodulename";
67     private static final String JavaDoc C_MODULE_THREAD = "moduledeletethread";
68
69     /**
70      * Gets the content of a defined section in a given template file and its subtemplates
71      * with the given parameters.
72      *
73      * @see #getContent(CmsObject, String, String, Hashtable, String)
74      * @param cms CmsObject Object for accessing system resources.
75      * @param templateFile Filename of the template file.
76      * @param elementName Element name of this template in our parent template.
77      * @param parameters Hashtable with all template class parameters.
78      * @param templateSelector template section that should be processed.
79      */

80     public byte[] getContent(CmsObject cms, String JavaDoc templateFile, String JavaDoc elementName, Hashtable JavaDoc parameters, String JavaDoc templateSelector) throws CmsException {
81         if(CmsLog.getLog(this).isDebugEnabled() && C_DEBUG) {
82             CmsLog.getLog(this).debug("Getting content of element " + ((elementName==null)?"<root>":elementName));
83             CmsLog.getLog(this).debug("Template file is: " + templateFile);
84             CmsLog.getLog(this).debug("Selected template section is: " + ((templateSelector==null)?"<default>":templateSelector));
85         }
86         
87         CmsXmlWpTemplateFile xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, templateFile, elementName, parameters, templateSelector);
88         CmsRequestContext reqCont = cms.getRequestContext();
89         I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);
90         String JavaDoc step = (String JavaDoc)parameters.get(C_STEP);
91         String JavaDoc moduleName = (String JavaDoc)parameters.get(C_MODULE);
92         
93         if(step == null) {
94             String JavaDoc moduleVersion = OpenCms.getModuleManager().getModule(moduleName).getVersion().toString();
95             xmlTemplateDocument.setData("name", moduleName);
96             xmlTemplateDocument.setData("version", moduleVersion);
97             
98         } else if("showResult".equals(step)){
99             // first look if there is already a thread running.
100
A_CmsReportThread doTheWork = (A_CmsReportThread)session.getValue(C_MODULE_THREAD);
101             if(doTheWork.isAlive()){
102                 // thread is still running
103
xmlTemplateDocument.setData("endMethod", "");
104                 xmlTemplateDocument.setData("text", "");
105             }else{
106                 // thread is finished, activate the buttons
107
xmlTemplateDocument.setData("endMethod", xmlTemplateDocument.getDataValue("endMethod"));
108                 xmlTemplateDocument.setData("autoUpdate","");
109                 xmlTemplateDocument.setData("text", xmlTemplateDocument.getLanguageFile().getLanguageValue("module.lable.deleteend"));
110                 session.removeValue(C_MODULE_THREAD);
111             }
112             xmlTemplateDocument.setData("data", doTheWork.getReportUpdate());
113             return startProcessing(cms, xmlTemplateDocument, elementName, parameters, "updateReport");
114             
115         } else if(C_DELETE.equals(step)) {
116             CmsModule module = OpenCms.getModuleManager().getModule(moduleName);
117             List JavaDoc dependencies = OpenCms.getModuleManager().checkDependencies(module, CmsModuleManager.DEPENDENCY_MODE_DELETE);
118             if(!dependencies.isEmpty()) {
119                 // don't delete; send message error
120
xmlTemplateDocument.setData("name", module.getName());
121                 xmlTemplateDocument.setData("version", module.getVersion().toString());
122                 String JavaDoc depModules = "";
123                 for(int i = 0;i < dependencies.size();i++) {
124                     depModules += ((CmsModuleDependency)dependencies.get(i)).toString()+"\n";
125                 }
126                 xmlTemplateDocument.setData("precondition", depModules);
127                 templateSelector = C_ERROR;
128             }
129             else {
130                 // now we will look if there are any conflicting files
131
Vector JavaDoc filesWithProperty = new Vector JavaDoc();
132                 Vector JavaDoc missingFiles = new Vector JavaDoc();
133                 Vector JavaDoc wrongChecksum = new Vector JavaDoc();
134                 Vector JavaDoc filesInUse = new Vector JavaDoc();
135                 Vector JavaDoc resourcesForProject = new Vector JavaDoc();
136                 reqCont.setCurrentProject(cms.readProject(CmsProject.ONLINE_PROJECT_ID));
137                 session.putValue(C_SESSION_MODULENAME, moduleName);
138                 session.putValue(CmsWorkplaceDefault.C_SESSION_MODULE_PROJECTFILES, resourcesForProject);
139                 if(filesWithProperty.isEmpty() && missingFiles.isEmpty() && wrongChecksum.isEmpty() && filesInUse.isEmpty()) {
140                     step = "fromerrorpage";
141                 } else {
142                     session.putValue(CmsWorkplaceDefault.C_SESSION_MODULE_DELETE_STEP, "0");
143                     session.putValue(CmsWorkplaceDefault.C_SESSION_MODULE_CHECKSUM, wrongChecksum);
144                     session.putValue(CmsWorkplaceDefault.C_SESSION_MODULE_PROPFILES, filesWithProperty);
145                     session.putValue(CmsWorkplaceDefault.C_SESSION_MODULE_INUSE, filesInUse);
146                     session.putValue(CmsWorkplaceDefault.C_SESSION_MODULE_MISSFILES, missingFiles);
147                     templateSelector = C_WARNING;
148                 }
149             }
150             
151         }
152         // no else here because the value of "step" might have been changed above
153
if ("fromerrorpage".equals(step)) {
154             moduleName = (String JavaDoc)session.getValue(C_SESSION_MODULENAME);
155             List JavaDoc modules = new ArrayList JavaDoc();
156             modules.add(moduleName);
157             A_CmsReportThread doDelete = new CmsModuleDeleteThread(cms, modules, false, true);
158             doDelete.start();
159             session.putValue(C_MODULE_THREAD, doDelete);
160             xmlTemplateDocument.setData("time", "5");
161             templateSelector = "showresult";
162         }
163
164         // Now load the template file and start the processing
165
return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector);
166     }
167     
168     /**
169      * Indicates if the results of this class are cacheable.
170      *
171      * @param cms CmsObject Object for accessing system resources
172      * @param templateFile Filename of the template file
173      * @param elementName Element name of this template in our parent template.
174      * @param parameters Hashtable with all template class parameters.
175      * @param templateSelector template section that should be processed.
176      * @return <EM>true</EM> if cacheable, <EM>false</EM> otherwise.
177      */

178     public boolean isCacheable(CmsObject cms, String JavaDoc templateFile, String JavaDoc elementName, Hashtable JavaDoc parameters, String JavaDoc templateSelector) {
179         return false;
180     }
181 }
182
Popular Tags