1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.fhw.cabaweb.webfrontend.actions;
21
22 import java.util.Collection;
23 import java.util.Iterator;
24 import java.util.Locale;
25
26 import javax.servlet.http.HttpServletRequest;
27 import javax.servlet.http.HttpServletResponse;
28 import javax.servlet.http.HttpSession;
29
30 import org.apache.commons.beanutils.PropertyUtils;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33 import org.apache.struts.action.Action;
34 import org.apache.struts.action.ActionForm;
35 import org.apache.struts.action.ActionForward;
36 import org.apache.struts.action.ActionMapping;
37 import org.apache.struts.util.MessageResources;
38 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenFeldbeschreibungen;
39 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenGruppierungsbeschreibungen;
40 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenUntergruppierungsbeschreibungen;
41 import org.fhw.cabaweb.data.DataInterfaceProjektbeschreibungen;
42 import org.fhw.cabaweb.data.DataInterfaceSprachen;
43 import org.fhw.cabaweb.data.DataInterfaceVoreinstellungenFeldbeschreibungen;
44 import org.fhw.cabaweb.data.DataInterfaceVoreinstellungenGruppierungsbeschreibungen;
45 import org.fhw.cabaweb.data.DataInterfaceVoreinstellungenUntergruppierungsbeschreibungen;
46 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Feldbeschreibungen;
47 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Gruppierungsbeschreibungen;
48 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Untergruppierungsbeschreibungen;
49 import org.fhw.cabaweb.ojb.dataobjects.Projektbeschreibungen;
50 import org.fhw.cabaweb.ojb.dataobjects.Sprachen;
51 import org.fhw.cabaweb.ojb.dataobjects.Voreinstellungen_Feldbeschreibungen;
52 import org.fhw.cabaweb.ojb.dataobjects.Voreinstellungen_Gruppierungsbeschreibungen;
53 import org.fhw.cabaweb.ojb.dataobjects.Voreinstellungen_Untergruppierungsbeschreibungen;
54
55 /***
56 * <strong>Action</strong>-Klasse für die Help Action .
57 * Aufruf einer Hilfeseite mit den angegebenen Inhalten.
58 * Die Controller Klasse der Struts Model View Controller Architektur.
59 *
60 * @author <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
61 * @version Version 1.0 09.08.2004
62 */
63 public final class HelpAction extends Action
64 {
65
66 /*** Commons Logging Instanz */
67 private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.actions.HelpAction");
68
69 /***
70 * Verarbeiten der spezifizierten HTTP Anfrage und erzeugen der zugeordneten
71 * HTTP Antwort bzw. Forwarden an eine andere Web Komponente, die die Antwort
72 * erzeugt.
73 *
74 * Gibt eine <code>ActionForward</code> Instanz zurück die angibt wohin und wie
75 * die Kontrolle weitergegeben werden soll. Kann auch <code>null</code> sein,
76 * wenn die Anfrage bereits bearbeitet wurde.
77 *
78 * @param mapping Das ActionMapping das benutzt wurde um diese Instanz zu selektieren
79 * @param form Das optionale ActionForm Bean für die Anfrage (soweit vorhanden)
80 * @param request Die HTTP Anfrage die wir gerade bearbeiten
81 * @param response The HTTP Antwort die wir erzeugen
82 *
83 * @return Die Action zu der wir weiterleiten
84 * @exception Exception wenn ein Eingabe-/Ausgabe Fehler auftritt oder eine Servlet Exception auftritt
85 * bzw. die Business Logik einen Fehler verursacht
86 */
87 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
88 {
89 /*** Die Session der aktuellen Anfrage */
90 HttpSession session = request.getSession();
91 /*** Die Locale Variable (Sprache, Formatierung, etc.) */
92 Locale locale = getLocale(request);
93 /*** Variable in der das Redirecting gespeichert wird */
94 ActionForward redirectTo = null;
95 /*** Die Resourcen (lokalisierten Meldungen) der Anfrage holen */
96 MessageResources messages;
97 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
98 DataInterfaceSprachen dis = new DataInterfaceSprachen();
99
100 if (log.isDebugEnabled())
101 {
102 log.debug(" Sprache : " + locale.getDisplayLanguage());
103 }
104
105 Sprachen sprache = null;
106 Collection sprachen = dis.sucheSprachname(locale.getDisplayLanguage());
107 Iterator sprachiterator = sprachen.iterator();
108 Integer sprachnummer = null;
109
110 if (log.isDebugEnabled())
111 {
112 log.debug(" Gefundene Sprachen : " + sprachen.size());
113 }
114
115 if (sprachiterator.hasNext())
116 {
117 sprache = (Sprachen) sprachiterator.next();
118
119 if (sprache != null)
120 {
121 sprachnummer = sprache.getSprachnummer();
122 }
123 }
124
125 Integer projektnummer = null;
126 Integer e_feldnummer = null;
127 Integer e_gruppierungsnummer = null;
128 Integer e_untergruppierungsnummer = null;
129 Integer v_feldnummer = null;
130 Integer v_gruppierungsnummer = null;
131 Integer v_untergruppierungsnummer = null;
132 String helpfor = null;
133
134 String bundle = null;
135 String titlekey = null;
136 String textkey = null;
137
138 String hilfetitel = null;
139 String hilfetext = null;
140 String hilfebild = null;
141
142 try
143 {
144 helpfor = (String) PropertyUtils.getSimpleProperty(form, "helpfor");
145 bundle = (String) PropertyUtils.getSimpleProperty(form, "bundle");
146 titlekey = (String) PropertyUtils.getSimpleProperty(form, "titlekey");
147 textkey = (String) PropertyUtils.getSimpleProperty(form, "textkey");
148 projektnummer = (Integer) PropertyUtils.getSimpleProperty(form, "projektnummer");
149 e_feldnummer = (Integer) PropertyUtils.getSimpleProperty(form, "e_feldnummer");
150 e_gruppierungsnummer = (Integer) PropertyUtils.getSimpleProperty(form, "e_gruppierungsnummer");
151 e_untergruppierungsnummer = (Integer) PropertyUtils.getSimpleProperty(form, "e_untergruppierungsnummer");
152 v_feldnummer = (Integer) PropertyUtils.getSimpleProperty(form, "v_feldnummer");
153 v_gruppierungsnummer = (Integer) PropertyUtils.getSimpleProperty(form, "v_gruppierungsnummer");
154 v_untergruppierungsnummer = (Integer) PropertyUtils.getSimpleProperty(form, "v_untergruppierungsnummer");
155 }
156 catch (Exception e)
157 {
158 log.error(e.getMessage(), e);
159 }
160
161 if (log.isDebugEnabled())
162 {
163 log.debug(" Help for : " + helpfor);
164 log.debug(" Resource bundle : " + bundle);
165 log.debug(" Resource key Tit. : " + titlekey);
166 log.debug(" Resource key Text : " + textkey);
167 log.debug(" Projektnummer : " + projektnummer);
168 log.debug(" Feldnummer (ERG) : " + e_feldnummer);
169 log.debug(" Grp.nummer (ERG) : " + e_gruppierungsnummer);
170 log.debug(" UGrp.nummer (ERG) : " + e_untergruppierungsnummer);
171 log.debug(" Feldnummer (VOR) : " + v_feldnummer);
172 log.debug(" Grp.nummer (VOR) : " + v_gruppierungsnummer);
173 log.debug(" UGrp.nummer (VOR) : " + v_untergruppierungsnummer);
174 }
175
176 if (log.isDebugEnabled())
177 {
178 log.debug(" Found '" + sprache + "' language.");
179 }
180
181 if (helpfor == null)
182 {
183 helpfor = "Not Available";
184 }
185
186 if (helpfor.compareTo("Projekt") == 0)
187 {
188 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
189 DataInterfaceProjektbeschreibungen dipb = new DataInterfaceProjektbeschreibungen();
190
191 if (projektnummer != null)
192 {
193 Projektbeschreibungen beschreibung = null;
194 Collection objekte = dipb.sucheKombination(projektnummer, sprachnummer);
195
196 Iterator iter = objekte.iterator();
197 if (iter.hasNext())
198 {
199 beschreibung = (Projektbeschreibungen) iter.next();
200 }
201
202 if (beschreibung != null)
203 {
204 hilfetitel = beschreibung.getKurzbeschreibung();
205 hilfetext = beschreibung.getBeschreibung();
206 }
207
208 hilfebild = null;
209 }
210 }
211 else if (helpfor.compareTo("ErgebnissdatenFeldname") == 0)
212 {
213 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
214 DataInterfaceErgebnissdatenFeldbeschreibungen diefb = new DataInterfaceErgebnissdatenFeldbeschreibungen();
215
216 if (e_feldnummer != null)
217 {
218 Ergebnissdaten_Feldbeschreibungen beschreibung = null;
219 Collection objekte = diefb.sucheKombination(null, e_feldnummer, null, null, sprachnummer);
220
221 Iterator iter = objekte.iterator();
222 if (iter.hasNext())
223 {
224 beschreibung = (Ergebnissdaten_Feldbeschreibungen) iter.next();
225 }
226
227 if (beschreibung != null)
228 {
229 hilfetitel = beschreibung.getKurzbeschreibung();
230 hilfetext = beschreibung.getBeschreibung();
231 }
232
233 hilfebild = null;
234 }
235 }
236 else if (helpfor.compareTo("ErgebnissdatenGruppierungsname") == 0)
237 {
238 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
239 DataInterfaceErgebnissdatenGruppierungsbeschreibungen diegb = new DataInterfaceErgebnissdatenGruppierungsbeschreibungen();
240
241 if (e_gruppierungsnummer != null)
242 {
243 Ergebnissdaten_Gruppierungsbeschreibungen beschreibung = null;
244 Collection objekte = diegb.sucheKombination(null, e_gruppierungsnummer, sprachnummer);
245
246 Iterator iter = objekte.iterator();
247 if (iter.hasNext())
248 {
249 beschreibung = (Ergebnissdaten_Gruppierungsbeschreibungen) iter.next();
250 }
251
252 if (beschreibung != null)
253 {
254 hilfetitel = beschreibung.getKurzbeschreibung();
255 hilfetext = beschreibung.getBeschreibung();
256 }
257
258 hilfebild = null;
259 }
260 }
261 else if (helpfor.compareTo("ErgebnissdatenUntergruppierungsname") == 0)
262 {
263 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
264 DataInterfaceErgebnissdatenUntergruppierungsbeschreibungen dieugb = new DataInterfaceErgebnissdatenUntergruppierungsbeschreibungen();
265
266 if (e_untergruppierungsnummer != null)
267 {
268 Ergebnissdaten_Untergruppierungsbeschreibungen beschreibung = null;
269 Collection objekte = dieugb.sucheKombination(null, null, e_untergruppierungsnummer, sprachnummer);
270
271 Iterator iter = objekte.iterator();
272 if (iter.hasNext())
273 {
274 beschreibung = (Ergebnissdaten_Untergruppierungsbeschreibungen) iter.next();
275 }
276
277 if (beschreibung != null)
278 {
279 hilfetitel = beschreibung.getKurzbeschreibung();
280 hilfetext = beschreibung.getBeschreibung();
281 }
282
283 hilfebild = null;
284 }
285 }
286 else if (helpfor.compareTo("VoreinstellungenFeldname") == 0)
287 {
288 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
289 DataInterfaceVoreinstellungenFeldbeschreibungen divfb = new DataInterfaceVoreinstellungenFeldbeschreibungen();
290
291 if (v_feldnummer != null)
292 {
293 Voreinstellungen_Feldbeschreibungen beschreibung = null;
294 Collection objekte = divfb.sucheKombination(null, v_feldnummer, null, null, sprachnummer);
295
296 Iterator iter = objekte.iterator();
297 if (iter.hasNext())
298 {
299 beschreibung = (Voreinstellungen_Feldbeschreibungen) iter.next();
300 }
301
302 if (beschreibung != null)
303 {
304 hilfetitel = beschreibung.getKurzbeschreibung();
305 hilfetext = beschreibung.getBeschreibung();
306 }
307
308 hilfebild = null;
309 }
310 }
311 else if (helpfor.compareTo("VoreinstellungenGruppierungsname") == 0)
312 {
313 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
314 DataInterfaceVoreinstellungenGruppierungsbeschreibungen diegb = new DataInterfaceVoreinstellungenGruppierungsbeschreibungen();
315
316 if (v_gruppierungsnummer != null)
317 {
318 Voreinstellungen_Gruppierungsbeschreibungen beschreibung = null;
319 Collection objekte = diegb.sucheKombination(null, v_gruppierungsnummer, sprachnummer);
320
321 Iterator iter = objekte.iterator();
322 if (iter.hasNext())
323 {
324 beschreibung = (Voreinstellungen_Gruppierungsbeschreibungen) iter.next();
325 }
326
327 if (beschreibung != null)
328 {
329 hilfetitel = beschreibung.getKurzbeschreibung();
330 hilfetext = beschreibung.getBeschreibung();
331 }
332
333 hilfebild = null;
334 }
335 }
336 else if (helpfor.compareTo("VoreinstellungenUntergruppierungsname") == 0)
337 {
338 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
339 DataInterfaceVoreinstellungenUntergruppierungsbeschreibungen dieugb = new DataInterfaceVoreinstellungenUntergruppierungsbeschreibungen();
340
341 if (v_untergruppierungsnummer != null)
342 {
343 Voreinstellungen_Untergruppierungsbeschreibungen beschreibung = null;
344 Collection objekte = dieugb.sucheKombination(null, null, v_untergruppierungsnummer, sprachnummer);
345
346 Iterator iter = objekte.iterator();
347 if (iter.hasNext())
348 {
349 beschreibung = (Voreinstellungen_Untergruppierungsbeschreibungen) iter.next();
350 }
351
352 if (beschreibung != null)
353 {
354 hilfetitel = beschreibung.getKurzbeschreibung();
355 hilfetext = beschreibung.getBeschreibung();
356 }
357
358 hilfebild = null;
359 }
360 }
361 else if (helpfor.compareTo("Message") == 0)
362 {
363 if (bundle != null && bundle != "")
364 messages = getResources(request, bundle);
365 else
366 messages = getResources(request);
367
368 if (titlekey != null && titlekey != "")
369 hilfetitel = messages.getMessage(locale, titlekey);
370 if (textkey != null && textkey != "")
371 hilfetext = messages.getMessage(locale, textkey);
372
373 hilfebild = null;
374 }
375 else
376 {
377 messages = getResources(request);
378
379 hilfetitel = messages.getMessage(locale, "error.help.title");
380 hilfetext = messages.getMessage(locale, "error.help.text");
381 hilfebild = null;
382 }
383
384 messages = getResources(request);
385
386 if (hilfetitel == null)
387 hilfetitel = messages.getMessage(locale, "error.help.message.title");
388
389 if (hilfetext == null)
390 hilfetext = messages.getMessage(locale, "error.help.message.text");
391
392 if (log.isDebugEnabled())
393 {
394 log.debug(" hilfetitel '" + hilfetitel + "'");
395 log.debug(" hilfetext '" + hilfetext + "'");
396 log.debug(" hilfebild '" + hilfebild + "'");
397 }
398
399 session.setAttribute("hilfetitel", hilfetitel);
400 session.setAttribute("hilfetext", hilfetext);
401 session.setAttribute("hilfebild", hilfebild);
402
403
404
405
406
407
408
409 if (log.isDebugEnabled())
410 {
411
412 log.debug(" Redirecting to: \"success\".");
413 }
414
415
416 redirectTo = mapping.findForward("success");
417
418
419
420 return redirectTo;
421 }
422 }