org.efs.openreports.actions.admin.EditPropertiesAction.java Source code

Java tutorial

Introduction

Here is the source code for org.efs.openreports.actions.admin.EditPropertiesAction.java

Source

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

package org.efs.openreports.actions.admin;

import java.io.File;

import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
import org.efs.openreports.objects.ORProperty;
import org.efs.openreports.providers.DateProvider;
import org.efs.openreports.providers.DateProviderAware;
import org.efs.openreports.providers.DirectoryProvider;
import org.efs.openreports.providers.DirectoryProviderAware;
import org.efs.openreports.providers.MailProvider;
import org.efs.openreports.providers.MailProviderAware;
import org.efs.openreports.providers.PropertiesProvider;
import org.efs.openreports.providers.PropertiesProviderAware;
import org.efs.openreports.util.LocalStrings;

import com.opensymphony.xwork.ActionSupport;

public class EditPropertiesAction extends ActionSupport
        implements PropertiesProviderAware, DateProviderAware, DirectoryProviderAware, MailProviderAware {
    protected static Logger log = Logger.getLogger(EditPropertiesAction.class);

    private String submitType;

    private String dateFormat;
    private String baseDirectory;
    private String tempDirectory;
    private String mailHost;
    private boolean mailAuthenticatorUsed;
    private String mailUser;
    private String mailPassword;
    private String maxRows;
    private String reportGenerationDirectory;

    private int numberOfFiles;
    private String directorySize;
    private String imageTempDirectory;

    private PropertiesProvider propertiesProvider;
    private DateProvider dateProvider;
    private DirectoryProvider directoryProvider;
    private MailProvider mailProvider;

    public String execute() {
        try {
            if (submitType == null) {
                dateFormat = dateProvider.getDateFormat().toPattern();
                baseDirectory = directoryProvider.getReportDirectory();
                tempDirectory = directoryProvider.getTempDirectory();
                reportGenerationDirectory = directoryProvider.getReportGenerationDirectory();

                ORProperty property = propertiesProvider.getProperty(ORProperty.MAIL_SMTP_HOST);
                if (property != null)
                    mailHost = property.getValue();

                property = propertiesProvider.getProperty(ORProperty.MAIL_SMTP_AUTH);
                if (property != null)
                    mailAuthenticatorUsed = new Boolean(property.getValue()).booleanValue();

                property = propertiesProvider.getProperty(ORProperty.MAIL_AUTH_USER);
                if (property != null)
                    mailUser = property.getValue();

                property = propertiesProvider.getProperty(ORProperty.MAIL_AUTH_PASSWORD);
                if (property != null)
                    mailPassword = property.getValue();

                property = propertiesProvider.getProperty(ORProperty.QUERYREPORT_MAXROWS);
                if (property != null)
                    maxRows = property.getValue();

                //
                File imageTempDirFile = new File(directoryProvider.getReportImageTempDirectory());
                imageTempDirectory = imageTempDirFile.getPath();

                long size = FileUtils.sizeOfDirectory(imageTempDirFile);
                directorySize = FileUtils.byteCountToDisplaySize(size);

                numberOfFiles = imageTempDirFile.listFiles().length;
                //

                return INPUT;
            }

            // validate maxRows is an integer
            try {
                Integer.parseInt(maxRows);
            } catch (NumberFormatException nfe) {
                addActionError(LocalStrings.getString(LocalStrings.ERROR_INVALID_MAXROWS));
                return INPUT;
            }

            propertiesProvider.setProperty(ORProperty.BASE_DIRECTORY, baseDirectory);
            if (baseDirectory != null)
                directoryProvider.setReportDirectory(baseDirectory);

            propertiesProvider.setProperty(ORProperty.TEMP_DIRECTORY, tempDirectory);
            if (tempDirectory != null)
                directoryProvider.setTempDirectory(tempDirectory);

            propertiesProvider.setProperty(ORProperty.REPORT_GENERATION_DIRECTORY, reportGenerationDirectory);
            if (tempDirectory != null)
                directoryProvider.setReportGenerationDirectory(reportGenerationDirectory);

            propertiesProvider.setProperty(ORProperty.DATE_FORMAT, dateFormat);
            if (dateFormat != null)
                dateProvider.setDateFormat(dateFormat);

            propertiesProvider.setProperty(ORProperty.MAIL_AUTH_PASSWORD, mailPassword);
            if (mailPassword != null)
                mailProvider.setPassword(mailPassword);

            propertiesProvider.setProperty(ORProperty.MAIL_AUTH_USER, mailUser);
            if (mailUser != null)
                mailProvider.setUserName(mailUser);

            propertiesProvider.setProperty(ORProperty.MAIL_SMTP_AUTH, String.valueOf(mailAuthenticatorUsed));
            mailProvider.setUseMailAuthenticator(mailAuthenticatorUsed);

            propertiesProvider.setProperty(ORProperty.MAIL_SMTP_HOST, mailHost);
            if (mailHost != null)
                mailProvider.setMailHost(mailHost);

            propertiesProvider.setProperty(ORProperty.QUERYREPORT_MAXROWS, maxRows);

            return SUCCESS;
        } catch (Exception e) {
            addActionError(e.toString());
            return INPUT;
        }
    }

    public String getSubmitType() {
        return submitType;
    }

    public void setSubmitType(String submitType) {
        this.submitType = submitType;
    }

    public String getBaseDirectory() {
        return baseDirectory;
    }

    public void setBaseDirectory(String baseDirectory) {
        this.baseDirectory = baseDirectory;
    }

    public String getDateFormat() {
        return dateFormat;
    }

    public void setDateFormat(String dateFormat) {
        this.dateFormat = dateFormat;
    }

    public boolean isMailAuthenticatorUsed() {
        return mailAuthenticatorUsed;
    }

    public void setMailAuthenticatorUsed(boolean mailAuthenticatorUsed) {
        this.mailAuthenticatorUsed = mailAuthenticatorUsed;
    }

    public String getMailHost() {
        return mailHost;
    }

    public void setMailHost(String mailHost) {
        this.mailHost = mailHost;
    }

    public String getMailPassword() {
        return mailPassword;
    }

    public void setMailPassword(String mailPassword) {
        this.mailPassword = mailPassword;
    }

    public String getMailUser() {
        return mailUser;
    }

    public void setMailUser(String mailUser) {
        this.mailUser = mailUser;
    }

    public void setPropertiesProvider(PropertiesProvider propertiesProvider) {
        this.propertiesProvider = propertiesProvider;
    }

    public void setDateProvider(DateProvider dateProvider) {
        this.dateProvider = dateProvider;
    }

    public void setDirectoryProvider(DirectoryProvider directoryProvider) {
        this.directoryProvider = directoryProvider;
    }

    public void setMailProvider(MailProvider mailProvider) {
        this.mailProvider = mailProvider;
    }

    public String getTempDirectory() {
        return tempDirectory;
    }

    public void setTempDirectory(String tempDirectory) {
        this.tempDirectory = tempDirectory;
    }

    public String getMaxRows() {
        return maxRows;
    }

    public void setMaxRows(String maxRows) {
        this.maxRows = maxRows;
    }

    public String getDirectorySize() {
        return directorySize;
    }

    public int getNumberOfFiles() {
        return numberOfFiles;
    }

    public String getImageTempDirectory() {
        return imageTempDirectory;
    }

    public String getReportGenerationDirectory() {
        return reportGenerationDirectory;
    }

    public void setReportGenerationDirectory(String reportGenerationDirectory) {
        this.reportGenerationDirectory = reportGenerationDirectory;
    }
}