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.forms.simple;
20  
21  import java.util.Iterator;
22  
23  import javax.servlet.http.HttpServletRequest;
24  
25  import org.apache.commons.logging.Log;
26  import org.apache.commons.logging.LogFactory;
27  import org.apache.struts.action.ActionError;
28  import org.apache.struts.action.ActionErrors;
29  import org.apache.struts.action.ActionForm;
30  import org.apache.struts.action.ActionMapping;
31  
32  /***
33   * Formularklasse der MVC Architektur von Struts.
34   * In diesem Fall für ein einzelne Projektgruppe (Create/Delete/Edit einer Projektgruppe)
35   *
36   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
37   * @version Version 1.0 05.07.2004
38   */
39  public final class ProjektgruppeForm extends ActionForm
40  { 
41      /***
42       * The <code>Log</code> instance for this application.
43       */
44      private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.forms.simple");
45  
46      //--- Instanz Variablen --------------------------------------
47      /*** Art der Aktion die wir durchführen wollen (Create, Delete or Edit) - Default ist Create. */
48      private String action = "Create";
49      /*** Die Gruppennummer */
50      private Integer gruppennummer = null;
51      /*** Die Projektnummer */
52      private Integer projektnummer = null;
53      /*** Der Gruppenname */
54      private String gruppenname = null;
55      /*** Das Gruppenpasswort */
56      private String passwort = null;
57      /*** Aktiv ??? */
58      private Boolean aktiv = null;
59      /*** Passwort generieren ??? */
60      private Boolean generatePasswort = null;
61  
62      //--- Eigenschaften (Variablen) ------------------------------
63  
64      /*** 
65       * GET Methode 
66       *
67       * @return der Parameterwert 
68       */
69      public String getAction()
70      {
71          return this.action;
72      }
73  
74      /*** 
75       * SET Methode 
76       *
77       * @param action Der zu setzende Parameterwert 
78       */
79      public void setAction(String action)
80      {
81          this.action = action;
82      }
83  
84      /*** 
85       * GET Methode 
86       *
87       * @return der Parameterwert 
88       */
89      public Integer getGruppennummer()
90      {
91          return this.gruppennummer;
92      }
93  
94      /*** 
95       * GET Methode 
96       *
97       * @return der Parameterwert 
98       */
99      public Integer getProjektnummer()
100     {
101         return this.projektnummer;
102     }
103 
104     /*** 
105      * GET Methode 
106      *
107      * @return der Parameterwert 
108      */
109     public String getGruppenname()
110     {
111         return this.gruppenname;
112     }
113 
114     /*** 
115      * GET Methode 
116      *
117      * @return der Parameterwert 
118      */
119     public Boolean getAktiv()
120     {
121         return this.aktiv;
122     }
123 
124     /*** 
125      * SET Methode 
126      *
127      * @param gruppennummer Der zu setzende Parameterwert 
128      */
129     public void setGruppennummer(Integer gruppennummer)
130     {
131         this.gruppennummer = gruppennummer;
132     }
133 
134     /*** 
135      * SET Methode 
136      *
137      * @param projektnummer Der zu setzende Parameterwert 
138      */
139     public void setProjektnummer(Integer projektnummer)
140     {
141         this.projektnummer = projektnummer;
142     }
143     
144     /*** 
145      * SET Methode 
146      *
147      * @param gruppenname Der zu setzende Parameterwert 
148      */
149     public void setGruppenname(String gruppenname)
150     {
151         this.gruppenname = gruppenname;
152     }
153     
154     /*** 
155      * SET Methode 
156      *
157      * @param aktiv Der zu setzende Parameterwert 
158      */
159     public void setAktiv(Boolean aktiv)
160     {
161         this.aktiv = aktiv;
162     }
163 
164     /***
165      * GET Methode 
166      *
167      * @return der Parameterwert 
168      */
169     public Boolean getGeneratePasswort()
170     {
171         return generatePasswort;
172     }
173 
174     /***
175      * GET Methode 
176      *
177      * @return Der Parameterwert 
178      */
179     public String getPasswort()
180     {
181         return passwort;
182     }
183 
184     /***
185      * SET Methode 
186      *
187      * @param generatePasswort Der zu setzende Parameterwert
188      */
189     public void setGeneratePasswort(Boolean generatePasswort)
190     {
191         this.generatePasswort = generatePasswort;
192     }
193 
194     /***
195      * SET Methode 
196      *
197      * @param passwort Der zu setzende Parameterwert
198      */
199     public void setPasswort(String passwort)
200     {
201         this.passwort = passwort;
202     }
203 
204     //--- Öffentliche Methoden -----------------------------------
205 
206     /***
207      * Zurücksetzen aller Parameterwerte auf die Default Werte.
208      *
209      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
210      * @param request Die Servlet Anfrage die wir gerade bearbeiten
211      */
212     public void reset(ActionMapping mapping, HttpServletRequest request) 
213     {
214         this.action = "Create";
215         this.projektnummer = null;
216         this.gruppennummer = null;
217         this.gruppenname = null;
218         this.passwort = null;
219         this.aktiv = null;
220         this.generatePasswort = null;
221     }
222 
223     /***
224      * Validieren der mit diesem Request übergebenen Paramter Werte. Wenn Fehler
225      * bei der Validierung auftreten wird <code>ActionErrors</code> Objekt, 
226      * das die Fehler enthält zurückgegeben.
227      * Wenn kein Fehler bei der Validierung auftritt wird <code>null</code> bzw.
228      * ein leeres <code>ActionErrors</code> Objekt zurückgegeben
229      *
230      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren 
231      *                (siehe struts-config.xml)
232      * @param request Das Servlet Anfrage Objekt
233      */
234     public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) 
235     {
236         // Perform validator framework validations
237         ActionErrors errors = new ActionErrors();
238 
239         if (projektnummer == null)
240             errors.add("projektnummer", new ActionError("error.field.edit.projektgruppe.projektnummer.empty"));
241 
242         if (gruppenname == null || gruppenname.length() <= 0)
243             errors.add("gruppenname", new ActionError("error.field.edit.projektgruppe.gruppenname.empty"));
244         else if (gruppenname.length() < 1)
245             errors.add("gruppenname", new ActionError("error.field.edit.projektgruppe.gruppenname.minlength"));
246         else if (gruppenname.length() > 25)
247             errors.add("gruppenname", new ActionError("error.field.edit.projektgruppe.gruppenname.maxlength"));
248 
249         if ((passwort == null || passwort.length() <= 0) && !generatePasswort.booleanValue() && !action.equals("Delete"))
250             errors.add("passwort", new ActionError("error.field.edit.projektgruppe.gruppenpasswort.empty"));
251 
252         if (log.isDebugEnabled()) 
253         {
254             Iterator iter = errors.get();
255 
256             log.debug(" Form had errors:");
257             while (iter.hasNext())
258             {
259                 log.debug(" " + ((ActionError) iter.next()).getKey());
260             }         
261         }
262 
263         return errors;
264     }
265 }