[Castore-commits] WelcomePortlet.java NONE 1.1

Arnaud Thimel thimel at adullact1.hosting.cri74.org
Mer 14 Juin 20:27:58 CEST 2006


Update of /cvsroot/castore/castore-portlets/src/java/fr/emn/castor/portlets/welcome
In directory adullact1:/tmp/cvs-serv8222/src/java/fr/emn/castor/portlets/welcome

Added Files:
	WelcomePortlet.java 
Log Message:
Commit de castore-portlets

--- NEW FILE: WelcomePortlet.java ---
/*
 * $Id: WelcomePortlet.java,v 1.1 2006/06/14 18:27:56 thimel Exp $
 *
 * Plateforme CASTORE
 * CeCILL Copyright (C) 2005-2006 by EMN
 * Made by Stéphane Bouchet
 * Web site = http://www.emn.fr/castore
 * Contact = Cédric Dumas, e-mail = Cedric.Dumas at emn.fr
 *
 * Version 1.0 (1er mars 2005)
 *
 * Ce logiciel est un programme informatique servant à créer une plateforme
 * open-source de bibliothèque numérique XML pour Conserver, Valoriser et
 * Diffuser le patrimoine documentaire de votre institut.
 *
 * Ce logiciel est régi par la licence CeCILL soumise au droit français et
 * respectant les principes de diffusion des logiciels libres. Vous pouvez
 * utiliser, modifier et/ou redistribuer ce programme sous les conditions de la
 * licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA sur le site
 * "http://www.cecill.info". En contrepartie de l'accessibilité au code source
 * et des droits de copie, de modification et de redistribution accordés par
 * cette licence, il n'est offert aux utilisateurs qu'une garantie limitée. Pour
 * les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
 * programme, le titulaire des droits patrimoniaux et les concédants successifs.
 * A cet égard l'attention de l'utilisateur est attirée sur les risques associés
 * au chargement, à l'utilisation, à la modification et/ou au développement et à
 * la reproduction du logiciel par l'utilisateur étant donné sa spécificité de
 * logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
 * donc à des développeurs et des professionnels avertis possédant des
 * connaissances informatiques approfondies. Les utilisateurs sont donc invités
 * à charger et tester l'adéquation du logiciel à leurs besoins dans des
 * conditions permettant d'assurer la sécurité de leurs systèmes et ou de leurs
 * données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes
 * conditions de sécurité. Le fait que vous puissiez accéder à cet en-tête
 * signifie que vous avez pris connaissance de la licence CeCILL, et que vous en
 * avez accepté les termes.
 *
 */

package fr.emn.castor.portlets.welcome;

import static fr.emn.castor.portlets.PortletConstants.MIME_HTML;
import static fr.emn.castor.portlets.PortletConstants.NS_WELCOME;
import static fr.emn.castor.users.UsersConstants.INFO_PREF_NB_DERNIERES_COLLS_VISIBLE;
import static fr.emn.castor.users.UsersConstants.INFO_PREF_NB_DERNIERS_DOCS_VISIBLE;
import static javax.portlet.PortletMode.EDIT;
import static javax.portlet.PortletMode.VIEW;

import java.io.IOException;
import java.util.Map;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import fr.emn.castor.portlets.BaseCastorePortlet;
import fr.emn.castor.presentation.accueil.AccueilBean;
import fr.emn.castor.presentation.accueil.AccueilBeanFactory;
import fr.emn.castor.presentation.preferences.PreferenceBean;
import fr.emn.castor.presentation.preferences.PreferencesBeanFactory;
import fr.emn.castor.users.IUser;
import fr.emn.castor.users.UsersException;

/**
 * Portlet de la page d'accueil. Elle affiche le nombre de documents soumis et
 * leur etat actuel. Elle affiche aussi les derniers documents lus et les
 * dernieres collections consultees.
 * 
 * Cette portlet a aussi un mode EDIT pour l'edition des preferences.
 */
public class WelcomePortlet extends BaseCastorePortlet {

    private Log log = LogFactory.getLog(WelcomePortlet.class);

