package com.n2bb.settings;

import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;

/**
 * Edit UI settings with this form.
 *
 * @author kmatsuoka
 * @version $Id: EditSettingsForm.java,v 1.1 2006/06/17 00:48:49 rao Exp $
 */
public class EditSettingsForm extends ActionForm {

  /** password life in days */
    private String passwordLife;
    /** session timeout in minutes */
    private String sessionTimeout;
    /** items per page in data lists */
    private String pageSize;
    /** site name */
    private String siteLocation;
    /** whether to show current user's login name in header */
    private String showUser;
    /** whether to show current date in header */
    private String showDate;

    public ActionErrors validate(ActionMapping mapping,
            HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        int passwordLifeInt = -1;
        try {
            if (passwordLife != null) {
                passwordLifeInt = Integer.parseInt(passwordLife);
            }
        }
        catch (NumberFormatException ex) {}
        if (passwordLifeInt < 0) {
            errors.add("passwordLife", new ActionError("error.setting.passwordLife.invalid"));
        }
        int sessionTimeoutInt = -1;
        try {
            if (sessionTimeout != null) {
                sessionTimeoutInt = Integer.parseInt(sessionTimeout);
            }
        }
        catch (NumberFormatException ex) {}
        if (sessionTimeoutInt < 0) {
            errors.add("sessionTimeout", new ActionError("error.setting.sessionTimeout.invalid"));
        }
        int pageSizeInt = -1;
        try {
            if (pageSize != null) {
                pageSizeInt = Integer.parseInt(pageSize);
            }
        }
        catch (NumberFormatException ex) {}
        if (pageSizeInt < 1 || pageSizeInt > 100) {
            errors.add("pageSize", new ActionError("error.setting.pageSize.invalid"));
        }

        return errors;
    }

    public String getPasswordLife() {
        return passwordLife;
    }

    public void setPasswordLife(String passwordLife) {
        this.passwordLife = passwordLife;
    }

    public String getSessionTimeout() {
        return sessionTimeout;
    }

    public void setSessionTimeout(String sessionTimeout) {
        this.sessionTimeout = sessionTimeout;
    }

    public String getPageSize() {
        return pageSize;
    }

    public void setPageSize(String pageSize) {
        this.pageSize = pageSize;
    }

    public String getSiteLocation() {
        return siteLocation;
    }

    public void setSiteLocation(String siteLocation) {
        this.siteLocation = siteLocation;
    }

    public String getShowUser() {
        return showUser;
    }

    public void setShowUser(String showUser) {
        this.showUser = showUser;
    }

    public String getShowDate() {
        return showDate;
    }

    public void setShowDate(String showDate) {
        this.showDate = showDate;
    }
}
