KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > efs > openreports > actions > admin > EditPropertiesAction


1 /*
2  * Copyright (C) 2005 Erik Swenson - erik@oreports.com
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the Free
6  * Software Foundation; either version 2 of the License, or (at your option)
7  * any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16  * Place - Suite 330, Boston, MA 02111-1307, USA.
17  *
18  */

19
20 package org.efs.openreports.actions.admin;
21
22 import java.io.File JavaDoc;
23
24 import org.apache.commons.io.FileUtils;
25 import org.apache.log4j.Logger;
26 import org.efs.openreports.objects.ORProperty;
27 import org.efs.openreports.providers.DateProvider;
28 import org.efs.openreports.providers.DateProviderAware;
29 import org.efs.openreports.providers.DirectoryProvider;
30 import org.efs.openreports.providers.DirectoryProviderAware;
31 import org.efs.openreports.providers.MailProvider;
32 import org.efs.openreports.providers.MailProviderAware;
33 import org.efs.openreports.providers.PropertiesProvider;
34 import org.efs.openreports.providers.PropertiesProviderAware;
35 import org.efs.openreports.util.LocalStrings;
36
37 import com.opensymphony.xwork.ActionSupport;
38
39 public class EditPropertiesAction extends ActionSupport implements PropertiesProviderAware, DateProviderAware, DirectoryProviderAware, MailProviderAware
40 {
41     protected static Logger log = Logger.getLogger(EditPropertiesAction.class);
42
43     private String JavaDoc submitType;
44
45     private String JavaDoc dateFormat;
46     private String JavaDoc baseDirectory;
47     private String JavaDoc tempDirectory;
48     private String JavaDoc mailHost;
49     private boolean mailAuthenticatorUsed;
50     private String JavaDoc mailUser;
51     private String JavaDoc mailPassword;
52     private String JavaDoc maxRows;
53     
54     private int numberOfFiles;
55     private String JavaDoc directorySize;
56     private String JavaDoc imageTempDirectory;
57
58     private PropertiesProvider propertiesProvider;
59     private DateProvider dateProvider;
60     private DirectoryProvider directoryProvider;
61     private MailProvider mailProvider;
62     
63     public String JavaDoc execute()
64     {
65         try
66         {
67             if (submitType == null)
68             {
69                 dateFormat = dateProvider.getDateFormat().toPattern();
70                 baseDirectory = directoryProvider.getReportDirectory();
71                 tempDirectory = directoryProvider.getTempDirectory();
72
73                 ORProperty property = propertiesProvider.getProperty(ORProperty.MAIL_SMTP_HOST);
74                 if (property != null) mailHost = property.getValue();
75
76                 property = propertiesProvider.getProperty(ORProperty.MAIL_SMTP_AUTH);
77                 if (property != null) mailAuthenticatorUsed = new Boolean JavaDoc(property.getValue()).booleanValue();
78
79                 property = propertiesProvider.getProperty(ORProperty.MAIL_AUTH_USER);
80                 if (property != null) mailUser = property.getValue();
81
82                 property = propertiesProvider.getProperty(ORProperty.MAIL_AUTH_PASSWORD);
83                 if (property != null) mailPassword = property.getValue();
84                 
85                 property = propertiesProvider.getProperty(ORProperty.QUERYREPORT_MAXROWS);
86                 if (property != null) maxRows = property.getValue();
87                 
88                 //
89
File JavaDoc imageTempDirFile = new File JavaDoc(directoryProvider.getReportImageTempDirectory());
90                 imageTempDirectory = imageTempDirFile.getPath();
91                 
92                 long size = FileUtils.sizeOfDirectory(imageTempDirFile);
93                 directorySize = FileUtils.byteCountToDisplaySize(size);
94                 
95                 numberOfFiles = imageTempDirFile.listFiles().length;
96                 //
97

98                 return INPUT;
99             }
100             
101             // validate maxRows is an integer
102
try
103             {
104                 Integer.parseInt(maxRows);
105             }
106             catch(NumberFormatException JavaDoc nfe)
107             {
108                 addActionError(LocalStrings.getString(LocalStrings.ERROR_INVALID_MAXROWS));
109                 return INPUT;
110             }
111
112             propertiesProvider.setProperty(ORProperty.BASE_DIRECTORY, baseDirectory);
113             if (baseDirectory != null) directoryProvider.setReportDirectory(baseDirectory);
114             
115             propertiesProvider.setProperty(ORProperty.TEMP_DIRECTORY, tempDirectory);
116             if (tempDirectory != null) directoryProvider.setTempDirectory(tempDirectory);
117             
118             propertiesProvider.setProperty(ORProperty.DATE_FORMAT, dateFormat);
119             if (dateFormat != null) dateProvider.setDateFormat(dateFormat);
120             
121             propertiesProvider.setProperty(ORProperty.MAIL_AUTH_PASSWORD, mailPassword);
122             if (mailPassword != null) mailProvider.setPassword(mailPassword);
123             
124             propertiesProvider.setProperty(ORProperty.MAIL_AUTH_USER, mailUser);
125             if (mailUser !=null) mailProvider.setUserName(mailUser);
126             
127             propertiesProvider.setProperty(ORProperty.MAIL_SMTP_AUTH, String.valueOf(mailAuthenticatorUsed));
128             mailProvider.setUseMailAuthenticator(mailAuthenticatorUsed);
129             
130             propertiesProvider.setProperty(ORProperty.MAIL_SMTP_HOST, mailHost);
131             if (mailHost != null) mailProvider.setMailHost(mailHost);
132                                     
133             propertiesProvider.setProperty(ORProperty.QUERYREPORT_MAXROWS, maxRows);
134
135             return SUCCESS;
136         }
137         catch (Exception JavaDoc e)
138         {
139             addActionError(e.toString());
140             return INPUT;
141         }
142     }
143
144     public String JavaDoc getSubmitType()
145     {
146         return submitType;
147     }
148
149     public void setSubmitType(String JavaDoc submitType)
150     {
151         this.submitType = submitType;
152     }
153
154     public String JavaDoc getBaseDirectory()
155     {
156         return baseDirectory;
157     }
158
159     public void setBaseDirectory(String JavaDoc baseDirectory)
160     {
161         this.baseDirectory = baseDirectory;
162     }
163
164     public String JavaDoc getDateFormat()
165     {
166         return dateFormat;
167     }
168
169     public void setDateFormat(String JavaDoc dateFormat)
170     {
171         this.dateFormat = dateFormat;
172     }
173
174     public boolean isMailAuthenticatorUsed()
175     {
176         return mailAuthenticatorUsed;
177     }
178
179     public void setMailAuthenticatorUsed(boolean mailAuthenticatorUsed)
180     {
181         this.mailAuthenticatorUsed = mailAuthenticatorUsed;
182     }
183
184     public String JavaDoc getMailHost()
185     {
186         return mailHost;
187     }
188
189     public void setMailHost(String JavaDoc mailHost)
190     {
191         this.mailHost = mailHost;
192     }
193
194     public String JavaDoc getMailPassword()
195     {
196         return mailPassword;
197     }
198
199     public void setMailPassword(String JavaDoc mailPassword)
200     {
201         this.mailPassword = mailPassword;
202     }
203
204     public String JavaDoc getMailUser()
205     {
206         return mailUser;
207     }
208
209     public void setMailUser(String JavaDoc mailUser)
210     {
211         this.mailUser = mailUser;
212     }
213
214     public void setPropertiesProvider(PropertiesProvider propertiesProvider)
215     {
216         this.propertiesProvider = propertiesProvider;
217     }
218
219     public void setDateProvider(DateProvider dateProvider)
220     {
221         this.dateProvider = dateProvider;
222     }
223     
224     public void setDirectoryProvider(DirectoryProvider directoryProvider)
225     {
226         this.directoryProvider = directoryProvider;
227     }
228
229     public void setMailProvider(MailProvider mailProvider)
230     {
231         this.mailProvider = mailProvider;
232     }
233
234     public String JavaDoc getTempDirectory()
235     {
236         return tempDirectory;
237     }
238
239     public void setTempDirectory(String JavaDoc tempDirectory)
240     {
241         this.tempDirectory = tempDirectory;
242     }
243
244     public String JavaDoc getMaxRows()
245     {
246         return maxRows;
247     }
248
249     public void setMaxRows(String JavaDoc maxRows)
250     {
251         this.maxRows = maxRows;
252     }
253
254     public String JavaDoc getDirectorySize()
255     {
256         return directorySize;
257     }
258
259     public int getNumberOfFiles()
260     {
261         return numberOfFiles;
262     }
263
264     public String JavaDoc getImageTempDirectory()
265     {
266         return imageTempDirectory;
267     }
268 }
Popular Tags