KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nextime > ion > admin > action > type > EditTypeAction


1 package org.nextime.ion.admin.action.type;
2
3 import java.io.*;
4 import java.util.*;
5
6 import javax.servlet.ServletException JavaDoc;
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpServletResponse JavaDoc;
9 import org.apache.struts.action.Action;
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13
14 import org.nextime.ion.admin.form.*;
15 import org.nextime.ion.framework.business.Group;
16 import org.nextime.ion.framework.business.*;
17 import org.nextime.ion.framework.config.*;
18 import org.nextime.ion.framework.business.impl.*;
19 import org.nextime.ion.framework.mapping.Mapping;
20
21 public class EditTypeAction extends Action {
22
23     public ActionForward perform(
24         ActionMapping mapping,
25         ActionForm form,
26         HttpServletRequest JavaDoc request,
27         HttpServletResponse JavaDoc response)
28         throws IOException, ServletException JavaDoc {
29
30         // pour situer la vue
31
request.setAttribute("view", "type");
32
33         if (request.getParameter("id") != null)
34             request.setAttribute("id", request.getParameter("id"));
35         String JavaDoc id = request.getAttribute("id") + "";
36
37         try {
38
39             if (request.getParameter("editSubmit") == null) {
40                 Mapping.begin();
41
42                 // initialisation du formulaire
43
TypePublication u = TypePublication.getInstance(id);
44                 TypeForm f = (TypeForm) form;
45                 f.setId(u.getId());
46                 request.setAttribute("metaData", ((TypePublicationImpl) u).getMetaData());
47                 // liste les styles
48
request.setAttribute("styles",u.listStyles());
49                 Mapping.commit();
50                 return new ActionForward(mapping.getInput());
51             }
52
53             // effectu les modifications
54
Mapping.begin();
55             TypeForm f = (TypeForm) form;
56             TypePublication u = TypePublication.getInstance(id);
57
58             // *********************************************************
59
// les metaData sont gérées separement car je n'ai
60
// aucune idée du nombre et du nom des champs qu'il va
61
// y avoir.
62
// cette partie est un peu bancale mais en général dans un
63
// veritable backoffice le nombre de champs composant le
64
// formulaire est connu et on peut les gérer comme ce que j'ai
65
// fait plus haut ( login, password ... )
66
// CETTE PARTIE N'EST DONC PAS A REPRENDRE.
67

68             // sauve les metaData
69
Enumeration ps = request.getParameterNames();
70             while (ps.hasMoreElements()) {
71                 String JavaDoc name = ps.nextElement() + "";
72                 if (name.startsWith("META_")) {
73                     name = name.substring(5);
74                     u.setMetaData(name, request.getParameter("META_" + name));
75                 }
76             }
77             // efface la metaData si il y a besoin
78
String JavaDoc mtd = request.getParameter("metaToDelete");
79             if ((mtd + "").trim().equals(""))
80                 mtd = null;
81             if (mtd != null) {
82                 u.removeMetaData(mtd);
83                 request.setAttribute("metaData", ((TypePublicationImpl) u).getMetaData());
84             }
85             // ajoute la metaData si il y a besoin
86
String JavaDoc mtd2 = request.getParameter("newMETA");
87             if ((mtd2 + "").trim().equals(""))
88                 mtd2 = null;
89             if (mtd2 != null) {
90                 u.setMetaData(mtd2, "");
91                 request.setAttribute("metaData", ((TypePublicationImpl) u).getMetaData());
92             }
93             Mapping.commit();
94
95             // si on a simplement effacé ou ajouté une metadonnée, on retourne au fromulaire
96
if (mtd != null || mtd2 != null) {
97                 return new ActionForward(mapping.getInput());
98             }
99
100             // ***********************************************************
101

102         } catch (Exception JavaDoc e) {
103             Mapping.rollback();
104             request.setAttribute("error", e.getMessage());
105             return new ActionForward(mapping.getInput());
106         }
107
108         return mapping.findForward("success");
109     }
110
111 }
Popular Tags