View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   //CabaWeb
3   //Copyright (C) 2004  Thomas Vogt <Thomas.Vogt@TVC-Software.com>
4   //
5   //This library is free software; you can redistribute it and/or
6   //modify it under the terms of the GNU Lesser General Public
7   //License as published by the Free Software Foundation; either
8   //version 2.1 of the License, or (at your option) any later version.
9   //
10  //This library is distributed in the hope that it will be useful,
11  //but WITHOUT ANY WARRANTY; without even the implied warranty of
12  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  //Lesser General Public License for more details.
14  //
15  //You should have received a copy of the GNU Lesser General Public
16  //License along with this library; if not, write to the Free Software
17  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  ////////////////////////////////////////////////////////////////////////////////
19  package org.fhw.cabaweb.webfrontend.actions.edit;
20  
21  import java.util.Collection;
22  import java.util.Iterator;
23  
24  import javax.servlet.http.HttpServletRequest;
25  import javax.servlet.http.HttpServletResponse;
26  import javax.servlet.http.HttpSession;
27  
28  import org.apache.struts.action.Action;
29  import org.apache.struts.action.ActionForm;
30  import org.apache.struts.action.ActionForward;
31  import org.apache.struts.action.ActionMapping;
32  
33  import org.apache.commons.logging.Log;
34  import org.apache.commons.logging.LogFactory;
35  
36  import org.fhw.cabaweb.data.DataInterfaceProjekte;
37  
38  import org.fhw.cabaweb.ojb.dataobjects.Gruppenmitglieder;
39  import org.fhw.cabaweb.ojb.dataobjects.Projekte;
40  
41  import org.fhw.cabaweb.webfrontend.configs.Keys;
42  import org.fhw.cabaweb.webfrontend.forms.simple.GruppenmitgliedForm;
43  
44  /***
45   * <strong>Action</strong>-Klasse f&uuml;r die Gruppenmitglied Anlegen Action .
46   * Die Controller Klasse der Struts Model View Controller Architektur.
47   *
48   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
49   * @version Version 1.0 07.07.2004
50   */
51  public final class GruppenmitgliedAnlegenAction extends Action {
52  
53      /***
54       * The <code>Log</code> instance for this application.
55       */
56      private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.actions.edit");
57  
58      /***
59       * Verarbeiten der spezifizierten HTTP Anfrage und erzeugen der zugeordneten
60       * HTTP Antwort bzw. Forwarden an eine andere Web Komponente, die die Antwort 
61       * erzeugt.  
62       * 
63       * Gibt eine <code>ActionForward</code> Instanz zurück die angibt wohin und wie
64       * die Kontrolle weitergegeben werden soll. Kann auch <code>null</code> sein, 
65       * wenn die Anfrage bereits bearbeitet wurde.
66       * 
67       * @param mapping Das ActionMapping das benutzt wurde um diese Instanz zu selektieren
68       * @param form Das optionale ActionForm Bean für die Anfrage (soweit vorhanden)
69       * @param request Die HTTP Anfrage die wir gerade bearbeiten
70       * @param response The HTTP Antwort die wir erzeugen
71       *
72       * @return Die Action zu der wir weiterleiten
73       * @exception Exception wenn ein Eingabe-/Ausgabe Fehler auftritt oder eine Servlet Exception auftritt
74       *            bzw. die Business Logik einen Fehler verursacht 
75       */
76      public ActionForward execute(ActionMapping mapping,
77  				                 ActionForm form,
78                                   HttpServletRequest request,
79                                   HttpServletResponse response)
80      throws Exception 
81      {
82          /*** Forwarding Action Variable mit null initialisieren */
83  //        ActionForward forward = null;
84          /*** Die Locale Variable (Sprache, Formatierung, etc.) */
85  //        Locale locale = getLocale(request);
86          /*** Die Resourcen (lokalisierten Meldungen) der Anfrage holen */
87  //        MessageResources messages = getResources(request);
88          /*** Wenn Fehler bei der Validierung Fehler auftreten werden Sie diesem
89           *  <code>ActionErrors</code> Objekt hinzugefügt. 
90           */ 
91  //        ActionErrors errors = new ActionErrors();
92  
93          /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
94          DataInterfaceProjekte dip = new DataInterfaceProjekte();
95          /*** Die Session der aktuellen Anfrage */
96          HttpSession session = request.getSession();
97          /*** Die übergebene Action */
98          String action = "Create";
99              
100         if (log.isDebugEnabled()) 
101         {
102             log.debug("GruppenmitgliedAnlegenAction: Processing creation of new Group Member");
103         }
104         
105         Gruppenmitglieder gruppenmitglied = new Gruppenmitglieder();
106                 	
107         if (gruppenmitglied != null) 
108         {
109             session.setAttribute(Keys.GRUPPENMITGLIED_KEY, gruppenmitglied);
110         }
111     
112         Collection projekte = dip.sucheAlle();
113         Iterator iter = projekte.iterator();
114         
115         while(iter.hasNext())
116         {
117             Projekte temp = (Projekte) iter.next();
118             
119             if(temp == null)
120             {
121                 if (log.isDebugEnabled()) 
122                 {
123                     log.debug(" REMOVE NULL");
124                 }
125 
126                 iter.remove();                
127             }
128             else if(temp.getAktiv() == null || (temp.getAktiv()).booleanValue() == false)
129             {
130                 if (log.isDebugEnabled()) 
131                 {
132                     log.debug(" REMOVE INACTIVE / NULL");
133                 }
134 
135                 iter.remove();                
136             }
137             else if((temp.getProjektname()).compareTo("Administration") == 0)
138             {
139                 if (log.isDebugEnabled()) 
140                 {
141                     log.debug(" REMOVE ADMINISTRATION");
142                 }
143 
144                 iter.remove();                
145             }
146         }
147 
148         if (log.isDebugEnabled()) 
149         {
150             log.debug(" Anzahl der Projekte " + projekte.size());
151         }
152 
153         if (projekte != null) 
154         {
155             session.setAttribute(Keys.PROJEKTE_KEY, projekte);
156         }
157 
158     	// Populate the Project Form
159     	if (form == null) 
160     	{
161             if (log.isDebugEnabled()) 
162             {
163                 log.debug(" Creating new GruppenmitgliedForm bean under key " + mapping.getAttribute());
164             }
165             
166 	        form = new GruppenmitgliedForm();
167 	        
168             if ("request".equals(mapping.getScope())) 
169             {
170                 request.setAttribute(mapping.getAttribute(), form);
171             } 
172             else 
173             {
174                 session.setAttribute(mapping.getAttribute(), form);
175             }
176     	}
177 
178         GruppenmitgliedForm gmform = (GruppenmitgliedForm) form;
179         gmform.setAction(action);
180 	    
181         // Forward control to the edit Projekt page
182         if (log.isDebugEnabled()) 
183         {
184             log.debug(" Forwarding to 'success' page");
185         }
186     	return (mapping.findForward("success"));
187     }
188 }