SightGruppenBetrachterAction.java
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       ifallsgroups != 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 = (UserdataVOrequest.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       ifgroups != 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       ifgroups != 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