    /**
     * @see fr.emn.castor.portlets.BaseCastorePortlet#getLog()
     */
    @Override
    public Log getLog() {
        return log;
    }

    /**
     * @see fr.emn.castor.portlets.BaseCastorePortlet#doView(
     * javax.portlet.RenderRequest, javax.portlet.RenderResponse)
     */
    @Override
    protected void doView(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {
        super.doView(request, response);

        String userId = request.getRemoteUser();

        AccueilBean bean = AccueilBeanFactory.getAcceuilBean(null, userId);
        request.setAttribute("profil", bean);

        String messages = request.getParameter("messages");
        if (messages != null && !"".equals(messages)) {
            request.setAttribute(
                    "messages", 
                    messages.substring(0, messages.length()-1).split(","));
            log (messages.substring(0, messages.length()-1).split(","));
        }

        response.setContentType(MIME_HTML);
        String jspPage = NS_WELCOME + "view.jsp";
        PortletRequestDispatcher dispatcher;
        dispatcher = getPortletContext().getRequestDispatcher(jspPage);
        dispatcher.include(request, response);
    }

    /**
     * @see fr.emn.castor.portlets.BaseCastorePortlet#doEdit(
     * javax.portlet.RenderRequest, javax.portlet.RenderResponse)
     */
    @Override
    protected void doEdit(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {
        super.doEdit(request, response);

        String userId = request.getRemoteUser();

        PreferenceBean prefs = PreferencesBeanFactory.getPreferenceBean(userId);
        request.setAttribute("prefs", prefs);

        String errors = request.getParameter("errors");
        if (errors != null && !"".equals(errors)) {
            request.setAttribute(
                    "errormessages", 
                    errors.substring(0, errors.length()-1).split(","));
        }

        response.setContentType(MIME_HTML);
        String jspPage = NS_WELCOME + "edit.jsp";
        PortletRequestDispatcher dispatcher;
        dispatcher = getPortletContext().getRequestDispatcher(jspPage);
        dispatcher.include(request, response);
    }

    /**
     * @see fr.emn.castor.portlets.BaseCastorePortlet#processAction(
     * javax.portlet.ActionRequest, javax.portlet.ActionResponse)
     */
    @Override
    public void processAction(ActionRequest request, ActionResponse response) 
            throws PortletException, IOException {
        super.processAction(request, response);
        if (EDIT.equals(request.getPortletMode())) {
            Integer nbdocs = null;
            if (request.getParameter("nbdocs") != null) {
                try {
                    nbdocs = new Integer(request.getParameter("nbdocs"));
                } catch (NumberFormatException nfe) {
                    log(nfe);
                }
            }

            Integer nbcolls = null;
            if (request.getParameter("nbcolls") != null) {
                try {
                    nbcolls = new Integer(request.getParameter("nbcolls"));
                } catch (NumberFormatException nfe) {
                    log(nfe);
                }
            }

            String userId = request.getRemoteUser();
            IUser userFacade = getUserFacade(request);
    
            String error = "";
            Map prefs = userFacade.getPreferenceMap(userId);
            if (nbdocs != null) {
                prefs.put(INFO_PREF_NB_DERNIERS_DOCS_VISIBLE, nbdocs);
            } else {
                error += "welcome.edit.nbdocs.invalid,";
            }
            if (nbcolls != null) {
                prefs.put(INFO_PREF_NB_DERNIERES_COLLS_VISIBLE, nbcolls);
            } else {
                error += "welcome.edit.nbcolls.invalid,";
            }

            if (nbcolls != null || nbdocs != null) {
                try {
                    log("saving prefs : colls " + nbcolls + " docs " + nbdocs);
                    userFacade.setPreferenceMap(userId, prefs);
                } catch (UsersException ue) {
                    log(ue);
                    error += "welcome.edit.error,";
                }
            }
            if (!"".equals(error)) {
                response.setRenderParameter("errors", error);
            } else {
                response.setRenderParameter("messages", "welcome.edit.saved,");
                response.setPortletMode(VIEW);
            }
        }
    }

} //WelcomePortlet




Plus d'informations sur la liste de diffusion Castore-commits