[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