package com.n2bb.settings;

import com.n2bb.action.AbstractAction;
import com.n2bb.util.N2bbSettings;
import com.n2bb.util.PropertyManager;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Saves the UI settings.
 *
 * @author kmatsuoka
 * @version $Id: SaveSettingsAction.java,v 1.1 2006/06/17 00:48:49 rao Exp $
 */
public class SaveSettingsAction extends AbstractAction {

    protected ActionForward executeAction(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        EditSettingsForm editSettingsForm = (EditSettingsForm) form;
        com.n2bb.util.PropertyManager pm = com.n2bb.util.PropertyManager.getInstance();
        pm.setValue(PropertyManager.PASSWORD_LIFE_PROPERTY, editSettingsForm.getPasswordLife());
        pm.setValue(PropertyManager.SESSION_TIMEOUT_PROPERTY, editSettingsForm.getSessionTimeout());
        pm.setValue(PropertyManager.PAGE_SIZE_PROPERTY, editSettingsForm.getPageSize());
        pm.setValue(PropertyManager.SITE_LOCATION_PROPERTY, editSettingsForm.getSiteLocation());
        pm.setValue(PropertyManager.SHOW_USER_PROPERTY, editSettingsForm.getShowUser());
        pm.setValue(PropertyManager.SHOW_DATE_PROPERTY, editSettingsForm.getShowDate());

        N2bbSettings.PAGE_SIZE = Integer.parseInt(editSettingsForm.getPageSize());
        ServletContext servletContext = servlet.getServletContext();
        servletContext.setAttribute("siteLocation", editSettingsForm.getSiteLocation());
        servletContext.setAttribute("showUser", editSettingsForm.getShowUser());
        servletContext.setAttribute("showDate", editSettingsForm.getShowDate());

        saveGlobalMessage("message.settings.saved", request);
        return mapping.findForward("success");
    }

}
