package fi.arcusys.koku.web;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletMode;
import javax.portlet.PortletPreferences;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.bind.annotation.ActionMapping;
import org.springframework.web.portlet.bind.annotation.RenderMapping;
import static fi.arcusys.koku.util.Constants.*;
/**
* Handles the action in configuration mode,
* @author Jinhua Chen
* Jun 22, 2011
*/
@Controller("configController")
@RequestMapping(value = "EDIT")
public class ConfigController {
private static final Logger LOG = LoggerFactory.getLogger(ConfigController.class);
@RenderMapping
public String showConfig(RenderRequest request, RenderResponse response, ModelMap modelmap) {
LOG.debug("show edit mode");
return VIEW_CONFIG;
}
@ActionMapping(params="myaction=config")
public void doConfig(ActionRequest request, ActionResponse response) {
try {
PortletPreferences pref = request.getPreferences();
String refreshDuration = request.getParameter(PREF_REFRESH_DURATION);
String messageType = request.getParameter(PREF_MESSAGE_TYPE);
LOG.info("User '"+request.getRemoteUser() + "' saved settings: refresh: " + refreshDuration + " messageType: " + messageType);
pref.setValue(PREF_REFRESH_DURATION, refreshDuration);
pref.setValue(PREF_MESSAGE_TYPE, messageType);
pref.store();
response.setPortletMode(PortletMode.VIEW);
response.setWindowState(WindowState.NORMAL);
} catch (Exception e) {
LOG.error("Configuration edit mode failed with exception");
}
}
}