001 /*
002 * Created on 28.04.2004
003 */
004 package de.fub.tip.actions;
005
006 import java.sql.SQLException;
007
008 import javax.servlet.http.HttpServletRequest;
009 import javax.servlet.http.HttpServletResponse;
010 import javax.sql.DataSource;
011
012 import org.apache.log4j.Logger;
013 import org.apache.struts.action.Action;
014 import org.apache.struts.action.ActionForm;
015 import org.apache.struts.action.ActionForward;
016 import org.apache.struts.action.ActionMapping;
017 import org.apache.struts.action.ActionMessage;
018 import org.apache.struts.action.ActionMessages;
019
020 import de.fub.tip.actionforms.ChangeProfilActionForm;
021 import de.fub.tip.datenanzeige.ormapper.UserdataVO;
022 import de.fub.tip.datenbank.factory.ThemenBearbeiterFactory;
023 import de.fub.tip.datenbank.logik.ThemenBearbeiter;
024 import de.fub.tip.exceptions.NoDataFoundException;
025 import de.fub.tip.exceptions.NoUserLoggedInException;
026
027 /**
028 * Sinn: Diese Aktion führt etwaige Änderungen am
029 * Themengruppenprofil eines Benutzers durch,
030 * speichert das neue Profil in der Datenbank ab und informiert über
031 * Erfolg/Misserfolg der Aktion.
032 *
033 * @author hirsch, 28.04.2004
034 * @version 2004-04-30
035 *
036 * $Id: UebernimmTopicGruppenProfilAction.java,v 1.6 2004/05/01 15:31:25 hirsch Exp $
037 */
038 public class UebernimmTopicGruppenProfilAction extends Action {
039 /** Logger zur Fehlersuche */
040 private static Logger logger =
041 Logger.getLogger(UebernimmTopicGruppenProfilAction.class);
042
043 /**
044 * ändert das Sehenswürdigkeitsgruppenprofil eines Benutzers
045 *
046 * @param actionMapping ActionMapping
047 * @param actionForm zugehörige ActionForm
048 * @param request der aktuelle Request
049 * @param response ServletResponse
050 *
051 * @return ActionForward nächstes Ziel
052 */
053 public ActionForward execute(ActionMapping actionMapping,
054 ActionForm actionForm, HttpServletRequest request,
055 HttpServletResponse response ) {
056
057 logger.info("UebernimmTopicGruppenProfilAction.execute() called.");
058 DataSource dataSource = null;
059 ChangeProfilActionForm form = null;
060 ActionMessages messages = new ActionMessages();
061 ActionMessage message = null;
062
063 try {
064 dataSource = this.getDataSource(request, "tip");
065 ThemenBearbeiter logik = (ThemenBearbeiter)
066 ThemenBearbeiterFactory.getInstance(dataSource).
067 getLogicObject();
068
069 form = (ChangeProfilActionForm) actionForm;
070
071 // Attribute aus der Session holen
072 UserdataVO user = (UserdataVO) request.getSession().
073 getAttribute("user");
074
075 logik.setTopicGroupProfileForUser(user, form.getSelnames());
076
077 } catch (SQLException e) {
078 logger.debug("UebernimmTopicGruppenProfilAction.SQLException "+
079 e + ", " + e.getLocalizedMessage());
080
081 return actionMapping.findForward("dbproblem");
082
083 } catch (NoUserLoggedInException e) {
084 logger.debug("UebernimmTopicGruppenProfilAction." +
085 "NoUserLoggedIn "+ e + ", " + e.getLocalizedMessage());
086
087 return actionMapping.findForward("loginproblem");
088
089 } catch (NoDataFoundException e) {
090 logger.debug("UebernimmTopicGruppenProfilAction." +
091 "nichts gefunden "+ e + ", " + e.getLocalizedMessage());
092
093 message = new ActionMessage("changeprofil.tgroup.failure");
094 messages.add( ActionMessages.GLOBAL_MESSAGE, message );
095
096 saveMessages( request, messages );
097
098 return actionMapping.findForward("success");
099
100 } // end of catch
101
102 // ActionMessage für Erfolgsfall schreiben
103 message =new ActionMessage("changeprofil.tgroup.meta");
104 messages.add( ActionMessages.GLOBAL_MESSAGE, message );
105
106 if (form.getSelnames() != null) {
107 message = new ActionMessage("changeprofil.tgroup.success",
108 ""+form.getSelnames().length);
109 } else {
110 message = new ActionMessage("changeprofil.tgroup.empty");
111 } // end if
112 messages.add( ActionMessages.GLOBAL_MESSAGE, message );
113
114 saveMessages( request, messages );
115 return actionMapping.findForward("success");
116 } // end of execute
117 } // end of class
|