1 19 20 package org.efs.openreports.actions.admin; 21 22 import java.io.File ; 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 submitType; 44 45 private String dateFormat; 46 private String baseDirectory; 47 private String tempDirectory; 48 private String mailHost; 49 private boolean mailAuthenticatorUsed; 50 private String mailUser; 51 private String mailPassword; 52 private String maxRows; 53 54 private int numberOfFiles; 55 private String directorySize; 56 private String imageTempDirectory; 57 58 private PropertiesProvider propertiesProvider; 59 private DateProvider dateProvider; 60 private DirectoryProvider directoryProvider; 61 private MailProvider mailProvider; 62 63 public String 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 (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 File imageTempDirFile = new File (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 98 return INPUT; 99 } 100 101 try 103 { 104 Integer.parseInt(maxRows); 105 } 106 catch(NumberFormatException 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 e) 138 { 139 addActionError(e.toString()); 140 return INPUT; 141 } 142 } 143 144 public String getSubmitType() 145 { 146 return submitType; 147 } 148 149 public void setSubmitType(String submitType) 150 { 151 this.submitType = submitType; 152 } 153 154 public String getBaseDirectory() 155 { 156 return baseDirectory; 157 } 158 159 public void setBaseDirectory(String baseDirectory) 160 { 161 this.baseDirectory = baseDirectory; 162 } 163 164 public String getDateFormat() 165 { 166 return dateFormat; 167 } 168 169 public void setDateFormat(String 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 getMailHost() 185 { 186 return mailHost; 187 } 188 189 public void setMailHost(String mailHost) 190 { 191 this.mailHost = mailHost; 192 } 193 194 public String getMailPassword() 195 { 196 return mailPassword; 197 } 198 199 public void setMailPassword(String mailPassword) 200 { 201 this.mailPassword = mailPassword; 202 } 203 204 public String getMailUser() 205 { 206 return mailUser; 207 } 208 209 public void setMailUser(String 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 getTempDirectory() 235 { 236 return tempDirectory; 237 } 238 239 public void setTempDirectory(String tempDirectory) 240 { 241 this.tempDirectory = tempDirectory; 242 } 243 244 public String getMaxRows() 245 { 246 return maxRows; 247 } 248 249 public void setMaxRows(String maxRows) 250 { 251 this.maxRows = maxRows; 252 } 253 254 public String getDirectorySize() 255 { 256 return directorySize; 257 } 258 259 public int getNumberOfFiles() 260 { 261 return numberOfFiles; 262 } 263 264 public String getImageTempDirectory() 265 { 266 return imageTempDirectory; 267 } 268 } | Popular Tags |