1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 eine einzelne Voreinstellung (Create/Delete/Edit einer Voreinstellung)
35 *
36 * @author <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
37 * @version Version 1.0 24.07.2004
38 */
39 public final class VoreinstellungForm 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
47 /*** Art der Aktion die wir durchführen wollen (Create, Delete or Edit) - Default ist Create. */
48 private String action = "Create";
49 /*** Die Projektnummer */
50 private Integer projektnummer = null;
51 /*** Die Feldnummer */
52 private Integer feldnummer = null;
53 /*** Der Feldname */
54 private String feldname = null;
55 /*** Der Tabellenname */
56 private String tabellenname = null;
57 /*** Der Wert */
58 private String wert = null;
59
60
61
62 /***
63 * GET Methode
64 *
65 * @return der Parameterwert
66 */
67 public String getAction()
68 {
69 return this.action;
70 }
71
72 /***
73 * SET Methode
74 *
75 * @param action Der zu setzende Parameterwert
76 */
77 public void setAction(String action)
78 {
79 this.action = action;
80 }
81
82 /***
83 * GET Methode
84 *
85 * @return Der Wert als String (Formatiert)
86 */
87 public String getTabellenname()
88 {
89 return tabellenname;
90 }
91
92 /***
93 * GET Methode
94 *
95 * @return der Parameterwert
96 */
97 public Integer getFeldnummer()
98 {
99 return this.feldnummer;
100 }
101
102 /***
103 * GET Methode
104 *
105 * @return der Parameterwert
106 */
107 public Integer getProjektnummer()
108 {
109 return this.projektnummer;
110 }
111
112 /***
113 * GET Methode
114 *
115 * @return der Parameterwert
116 */
117 public String getFeldname()
118 {
119 return this.feldname;
120 }
121
122 /***
123 * GET Methode
124 *
125 * @return der Parameterwert
126 */
127 public String getWert()
128 {
129 return this.wert;
130 }
131 /***
132 * SET Methode
133 *
134 * @param feldnummer Der zu setzende Parameterwert
135 */
136 public void setFeldnummer(Integer feldnummer)
137 {
138 this.feldnummer = feldnummer;
139 }
140
141 /***
142 * SET Methode
143 *
144 * @param projektnummer Der zu setzende Parameterwert
145 */
146 public void setProjektnummer(Integer projektnummer)
147 {
148 this.projektnummer = projektnummer;
149 }
150
151 /***
152 * SET Methode
153 *
154 * @param wert Der zu setzende Parameterwert
155 */
156 public void setWert(String wert)
157 {
158 this.wert = wert;
159 }
160
161 /***
162 * SET Methode
163 *
164 * @param feldname Der zu setzende Parameterwert
165 */
166 public void setFeldname(String feldname)
167 {
168 this.feldname = feldname;
169 }
170
171 /***
172 * SET Methode
173 *
174 * @param tabellenname
175 */
176 public void setTabellenname(String tabellenname)
177 {
178 this.tabellenname = tabellenname;
179 }
180
181
182
183 /***
184 * Zurücksetzen aller Parameterwerte auf die Default Werte.
185 *
186 * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
187 * @param request Die Servlet Anfrage die wir gerade bearbeiten
188 */
189 public void reset(ActionMapping mapping, HttpServletRequest request)
190 {
191 this.action = "Create";
192 this.projektnummer = null;
193 this.feldnummer = null;
194 this.feldname = null;
195 this.tabellenname = null;
196 this.wert = null;
197 }
198
199 /***
200 * Validieren der mit diesem Request übergebenen Paramter Werte. Wenn Fehler
201 * bei der Validierung auftreten wird <code>ActionErrors</code> Objekt,
202 * das die Fehler enthält zurückgegeben.
203 * Wenn kein Fehler bei der Validierung auftritt wird <code>null</code> bzw.
204 * ein leeres <code>ActionErrors</code> Objekt zurückgegeben
205 *
206 * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
207 * (siehe struts-config.xml)
208 * @param request Das Servlet Anfrage Objekt
209 */
210 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
211 {
212
213 ActionErrors errors = new ActionErrors();
214
215 if (projektnummer == null)
216 errors.add("projektnummer", new ActionError("error.field.edit.voreinstellung.projektnummer.empty"));
217
218 if (feldnummer == null)
219 errors.add("feldnummer", new ActionError("error.field.edit.voreinstellung.feldnummer.empty"));
220
221 if (tabellenname!= null && tabellenname.compareTo("Voreinstellungen_Double") == 0)
222 {
223 try
224 {
225 Double test;
226
227 if (wert != null && wert.length() != 0)
228 test = new Double(wert);
229 else
230 {
231 errors.add("wert", new ActionError("error.field.edit.voreinstellung.wert.format.double"));
232 }
233 }
234 catch (NumberFormatException e)
235 {
236 errors.add("wert", new ActionError("error.field.edit.voreinstellung.wert.format.double"));
237 }
238 }
239 else if (tabellenname!= null && tabellenname.compareTo("Voreinstellungen_Integer") == 0)
240 {
241 try
242 {
243 Integer test;
244
245 if (wert != null && wert.length() != 0)
246 test = new Integer(wert);
247 else
248 {
249 errors.add("wert", new ActionError("error.field.edit.voreinstellung.wert.format.integer"));
250 }
251 }
252 catch (NumberFormatException e)
253 {
254 errors.add("wert", new ActionError("error.field.edit.voreinstellung.wert.format.integer"));
255 }
256 }
257 else if (wert != null && wert.length() > 255)
258 errors.add("wert", new ActionError("error.field.edit.voreinstellung.wert.maxlength"));
259
260 if (log.isDebugEnabled())
261 {
262 Iterator iter = errors.get();
263
264 log.debug(" Form had errors:");
265 while (iter.hasNext())
266 {
267 log.debug(" " + ((ActionError) iter.next()).getKey());
268 }
269 }
270
271 return errors;
272 }
273 }