/*
 * Copyright 2006 The Apache Software Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.nutch.webapp.controller;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.nutch.webapp.common.Preferences;
import org.apache.nutch.webapp.common.ServiceLocator;
import org.apache.struts.tiles.ComponentContext;

/**
 * Simple controller for preferences page
 */
public class PreferencesController extends NutchController {

  public void nutchPerform(ComponentContext tileContext,
      HttpServletRequest request, HttpServletResponse response,
      ServletContext servletContext) throws ServletException, IOException {

    ServiceLocator locator = getServiceLocator(request);

    if (tileContext.getAttribute("action").equals("save")) {
      LOG.info("save");
      Preferences p=Preferences.parse(request.getQueryString(),"&", "=");
      LOG.info("setting cookie");
      Preferences.setPreferencesCookie(request,response,p);
      LOG.info("setting attribute");
      request.setAttribute("preferences", p);
    } else {
      LOG.info("view");
      request.setAttribute("preferences", locator.getPreferences());
    }
    
    // add List languages  (defined in tles-defs)
    request.setAttribute("languages", tileContext.getAttribute("languages"));

    // add List hitsPerPages (defined in tles-defs)
    request.setAttribute("hitsPerPage", tileContext.getAttribute("hitsPerPage"));
    
  }
}

add simple preferences page