KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > jforum > view > admin > SmiliesAction


1 /*
2  * Copyright (c) Rafael Steil
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms,
6  * with or without modification, are permitted provided
7  * that the following conditions are met:
8  *
9  * 1) Redistributions of source code must retain the above
10  * copyright notice, this list of conditions and the
11  * following disclaimer.
12  * 2) Redistributions in binary form must reproduce the
13  * above copyright notice, this list of conditions and
14  * the following disclaimer in the documentation and/or
15  * other materials provided with the distribution.
16  * 3) Neither the name of "Rafael Steil" nor
17  * the names of its contributors may be used to endorse
18  * or promote products derived from this software without
19  * specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
22  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
23  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
24  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
27  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
28  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES
30  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
32  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
33  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
34  * IN CONTRACT, STRICT LIABILITY, OR TORT
35  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
36  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
37  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
38  *
39  * This file creation date: 13/01/2004 / 18:45:31
40  * The JForum Project
41  * http://www.jforum.net
42  */

43 package net.jforum.view.admin;
44
45 import java.io.File JavaDoc;
46
47 import net.jforum.dao.DataAccessDriver;
48 import net.jforum.dao.SmilieDAO;
49 import net.jforum.entities.Smilie;
50 import net.jforum.repository.SmiliesRepository;
51 import net.jforum.util.MD5;
52 import net.jforum.util.legacy.commons.fileupload.FileItem;
53 import net.jforum.util.preferences.ConfigKeys;
54 import net.jforum.util.preferences.SystemGlobals;
55 import net.jforum.util.preferences.TemplateKeys;
56 import net.jforum.view.forum.common.UploadUtils;
57
58 /**
59  * @author Rafael Steil
60  * @version $Id: SmiliesAction.java,v 1.13 2005/09/30 23:19:20 rafaelsteil Exp $
61  */

62 public class SmiliesAction extends AdminCommand
63 {
64     private String JavaDoc processUpload() throws Exception JavaDoc
65     {
66         String JavaDoc imgName = "";
67         
68         if (this.request.getObjectParameter("smilie_img") != null) {
69             FileItem item = (FileItem)this.request.getObjectParameter("smilie_img");
70             UploadUtils uploadUtils = new UploadUtils(item);
71
72             imgName = MD5.crypt(item.getName());
73             
74             uploadUtils.saveUploadedFile(SystemGlobals.getApplicationPath()
75                     + "/"
76                     + SystemGlobals.getValue(ConfigKeys.SMILIE_IMAGE_DIR)
77                     + "/"
78                     + imgName + "." + uploadUtils.getExtension());
79             
80             imgName += "." + uploadUtils.getExtension();
81         }
82         
83         return imgName;
84     }
85     
86     public void insert()
87     {
88         this.setTemplateName(TemplateKeys.SMILIES_INSERT);
89         this.context.put("action", "insertSave");
90     }
91         
92     public void insertSave() throws Exception JavaDoc
93     {
94         Smilie s = new Smilie();
95         s.setCode(this.request.getParameter("code"));
96         
97         String JavaDoc imgName = this.processUpload();
98         s.setUrl(SystemGlobals.getValue(ConfigKeys.SMILIE_IMAGE_PATTERN).replaceAll("#IMAGE#", imgName));
99         
100         s.setDiskName(imgName);
101         
102         DataAccessDriver.getInstance().newSmilieDAO().addNew(s);
103         
104         SmiliesRepository.loadSmilies();
105         this.list();
106     }
107     
108     public void edit() throws Exception JavaDoc
109     {
110         int id = 1;
111         
112         if (this.request.getParameter("id") != null) {
113             id = this.request.getIntParameter("id");
114         }
115         
116         this.setTemplateName(TemplateKeys.SMILIES_EDIT);
117         this.context.put("smilie", DataAccessDriver.getInstance().newSmilieDAO().selectById(id));
118         this.context.put("action", "editSave");
119     }
120     
121     public void editSave() throws Exception JavaDoc
122     {
123         Smilie s = DataAccessDriver.getInstance().newSmilieDAO().selectById(this.request.getIntParameter("id"));
124         s.setCode(this.request.getParameter("code"));
125         
126         if (this.request.getObjectParameter("smilie_img") != null) {
127             String JavaDoc imgName = this.processUpload();
128             s.setUrl(SystemGlobals.getValue(ConfigKeys.SMILIE_IMAGE_PATTERN).replaceAll("#IMAGE#", imgName));
129             s.setDiskName(imgName);
130         }
131
132         DataAccessDriver.getInstance().newSmilieDAO().update(s);
133         
134         SmiliesRepository.loadSmilies();
135         this.list();
136     }
137     
138     public void delete() throws Exception JavaDoc
139     {
140         String JavaDoc[] ids = this.request.getParameterValues("id");
141         
142         if (ids != null) {
143             SmilieDAO dao = DataAccessDriver.getInstance().newSmilieDAO();
144             
145             for (int i = 0; i < ids.length; i++) {
146                 int id = Integer.parseInt(ids[i]);
147                 
148                 Smilie s = dao.selectById(id);
149                 dao.delete(id);
150                 
151                 File JavaDoc f = new File JavaDoc(SystemGlobals.getApplicationPath()
152                         + "/"
153                         + SystemGlobals.getValue(ConfigKeys.SMILIE_IMAGE_DIR)
154                         + "/"
155                         + s.getDiskName());
156
157                 if (f.exists()) {
158                     f.delete();
159                 }
160             }
161         }
162         
163         SmiliesRepository.loadSmilies();
164         this.list();
165     }
166
167     /**
168      * @see net.jforum.Command#list()
169      */

170     public void list() throws Exception JavaDoc
171     {
172         this.context.put("smilies", SmiliesRepository.getSmilies());
173         this.setTemplateName(TemplateKeys.SMILIES_LIST);
174     }
175 }
176
Popular Tags