001 /*
002 * Created on 17.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.ActionForm;
014 import org.apache.struts.action.ActionForward;
015 import org.apache.struts.action.ActionMapping;
016 import org.apache.struts.actions.DispatchAction;
017
018 import de.fub.tip.datenanzeige.container.SightGruppeVOContainer;
019 import de.fub.tip.datenanzeige.ormapper.UserdataVO;
020 import de.fub.tip.datenbank.factory.SightGruppenBearbeiterFactory;
021 import de.fub.tip.datenbank.logik.SightGruppenBearbeiter;
022 import de.fub.tip.exceptions.NoDataFoundException;
023 import de.fub.tip.exceptions.NoUserLoggedInException;
024
025 /**
026 * Sinn: Action, die die Anzeige von Sehenswürdigkeitsgruppen verwaltet.<br>
027 * Dabei gibt es folgende Ausführungsvarianten:
028 * <ol>
029 * <li>showall - Anzeige aller Sehenswürdigkeitsgruppen</li>
030 * <li>showuserabo - Anzeige aller abonnierten und nicht abonnierten
031 * Sehenswürdigkeitsgruppen eines Benutzers</li>
032 * </ol>
033 *
034 * @author hirsch, 17.04.2004
035 * @version 2004-04-30
036 * $Id: SightGruppenBetrachterAction.java,v 1.7 2004/04/30 12:40:23 hirsch Exp $
037 *
038 */
039 public class SightGruppenBetrachterAction extends DispatchAction {
040 /** Logger zur Fehlersuche */
041 private static Logger logger =
042 Logger.getLogger(SightGruppenBetrachterAction.class);
043
044 /**
045 * zeigt alle Sehenswürdigkeitsgruppen des Systems an
046 *
047 * @param actionMapping ActionMapping
048 * @param actionForm zugehörige ActionForm
049 * @param request der aktuelle Request
050 * @param response ServletResponse
051 *
052 * @return ActionForward nächstes Ziel
053 */
054 public ActionForward showall(ActionMapping actionMapping,
055 ActionForm actionForm, HttpServletRequest request,
056 HttpServletResponse response ) {
057
058 logger.info("SightGruppenBetrachterAction.showall() called.");
059
060 DataSource dataSource = null;
061 SightGruppeVOContainer allsgroups = null;
062
063 try {
064 dataSource = this.getDataSource(request, "tip");
065
066 SightGruppenBearbeiter anzeiger = (SightGruppenBearbeiter)
067 SightGruppenBearbeiterFactory.getInstance(dataSource).
068 getLogicObject();
069
070 allsgroups = anzeiger.getAllSightGroups();
071
072 // Speichern des Ergebnisses
073 if( allsgroups != null) {
074 request.setAttribute("showall", allsgroups);
075 logger.debug("SightGruppenBetrachterAction.showall().Container " +
076 "als Parameter showall gespeichert.");
077 } // end if
078
079 } catch (SQLException e) {
080 logger.error("SightGruppenBetrachterAction.showall()." +
081 "SQLException: " + e + ", " + e.getLocalizedMessage());
082
083 return actionMapping.findForward("dbproblem");
084
085 } catch (NoDataFoundException e) {
086 logger.info("SightGruppenBetrachterAction.showAll(): " +
087 "keine Elemente da");
088
089 return actionMapping.findForward("showall");
090 } // end of catch
091
092 return actionMapping.findForward("showall");
093 } // end of showall
094
095 /**
096 * zeigt alle Sehenswürdigkeitsgruppen eines Benutzers sortiert
097 * nach abonniert und nicht abonniert an
098 *
099 * @param actionMapping ActionMapping
100 * @param actionForm zugehörige ActionForm
101 * @param request der aktuelle Request
102 * @param response ServletResponse
103 *
104 * @return ActionForward nächstes Ziel
105 */
106 public ActionForward showuserabo(ActionMapping actionMapping,
107 ActionForm actionForm, HttpServletRequest request,
108 HttpServletResponse response ) {
109
110 logger.info("SightGruppenBetrachterAction.showuserabo() called.");
111
112 DataSource dataSource = null;
113 SightGruppeVOContainer groups = null;
114
115 try {
116 dataSource = this.getDataSource(request, "tip");
117
118 // angemeldeten Benutzer auslesen
119 UserdataVO user = (UserdataVO) request.getSession().
120 getAttribute("user");
121
122 SightGruppenBearbeiter anzeiger = (SightGruppenBearbeiter)
123 SightGruppenBearbeiterFactory.getInstance(dataSource)
124 .getLogicObject();
125
126 // Speichern der abonnierten Gruppen
127 groups = anzeiger.getSelectedSightGroupsForUser(user);
128 if( groups != null) {
129 request.setAttribute("aboSGroups", groups);
130 logger.debug("SightGruppenBetrachterAction.showuserabo()." +
131 "Container als Parameter aboSGroups gespeichert.");
132 } // end if
133
134 // Speichern der nicht abonnierten Gruppen
135 groups = anzeiger.getNotSelectedSightGroupsForUser(user);
136 if( groups != null) {
137 request.setAttribute("noAboSGroups", groups);
138 logger.debug("SightGruppenBetrachterAction.showuserabo()." +
139 "Container als Parameter noAboSGroups gespeichert.");
140 } // end if
141
142 } catch (SQLException e) {
143 logger.error("SightGruppenBetrachterAction.showuserabo()." +
144 "SQLException: " + e + ", " + e.getLocalizedMessage());
145
146 return actionMapping.findForward("dbproblem");
147
148 } catch (NoDataFoundException e) {
149 logger.info("SightGruppenBetrachterAction.showuserabo(): " +
150 "keine Elemente da");
151
152 return actionMapping.findForward("showuserabo");
153
154 } catch (NoUserLoggedInException e) {
155
156 logger.info("SightGruppenBetrachterAction.showuserabo(): " +
157 "kein Benutzer angemeldet");
158
159 return actionMapping.findForward("loginproblem");
160
161 } // end of catch
162
163 return actionMapping.findForward("showuserabo");
164 } // end of showuserabo
165 } // end of class
|