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.SightGruppenBearbeiterFactory;
023 import de.fub.tip.datenbank.logik.SightGruppenBearbeiter;
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 * Sehenswürdigkeitsgruppenprofil 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-29
035 *
036 * $Id: UebernimmSightGruppenProfilAction.java,v 1.6 2004/05/01 15:31:25 hirsch Exp $
037 */
038 public class UebernimmSightGruppenProfilAction extends Action {
039 /** Logger zur Fehlersuche */
040 private static Logger logger =
041 Logger.getLogger(UebernimmSightGruppenProfilAction.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("UebernimmSightGruppenProfilAction.execute() called.");
058
059 DataSource dataSource = null;
060 ChangeProfilActionForm form = null;
061 ActionMessages messages = new ActionMessages();
062 ActionMessage message = null;
063
064 try {
065 dataSource = this.getDataSource(request, "tip");
066 SightGruppenBearbeiter logik = (SightGruppenBearbeiter)
067 SightGruppenBearbeiterFactory.getInstance(dataSource).
068 getLogicObject();
069
070 form = (ChangeProfilActionForm) actionForm;
071
072 // Attribute aus der Session holen
073 UserdataVO user = (UserdataVO) request.getSession().
074 getAttribute("user");
075
076 logik.setSightGroupProfileForUser(user, form.getSelnames());
077
078 } catch (SQLException e) {
079 logger.debug("UebernimmSightGruppenProfilAction.SQLException " +
080 e + ", " + e.getLocalizedMessage());
081
082 return actionMapping.findForward("dbproblem");
083
084 } catch (NoUserLoggedInException e) {
085 logger.debug("UebernimmSightGruppenProfilAction." +
086 "NoUserLoggedIn "+ e + ", " + e.getLocalizedMessage());
087
088 return actionMapping.findForward("loginproblem");
089
090 } catch (NoDataFoundException e) {
091 logger.debug("UebernimmSightGruppenProfilAction." +
092 "nichts gefunden "+ e + ", " + e.getLocalizedMessage());
093
094 message = new ActionMessage("changeprofil.sgroup.failure");
095 messages.add( ActionMessages.GLOBAL_MESSAGE, message );
096
097 saveMessages( request, messages );
098
099 return actionMapping.findForward("success");
100
101 } // end of catch
102
103 // ActionMessage für Erfolgsfall schreiben
104 message =new ActionMessage("changeprofil.sgroup.meta");
105 messages.add( ActionMessages.GLOBAL_MESSAGE, message );
106
107 if (form.getSelnames() != null) {
108 message = new ActionMessage("changeprofil.sgroup.success",
109 ""+form.getSelnames().length);
110 } else {
111 message = new ActionMessage("changeprofil.sgroup.empty");
112 } // end if
113 messages.add( ActionMessages.GLOBAL_MESSAGE, message );
114
115 saveMessages( request, messages );
116 return actionMapping.findForward("success");
117 } // end of execute
118 } // end of class
|