Newer
Older
simple-jdbc-stats / src / nl / astraeus / jdbc / web / page / SettingsOverview.java
Rien Nentjes on 2 May 2012 1 KB Small changes, added MIT licence
package nl.astraeus.jdbc.web.page;

import nl.astraeus.jdbc.JdbcLogger;
import nl.astraeus.jdbc.web.model.Settings;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

/**
 * User: rnentjes
 * Date: 4/17/12
 * Time: 9:19 PM
 */
public class SettingsOverview extends TemplatePage {

    @Override
    public Page processRequest(HttpServletRequest request) {
        Page result = this;

        Settings settings = Settings.get();

        if ("save".equals(request.getParameter("action"))) {
            String nrq = request.getParameter("queries");
            String pq = request.getParameter("formattedQueries");

            if (nrq != null) {
                settings.setNumberOfQueries(Integer.parseInt(nrq));
            }

            if (pq != null) {
                settings.setFormattedQueries(true);
            } else {
                settings.setFormattedQueries(false);
            }

            JdbcLogger.get().setNumberOfQueries(settings.getNumberOfQueries());
            JdbcLogger.get().setFormattedQueries(settings.isFormattedQueries());
            
            Warnings.get(request).addMessage(Warnings.Message.Type.SUCCESS, "Success!", "Settings are successfully saved.");
        }

        return result;
    }

    @Override
    public Map<String, Object> defineModel(HttpServletRequest request) {
        Map<String, Object> result = new HashMap<String, Object>();
        Settings settings = Settings.get();

        int nrq = settings.getNumberOfQueries();
        result.put("q1000", nrq == 1000);
        result.put("q2500", nrq == 2500);
        result.put("q5000", nrq == 5000);
        result.put("q10000", nrq == 10000);
        result.put("q15000", nrq == 15000);
        result.put("q25000", nrq == 25000);

        result.put("formattedQueries", settings.isFormattedQueries());

        return result;
    }
}